Qualitätssicherung in agiler Softwareentwicklung

Notwendiges Übel oder integraler Bestandteil des Entwicklungsprozesses?

Während Qualitätssicherung lange Zeit als notwendiges Übel der Software-Entwicklung betrachtet wurde, ändert sich diese Einstellung mittlerweile sowohl bei Software-Entwicklern als auch bei deren Kunden. Der Grund dafür liegt auf der Hand: Nur durch eine gründliche Qualitätssicherung erfüllt die betreffende Software alle Erwartungen – gerade bei Shop-Software oder anderer geschäftskritischen Programmen ein wichtiger Faktor. Funktioniert ein Online-Shop oder eine Website nicht so wie Endkunden es erwarten, sind sie schnell verärgert und kaufen im Zweifelsfall anderswo. Dadurch erreichen Unternehmen, die bei der Qualitätssicherung in der Entwicklungsphase sparen wollten, genau das Gegenteil: Sie verlieren bares Geld.

Nicht am falschen Ende sparen

Besonders wenn Unternehmen in neue, kostspielige Software investieren, kommt an verschiedensten Stellen der Wunsch auf, irgendwo doch noch Geld einzusparen. Dabei trifft es leider oft die Qualitätssicherung - das ist aber genau das falsche Ende für Einsparungen. Tatsächlich ist nämlich nichts ärgerlicher, als wenn große Summen in ein Projekt gesteckt werden und die Software nicht so funktioniert wie sie soll. Schlechter Code und Bugs lassen sich mit einer gründlichen Qualitätssicherung von vorneherein leicht finden und beseitigen. Das erspart sowohl den Zuständigen im Unternehmen, Entwicklern als auch Anwendern böse Überraschungen.

Ein wichtiger Faktor an dieser Stelle ist Kommunikation: Zum einen muss im auftraggebenden Unternehmen selbst und bei den Entwicklern ein Bewusstsein für die Wichtigkeit von Qualitätssicherung vorhanden sein. Dafür ist es sinnvoll, dass allen Beteiligten der Mehrwert der Qualitätssicherung klar ist.

Dazu zählt:

  • Bugs, schlechtes Interface-Design oder fehlende Skalierung auf mobilen Endgeräten sorgen bei Kunden von zum Beispiel Webshops schnell für Frustration. Dadurch geht durch fehlende Qualitätssicherung am Ende der Umsatz zurück – das ist unnötig und vermeidbar.

  • Qualitätssicherung deckt frühzeitig Makel und Themen auf, die in späteren Phasen der Entwicklung problematisch werden könnten. Anstatt diese „auf den letzten Drücker“ zu finden und korrigieren zu müssen, was Zeit und Geld kostet, kann darauf von Anfang an eingegangen werden.

  • Qualitätssicherung sorgt von Anfang an dafür, dass klar ist, worauf besonderes Augenmerk liegen muss. Dadurch können Kapazitäten entsprechend geplant werden und es können sich professionelle QA-Mitarbeiter um die Bearbeitung kümmern – nicht Praktikanten, weil gerade keiner sonst Zeit hatte.

Qualität braucht Zeit

Ein häufiges Bild in den Köpfen von Auftraggebern ist, dass die Qualitätssicherung einmal am Ende der Software-Entwicklung durchgeführt wird. So funktioniert gute Qualitätssicherung aber nicht: Stattdessen findet in der agilen Software-Entwicklung nach jeder Stufe eine Überprüfung der Qualität statt. Qualitätssicherung ist so nicht das „Finale“ der Entwicklung, sondern ein wiederholtes Überprüfen der einzelnen Bestandteile einer Software, bevor diese implementiert werden. Nur auf diese Weise kann sichergestellt werden, dass alle Software-Bestandteile so funktionieren, wie sie es sollen.

Gute Planung ist die halbe Miete

Qualitätssicherung beginnt nicht erst bei der Überprüfung von bereits erstellter Software, sondern schon viel früher:

  • Erster Schritt der Qualitätssicherung ist es, Anforderungen und Qualitätskriterien für die neue Software festzulegen. Nach ISO 9126 fallen darunter Software-Merkmale wie Funktionalität, Benutzbarkeit, Effizienz und Zuverlässigkeit sowie Änderbarkeit und Übertragbarkeit. So wissen alle Beteiligten worauf es ankommt.

  • Nach der Festlegung der zuvor genannten Kriterien liegt es an den Testern, die Software-Bestandteile darauf hin zu prüfen. Unerlässlich ist dabei eine makellose Dokumentation, in der gefundene Fehler aufgezeigt und nachvollzogen werden können. Basierend auf den definierten Kriterien und wo es sinnvoll ist, können außerdem Tests automatisiert werden.

  • Zur guten Qualitätssicherung gehört auch die Zuweisung des Projekts an die richtigen Personen. Qualitätssicherung in der Software-Entwicklung darf niemals „nebenbei“ gemacht werden, sondern muss mindestens einer Person fest zugeordnet werden, die sich ausschließlich darum kümmert. Auch wenn es von außen anders wirkt, aber Testing ist mehr als „in der Software rumklicken“. Nur erfahrenes QA-Personal verfügt über die nötige Expertise und kennt die relevanten Strategien, Richtlinien und Normen, die bei solchen Tests eingehalten werden müssen – das fängt bei der Durchführung des Tests an und endet bei der Dokumentation der gefundenen Fehler.

  • Den letzter Baustein herausragender Qualitätssicherung bildet der Anspruch an sich selbst. Jeder Entwickler und Tester, der etwas auf sich hält, strebt danach besser zu werden. Aus dieser Motivation heraus interessieren sich die Beteiligten stets für neue Tools und Methoden. Außerdem hinterfragen sie bestehende Prozesse und befinden sich durch Gruppen und Konferenzen im stetigen Austausch mit Gleichgesinnten.

Wirtschaftlich effiziente Qualitätssicherung dank Automatisierung

Automatisierung ist nicht nur in vielen produzierenden Industriezweigen ein Thema, sondern auch in der Qualitätssicherung. Besonders bei regelmäßigen Tests, die viele Wiederholungen erfordern oder Lasttests, die sich händisch nur schwer umsetzen lassen, schlägt die Stunde der Testautomatisierung. Besonders gut lassen sich folgende Qualitätstests automatisieren:

  • Unit Tests

  • Integrationstests

  • Akzeptanztests

  • Komponententests

  • Graphic User Interface (GUI)-Tests

Auch wenn es toll wäre 100 Prozent Test-Automatisierung zu erreichen, gibt es immer noch einige Dinge, die menschliche Tester besser bewerten können. Dazu zählen zum Beispiel Überprüfungen der Bedienbarkeit. Im Durchschnitt lassen sich circa 80 Prozent aller Funktionen automatisch testen - es ist aber immer sinnvoll, trotzdem nach 100 Prozent zu streben, um Prozesse so effizient wie möglich zu gestalten. Eine hohe Automatisierungsrate innerhalb der fortlaufenden Qualitätssicherung ist eine Investition in die Langlebigkeit und Wartbarkeit der Software, denn nur so ist sichergestellt, dass die Programme stets ihren Zweck erfüllen.

Fazit

Qualitätssicherung stellt einen integralen Bestandteil des Entwicklungsprozesses dar. Statt sie als notwendiges Übel zu betrachten, ist es wichtig ihre Sinnhaftigkeit zu erkennen und alle Beteiligten zu kommunizieren. Auch wenn gute Qualitätssicherung Zeit kostet und dezidiertes Personal erfordert, ist sie ein Investment in den Erfolg des auftraggebenden Unternehmens sowie in die Langlebigkeit der betreffenden Software. Dank großer Automatisierungsmöglichkeiten und dem Einsatz der richtigen Tools ist es trotzdem möglich, gute Qualität mit verträglichen Kosten zu kombinieren. Auf diese Weise sind dann zugleich Auftraggeber, Entwickler und Anwender zufrieden gestellt – besser geht es nicht.

Nach oben