Softwareentwicklung: Testen, was das Zeug hält

Bevor ein Produkt auf den Markt kommt, wird es erstmal auf die Probe gestellt – von Softwaretestern.

So unterschiedlich die Produkte und ihre Umgebung auch sein mögen, eines müssen alle Softwaretester tun: auf Bugsuche gehen, analysieren, verbessern, prüfen – und das immer wieder von vorne. So auch Marco Heintz. Er ist bei Sick dafür zuständig, Sensoren mit Ethernet-Anbindung zu testen. Seine Tests zielen darauf ab, Sensoren auf Robustheit zu prüfen. Die Geräte müssen auch unter größten Belastungen stabil und sicher kommunizieren können. Dazu simuliert Heintz im Netzwerk Grundlasten, bei denen die Sensoren problemlos funktionieren müssen. Darüber hinaus provoziert er ganz bewusst Überlasten. Auch unter diesen verschärften Bedingungen darf der Sensor nicht abstürzen. »Zu meinen Aufgaben gehört es, den Umfang der Tests zu definieren«, erklärt der Test Engineer. Das heißt, er legt fest, was genau getestet wird und welche Kriterien ein erfolgreicher Test erfüllen muss. Außerdem begleitet er die Verfahren und wertet schließlich die Testergebnisse aus. »Ein bisschen ist meine Arbeit mit der eines Detektivs, der sich auf Fehlersuche begibt, vergleichbar «, verrät Heintz. »Die größte Herausforderung besteht für mich darin, auch unter Zeitdruck hochpräzise und zielorientiert zu arbeiten.« Testphasen stehen oft am Ende des Produktentstehungsprozesses an und müssen daher innerhalb kürzester Zeit erfolgreich umgesetzt werden. Das erfordert viel Flexibilität und Belastbarkeit.

Virenabwehr prüfen

Dennoch beginnt das Testen nicht erst am Ende der Entwicklungsphase, sondern ist ein fester Bestandteil bei allen Schritten hin zu einem Produkt, von der Anforderungsanalyse bis zum Abnahmetest, wie Tobias Bentele, Senior Test Coordinator bei Avira, betont. Ein Großteil der Softwaretests wird von Anfang an automatisiert und läuft mit jeder neuen Änderung somit mehrmals täglich. Vor jedem Release erfolgen zusätzlich manuelle Abnahmetests. Zeit und Ressourcen sind beim Testen ein entscheidender Faktor, wie Thomas Brunner, Senior Software Tester bei Avira, berichtet. Deshalb ist es erforderlich, für jedes Produkt und jede Funktionalität eine passende Strategie zu entwickeln, um das bestmögliche Ergebnis zu erreichen. Erfahrene Tester bekommen ein Gespür, wo sich welche Fehler verstecken, und passen Testumfang und -tiefe dem entsprechenden Risiko an. Der Einsatz von Automatisierungstools und automatisierten Prozessen ist dabei von entscheidender Bedeutung.

Fernsehen im Test

Tests sind nicht nur bei sicherheitskritischen Produkten wie einer Antivirensoftware wichtig. Auch der Pay-TV-Anbieter Sky führt sie regelmäßig durch. Bei mobilen Apps wie ›Sky Go‹ oder ›Mein Sky‹ werden etwa zunächst Unit-Tests und der System-Integration-Test durchgeführt, bei dem überprüft wird, ob zwei oder mehrere Systeme miteinander kommunizieren können und ausgetauschte Daten korrekt verarbeitet werden. Beim sich anschließenden User Acceptance Test läuft ein gewisser Anteil der Testfälle automatisiert ab, um Regressionsfehler aufzudecken. Die Tester müssen immer ›testbereit‹ sein, um schnell auf neue Anforderungen reagieren zu können. Bei der großen Anzahl an unterstützten Plattformen ist das eine Herausforderung. In der Regel dauert es vier Wochen bis drei Monate, bis ein neues Softwareprodukt alle Tests durchlaufen hat. Dabei geht es nicht nur um die App selbst, sondern auch um die darunterliegende Backend-Systemlandschaft. »Ich vergleiche das gerne mit einem Eisberg: Die App ist die Spitze, die aus dem Wasser ragt, alles darunter ist die Backend-Landschaft, die es auch noch zu testen gilt«, sagt Andreas Berg, Director Quality Assurance bei Sky Deutschland.

Arbeitsalltag eines Softwaretesters

Wie sieht der Arbeitsalltag eines Softwaretesters aber nun konkret aus? Dr. Eric Schmieder, Senior Test Architect bei der Haufe Group, zufolge besteht er aus viel Kommunikation und Interaktion mit Entwicklern sowie aus der Zusammenarbeit mit Designern und Fachleuten. Zu den alltäglichen Aufgaben eines Testers gehören das Schreiben und Ausführen von Test-Scripts, von manuellen und automatisierten Tests, die schriftliche Ausgabe von Reports sowie das Entwerfen von Tests zur Risikominimierung und zur Rückmeldung an Softwareentwicklungs-Projektteams.


Anzeige

Anzeige