Auswertung der Umfrage "Softwaretest in der Praxis"

Seite 2: Verantwortung, Automatisierung

Inhaltsverzeichnis

Gibt es in den Unternehmen eine selbstständige Gruppe oder Abteilung, die für die Qualitätssicherung zuständig ist? Die Antworten zeigen, dass eine solche Gruppe durchaus auch weiterhin ihre Wichtigkeit hat. Bei 63 Prozent der agilen Projekte gibt es eine solche Einheit, bei 72 Prozent der phasenorientierten und immerhin noch bei über 50 Prozent der Projekte, die ohne ein Vorgehensmodell auskommen.

Verantwortlichkeiten für die Qualitätssicherung (Abb. 3)

Interessante Ergebnisse ergab die Auswertung nach der Frage, wer sich für die Qualitätssicherung in den Projekten verantwortlich fühlt. Die phasenorientierten Projektbeteiligten sehen den Projektleiter (69 %) und den Testmanger (65 %) weit vorne. Entwickler sind nur mit knappen 30 Prozent in der Verantwortung. Bei den agilen Projekten ergibt sich ein anderes Bild. Projektmanager (55 %), Entwickler (51 %), Testmanager (49 %) und Tester (48 %) sind nahezu gleich verantwortlich für die Qualitätssicherung.

Ein entscheidender Grundpfeiler agiler Projekte ist die direkte und projektbegleitende Beteiligung des Kunden oder späteren Anwenders der zu entwickelnden Software. Werden Kunde und Mitarbeiter der Fachabteilung an den Reviews beteiligt? Inwieweit sind sie beim Testen involviert? Sind sie bei den unterschiedlichen Teststufen und Testarten beteiligt? Werden sie bei der Erstellung der Testfälle gefragt? Die Abbildung 4 zeigt ein ernüchterndes Bild. In nahezu allen abgefragten Bereichen ist die Beteiligung des zukünftigen Anwenders und Kunden sowie die der Mitarbeiter aus den Fachabteilungen in den phasenorientierten Vorgehensweisen höher als bei den agilen. Selbst die Projekte ohne ein definiertes Vorgehen liegen in dem Punkt nicht viel schlechter.

Kundenbeteiligungen an Maßnahmen zur Qualitätssicherung (Abb. 4)

Mit dem agilen Vorgehen haben viele neue Praktiken Einzug in die Softwareentwicklung gehalten. Storycards, Standup-Meetings, Retrospektive, testgetriebene Softwareentwicklung,um nur einige zu nennen. Eine der Fragen hat sich damit beschäftigt, ob diese Praktiken eine Bedeutung für die Qualitätssicherung haben. In Abbildung 5 sind die Antworten nach der Gruppe der Tester und der Gruppe der Entwickler aufgeschlüsselt. Alle sehen keine wirklich hohe Bedeutung der Praktiken, die Spitzenwerte liegen meist unter 60 Prozent. Selbst Praktiken wie die testgetriebene Softwareentwicklung oder das Pair Programming sehen die Teilnehmer an der Umfrage nicht unter dem Gesichtspunkt der Qualitätssicherung.

Bedeutung der Praktiken für die Qualitätssicherung (Abb. 5)

In der Umfrage wurde nach dem Einsatz von Testmethoden gefragt. Die Ausrichter haben dabei zwischen spezifikationsorientierten, strukturorientierten und erfahrungsbasierten Verfahren unterschieden. Es gab kaum signifikante Unterschiede beim Methodeneinsatz zwischen den agilen und den phasenorientierten
Vorgehen. Funktionstest, anwendungsfallbasierter Test und Grenzwertanalyse liegen bei den genutzten spezifikationsorientierten Verfahren zwischen 85 und 65 Prozent. Die strukturorientierten Verfahren kommen bedeutend weniger zum Einsatz. Um die 45 Prozent liegen Anweisungs- und Zweigüberdeckung. Bei den erfahrungsbasierten Vorgehen ist die intuitive Ermittlung der Testfälle weit vorn mit über 85 Prozent, gefolgt vom explorativen Test (ohne Nutzung einer Test-Charta). Hier gibt es einen Unterschied zwischen den agilen mit 70 und den phasenorientierten Projekten mit 84 Prozent. Freies Testen ohne Vorgaben und Ziele ist sehr beliebt.

Automatisierungsgrad der Teststufen (Abb. 6)

Bei agilen Vorgehensweisen ist die automatisierte Durchführung aller Testfälle unabdingbare Voraussetzung, um bei den häufigen Iterationen die Qualität zu sichern. Zumindest ist das auf der Unit-Teststufe die empfohlene
Vorgehensweise. Wie sieht die Realität aus? Abbildung 6 zeigt den Grad der Automatisierung der jeweiligen Teststufen aufgeschlüsselt nach eingesetztem Vorgehensmodell. 43 Prozent der Unit-Tests sind bei den agilen Projekten vollständig automatisiert. Werden die 28 Prozent mit einem Grad der Automatisierung zwischen 70 und 85 Prozent hinzugekommen, wird ein Automatisierungsgrad von über 70 Prozent erreicht. Das ist zwar der höchste Grad der Automatisierung, sowohl im Vergleich zu den anderen Vorgehensweisen als auch zu den unterschiedlichen Teststufen, allerdings fehlen noch 30 Prozent (beziehungsweise 57 %) bis zur anzustrebenden vollständigen Automatisierung auf Unit-Ebene. Die Antworten zeigen deutlich, dass der Grad der Automatisierung abnimmt, je höher die Teststufe ist. Zwischen 37 und 44 Prozent führen den Abnahmetest ohne jegliche Werkzeugunterstützung durch.

Die Teilnehmenden der Umfrage wurden schließlich nach ihrer Einschätzung bezüglich der Effektivität ihrer Qualitätsmaßnahmen gefragt. Sie sollten angeben, wie viele schwerwiegende Fehler nach Auslieferung der Software beim Kunden auftreten. Abbildung 7 zeigt keine wirklichen Unterschiede zwischen den Vorgehensweisen. Mit einer Ausnahme: Wird ohne eine Modell entwickelt, treten bei 13 Prozent zu viele schwerwiegende Fehler beim Kunden auf, im Gegensatz zu den anderen beiden mit jeweils unter 3 Prozent.

Schwere Fehler nach der Ausführung (Abb. 7)