German Testing Board über Qualität in der Software-Entwicklung Entwickler und Tester müssen gemeinsam an einer Prozessverbesserung arbeiten
In der Softwareentwicklung haben sich in den vergangenen Jahren viele konstruktive Techniken durchgesetzt, die dazu beitragen, die Entwicklung zu erleichtern und potentiell fehlerärmer zu machen: Beispielsweise der systematische Architekturentwurf in UML (Unified Modeling Language).
Anbieter zum Thema
Mit Hilfe des systematischen Architekturentwurfs UML und der damit damit einhergehenden Nutzung bewährter Entwurfsmuster (Design-Pattern) und der anschließenden Implementierung der Programme in moderne objektorientierte Programmiersprachen lässt sich die Qualität von Software-Entwicklungen erhöhen.
Die Techniken erlauben die systematische Wiederverwendung vorhandener Teillösungen und verbessern die Modularisierung der Software. Dies erhöht nicht nur deutlich die Produktivität der Entwickler, sondern auch die Qualität der Systeme. Allerdings ist es grundsätzlich unmöglich, allein durch solche Maßnahmen zuverlässig zu vermeiden, dass die Software Programmierfehler, Designfehler oder Fehler aufgrund falsch erhobener, falsch verstandener oder vergessener Anforderungen enthält. IT-Systeme werden immer intensiver und in immer kritischeren Anwendungsfeldern genutzt. Deshalb zeigt das Risiko von Fehlerwirkungen im produktiven Einsatz eine eher steigende Tendenz.
Entwicklung und Tests müssen organisatorisch getrennt werden
Der Fokus muss darauf gerichtet sein, Fehler und insbesondere potentiell schwerwiegende Fehler effektiver aufzufinden, bevor sie (im produktiven System) Schaden anrichten können. Mit anderen Worten: Unternehmen, die Software erstellen oder in ihre Produkte integrieren, müssen weiterhin investieren, um zielgerichteter, wirksamer und produktiver zu testen als bisher. Ein Schlüssel, um Testen wirksamer zu machen, liegt darin, die Tätigkeit der Programmierung und das Testen der Programme organisatorisch so gut und so früh wie möglich voneinander zu trennen. Beide Aufgaben sollten also nicht gleichzeitig von einer Person übernommen, sondern auf unterschiedliche Mitarbeiter oder Teams übertragen werden.
Die Einführung einer organisatorischen Trennung verläuft erfahrungsgemäß jedoch nicht ohne Reibungspunkte. Es gibt oftmals kleinere und größere Gräben zwischen Entwicklern und Testern. Letzteren wird häufig nicht derselbe Stellenwert eingeräumt wie Entwicklern. Das liegt vor allem an der Unkenntnis darüber, was Testen zu leisten vermag, aber auch an der Tatsache, dass zu wenige Ressourcen – also geeignete Mitarbeiter und Infrastruktur – für das Testen bereit gestellt werden. Außerhalb des Berufsfeldes „Softwaretester“ ist zudem wenig darüber bekannt, welch vielschichtige Aufgaben ein Tester zu erfüllen hat.
Im Softwareentwicklungsprozess gibt es etliche Themen, die sowohl für Entwickler als auch für Tester von hoher Relevanz sind. Beispiele hierfür sind das Anforderungsmanagement, Schätz- und Planungsverfahren, Metriken und Statistiken, Releasemanagement und Änderungsmanagement.
Bei diesen Themen sitzen Tester und Entwickler im selben Boot. Wenn Tester gegenüber der Unternehmensführung beispielsweise die Konsequenzen von unklaren Anforderungen für die Produktqualität deutlich machen können und eine Verbesserung der Anforderungsqualität durchsetzen, dann profitieren auch die Entwickler davon. Wenn Entwickler im Unternehmen für ein regelmäßiges Konfigurationsmanagement der Entwicklungsdokumente sorgen, dann wird auch das Management der Testpläne und Testfälle erheblich vereinfacht.
Ziel muss daher sein, dass Entwickler und Tester gemeinsam an kontinuierlicher Prozessverbesserung interessiert sind und sich gegenseitig stärken. Die bessere Organisation des Testens ist nur ein Baustein, der notwendig ist. Die Aus- und Weiterbildung der Tester gehört ebenfalls dazu.
Unabhängig davon, nach welchem Organisationsmodell die Aufgaben getrennt werden, unabhängig davon, wer als Software-Tester Verantwortung übernimmt, muss jeder einzelne sein Handwerkszeug gut beherrschen. Je besser die einschlägigen Testmethoden und Techniken trainiert sind, desto schneller und effizienter kann ein Tester arbeiten.
weiter mit: Systematische Abdeckung von Fehlerrisiken
Artikelfiles und Artikellinks
(ID:2047747)