“Wir haben vergessen, die Stunden für Testing ins Budget aufzunehmen …”
“Vielleicht ist das Sekretariat verfügbar, um durch die Anwendung zu klicken.”
“… aber schnell, weil das endgültige Release morgen zum Kunden gehen muss.”
Testen von Software ist oft ein vernachlässigter Aspekt bei der Softwareentwicklung. Es ist die Endphase vieler Entwicklungsprojekte und wird oft nur begrenzt durchgeführt.
Ursachen
Die Ursachen für falsches oder fehlendes Testing & QA beziehen sich meistens auf:
- Mangel an Wissen, um strukturiert testen zu können:
- Es werden keine Testfälle erstellt.
- Es gibt keine festen Protokolle.
- Demzufolge kostet die Testarbeit unnötig viel Zeit.
- Es besteht die Gefahr, wenn bestimmte Teile nicht getestet sind und andere doppelt getestet wurden.
- Fehlplanung von Softwaretest-Aktivitäten im Budget
- Die Tatsache, dass die Wirkung von Testing erst später zu spüren ist. Erst wenn die Anwendung in Betrieb genommen wird und in Gebrauch kommt, lässt sich die Wirkung der Tests merken.
- Tunnelblick der Softwareentwickler. Jeder testet seinen eigenen Bereich, aber niemand prüft die Konsistenz der Komponenten.
- Viel zu begrenzte Tests. Oft ist das Testen auf das Klicken auf Schaltflächen beschränkt und das Überprüfen, ob es keine blauen Bildschirme gibt. Dies geschieht oft unstrukturiert und wird von Personen durchgeführt, die nicht als professionelle Softwaretester ausgebildet worden sind.
- Unterschätzung der Wichtigkeit von Testing. Mit dem Gedanken “die Entwickler machen ihre Arbeit gut,” wird Software Testing oft als unnötig betrachtet.
Mehr Aufmerksamkeit für Software Testing
Es gibt eine Reihe von Entwicklungen, die mehr Aufmerksamkeit für das Testen erfordern.
- Die Verwendung von Webanwendungen. Hierbei muss die Anwendung theoretisch in allen gängigen Browsern funktionieren. Allerdings sieht die Praxis oft anders aus.
- Die Einführung von mobilen Geräten. Durch die Entwicklung des Tablets und des Smartphone werden immer mehr Online-Anwendungen und Webseiten mit diesen Geräten abgerufen. Auf Grund der Vielzahl verschiedener Modelle steigert die Komplexität der Kompatibilität. Jeder Gerätetyp muss separat getestet werden.
- Agile Softwareentwicklung. Immer mehr Anwendungen werden nach der agilen/Scrum-Methodik entwickelt. Hierbei ist es notwendig, den Test direkt parallel mit den Entwicklungen durchzuführen.
Entwickler testen lassen ist reine Verschwendung von Ressourcen
Zusätzlich zu den externen Faktoren, die das Testing beeinflussen, ist es auch nicht sinnvoll, Entwickler selbst testen zu lassen. Der bekannte Autor und Forscher Fred Brooks schrieb in seinem Buch “The Mythical Man-Month” (1), dass Softwareentwickler 50% ihrer Zeit beim Testen verbringen. Das ist heutzutage wahrscheinlich weniger, da wir bereits viele Beispiele aus der Praxis kennen, aber es bleibt immer noch ein wichtiger Anteil übrig. Das ist nicht effizient und funktioniert sicherlich nicht produktiv. Softwareentwickler wollen immer an neuen und herausfordernden Projekten arbeiten. In einer Zeit, wo für gute Entwickler gekämpft wird, ist es wichtig, das Beste aus der Fähigkeit des Entwicklers optimal zu nutzen. Lassen Sie die Entwickler das tun, wofür sie gut sind, nämlich analysieren und programmieren. Da bleibt in der Regel wenig Raum für Testing-Aufgaben und wirkt sich auch positiv auf die Mitarbeiterzufriedenheit aus.
Software Testing auslagern
Testing-Aufgaben lassen sich hervorragend in Niedriglohnländer auslagern. Dies hat mehrere Vorteile:
- Testing ist in der Regel eine sich wiederholende Tätigkeit. Die Auslagerung hat in der Regel Kostenvorteile und bringt Qualitätsgewinn.
- Durch den Einsatz der richtigen Tools wird sichergestellt, dass der externe Tester vollständig in das Entwicklungsteam integriert ist und integral testen kann.
- Im Falle eines dedizierten Testteams liegt der Vorteil darin, dass der Kunde über ein starkes Team von Testern verfügt, das Kenntnisse über die Produkte des Kunden erwirbt und so den Zusammenhang der verschiedenen Anwendungsteile begreift.
- Im Ausland sind professionelle und gut ausgebildete Tester noch verfügbar.
Aus den oben genannten Stichpunkten sollte man zu dem Schluss kommen, dass Testing nicht nur Geld kostet, sondern auch Geld sparen kann. Gut getestete Software bietet eine höhere Kundenzufriedenheit und ist gewinnbringend sowohl für den Benutzer als auch für den Kunden.