Fünf Wege zur Optimierung des Budgets für Funktionstests

Lee Densmer 09. Dez. 2020
Fünf Wege zur Optimierung des Budgets für Funktionstests
In der Welt der Software-, Anwendungs- und Webentwicklung sind Funktions­tests von entscheidender Bedeutung. Sie stellen sicher, dass Ihr Produkt wie ent­worfen und ohne un­erwartete Ergebnisse, Fehler oder andere Bugs funktioniert, die Sie Umsatz, Kunden und den Ruf Ihrer Marke kosten können. Funktionstests können viele Formen annehmen, je nach Ihren Zielen, den Be­dürfnissen Ihrer Kunden und dem Design Ihres Produkts. Wenn Sie jedoch Tester ein­stellen müssen, die jeden Tasten­klick, jede Dropdown-Liste und jede Texteingabe in Ihrem Quell­produkt durchgehen, kann das viel Zeit und Geld kosten - und das wird noch erschwert, wenn Sie auch alle lo­kalisierten Builds testen müssen. Hier sind einige Tipps, um das Maximum aus Ihrem Test­budget zu erhalten und dabei gründ­liche Tests durch­zuführen und ein hoch­wertiges globales Produkt herzustellen.

1. Beginnen Sie an der Quelle

Der oft gehörte Ausdruck "Qualität beginnt an der Quelle" bedeutet, dass Sie bei der Software­entwicklung und -lokalisierung proaktiv vorgehen. Es geht darum, Code zu schreiben, der die Funktionalität klar von der Benutzer­oberfläche (UI) trennt, so dass der Text leicht für die Über­setzung extrahiert werden kann. So können Sie die Best-Practices der Internationalisierung umsetzen und machen Ihr Produkt durch flexible Unterstützung kultureller und sprachlicher Unter­schiede wie Zeichen­sätze, Währungen sowie Datums- und Zeitformate durchgehend lokalisierungsfähig. Dazu gehört auch, über mögliche Lokalisierungs­probleme nach­zudenken, wie z.B. das Ab­schneiden oder Über­schneiden von lokalisierten UI-Inhalten. Sie können dann An­forderungen und Ein­schränkungen zu definieren, um diese Probleme zu verhindern. Wenn ein Linguist, der die Software-Strings übersetzt, zu Beginn klare An­weisungen bezüglich der maximalen String-Längen erhält, kann er im Vorfeld effektiv korrekte Über­setzungen liefern, anstatt später beim Testen pro­blematische Strings nachzubearbeiten. Dieser Ansatz braucht am Anfang sicherlich mehr Zeit – Das richtige Tun braucht oft mehr Zeit. Aber der Aufwand wird sich im weiteren Verlauf auszahlen, da sich der Testumfang für die Builds mit der Anzahl der Sprachen vervielfacht.

2. Testen Sie jedes Element, aber nicht alles

Mit all den verschiedenen Kom­binationen von Betriebs­systemen, Geräten, Browsern und Sprachen, die Ihre Software unter­stützt, würden Sie jeden Build wochen­lang testen. Die Antwort? Paarweises Testen. Nehmen Sie eine Bestands­aufnahme aller möglichen Technologie- und Sprach­kombinationen vor, die Ihr Produkt unterstützt oder auf denen es läuft, aber Sie erstellen eine Matrix von Test­umgebungen, so dass jedes Element nur einmal getestet wird, und nicht in jeder einzelnen Kombination. Wir werden dieses Konzept in einem zukünftigen Blog-Beitrag näher erläutern, aber der Punkt ist, dass das paarweise Testen den Umfang der er­forderlichen Tests erheblich re­duzieren kann, während gleichzeitig sicher­gestellt wird, dass jede Produkt­variante getestet wird.

3. Automatisieren Sie, was immer Sie können

Viele Komponenten des Testens, oder vielleicht ganze Testfälle, können automatisiert werden, um die Arbeit zu be­schleunigen, die Testzeit zu verkürzen und es den Testern zu er­möglichen, sich auf komplexere Aufgaben zu kon­zentrieren. Es gibt derzeit viele Automatisierungstools auf dem Markt, wie z.B. Ranorex, Silktest und Selenium, die URLs crawlen, Formulare ausfüllen und Screenshots erstellen können. Ihr eigenes Software­entwicklungsteam kann möglicherweise Skripte und aus­führbare Dateien schreiben, um auto­matisch durch die Anwendung zu laufen und bestimmte Aufgaben auszuführen, da es über die Vor- und Nachteile des Produkts am besten Bescheid weiß. Selbst wenn Ihre Software nur schwer oder gar nicht zu automatisieren ist, können Sie durch Auto­matisierung Zeit sparen. Beispiels­weise können Sie Auto­matisierungs­techniken einsetzen, um nächtliche Builds Ihrer Software zu erstellen. Sie können komplexe Test­umgebungen vorbereiten - saubere Betriebs­systeme einsetzen, Ihre Software installieren und den Arbeitsbereich konfigurieren - so dass die Tester weder Zeit noch Geld dafür aufwenden müssen. Sie haben dann alles bereit und können sofort beginnen, wenn ihr PC hochfährt. Natürlich bringt die anfängliche Investition in die Skripterstellung bei größeren Sprachumfängen mehr Vorteile (je mehr Tests Sie durchführen, desto größer sind die Einsparungen), aber selbst, wenn dadurch nur die Testzeit in der Ausgangssprache halbiert wird, ist das bereits ein großer Gewinn.

4. Konzentrieren sich auf die Funktionen

Software­entwicklung folgt heutzutage oft einer agilen Entwicklungs­methodik. Bei dieser Praxis geht es darum, Software-Updates und -Releases in kleinen, kurzen Zyklen zu entwickeln und sich dabei auf die wichtigsten Funktionen zu konzentrieren, um Fehlerbehebungen und neue Funktionen schneller auf den Markt zu bringen. Daher sollten Ihre Tests einem ähnlichen Prozess folgen. Vielleicht haben Sie nicht in jedem einzelnen Zyklus genug Zeit, um alles zu testen, aber planen Sie ent­sprechende Tests in regelmäßigen Abständen ein - vielleicht vor jedem größeren Release. Nutzen Sie dabei Testfälle, die sich auf die von Ihren Kunden ge­forderten Funktionen konzentrieren. Wenn Sie sich auch über potenzielle Fehler in älteren Funktionen Sorgen machen, verwenden Sie einige der ausgelassenen Automatisierungsskripte, um diese Fehler zu finden, damit Sie sie beheben können.

5. Werden Sie virtuell

Im Umfeld sich ständig verbessernder Internetverfügbarkeit und -geschwindigkeit, Cloud-basierten Anwendungen, Servern und Speichern ermöglicht das virtuelle Testen, dass die ganze Welt Ihr Tester sein kann. Einige Technologien die dies unterstützen:
  • Emulatoren: Software, die einen Computer oder ein mobiles Gerät imitiert. Sie können zum Beispiel einen Android-Emulator auf einem Apple-Handy installieren.
  • Virtuelle Maschinen: eine Art von Emulator, der einen Computer imitiert, z.B. eine Windows- oder Linux-PC-Installation, bis hin zur Ein­stellung von Hardware-Spezifikationen wie RAM, Grafikkarte und CD-ROM.
  • Remote Zugriff oder VPNs: direkte Verbindung zu einer anderen physischen Maschine oder einem Netzwerk.
Diese Technologien bieten eine Vielzahl von Vorteilen. Sie können Tester von überall auf der Welt einsetzen, die genau die Erfahrung, Sprach­kenntnisse und Produkt­kenntnisse besitzen, die Sie benötigen. Sie können auf den Geräten testen, die sie bereits besitzen, und vermeiden Kosten und Aufwand für den Kauf, die Konfiguration und den Versand Dutzender Geräte - oder den Aufwand alle Tester in Ihr Büro zu holen. Und schließlich kann Ihr Software-Team die virtuelle Umgebung im Voraus einrichten und vor­konfigurieren. Dies ermöglicht nicht nur eine bessere Kontrolle über die Test­umgebung und vermeidet die Fehlerbehebung von Tester-Installationen, es ist auch eine sicherere Methode, Ihr geistiges Eigentum zu schützen, wenn Sie Ihre unveröffentlichte App in die Welt hinausschicken. Natürlich wird die Implementierung einer Kombination dieser Technologien und Methoden den Nutzen noch verstärken. Aber schon jede einzelne kann einen erheblichen ROI für Ihr Test­programm bringen, es Ihnen ermöglichen, mehr Funktionen und Merkmale zu testen und Produkte von hervorragender Qualität zu veröffentlichen. Wie stellen Sie sicher, dass die Fehler in Ihren Produkten nie das Licht der Welt erblicken? Setzen Sie sich mit Ihren Gedanken in Verbindung.
Lee Densmer
AUTOR

Lee Densmer

Lee Densmer ist seit 2001 in der Lokalisierungsbranche tätig. Sie begann als Projektmanagerin und wechselte dann zu Lösungsarchitektur und Marketing-Management. Wie viele Lokalisierungsexperten kam auch sie durch ihr Sprachinteresse und ihre linguistische Ausbildung zu diesem Bereich. Sie hat einen Master-Abschluss in Linguistik von der University of Colorado. Lee Densmer lebt in Idaho und unternimmt gern Auslandsreisen und Ausflüge in die umliegenden Berge.
Alle von Lee Densmer