Letztens sprach ich mit einem langjährigen Freund, der eine Qualitätsabteilung verantwortet und seit Jahren in dem Spannungsfeld lebt, von Projekt-Bremsen bis Projekt-Förderer alle möglichen Lobeshymnen und Beschimpfungen zu erleben.
Sein prägendes Zitat war: "Meine Mitarbeiter haben höhere Anforderungsprofile, als die der Entwicklungsabteilung. Wir sind in der Anforderungsphase, während der Implementierung und des Roll-Outs involviert, also eigentlich im gesamten Product-Lifecycle. Und das unabhängig davon, ob agile Methoden oder Wasserfallmethoden zum Einsatz kommen. Wir begleiten direkt und indirekt alle Personen, die mit dem Produkt in Berührung kommen."
Nicht nur der Arbeitgeber meines Freundes sondern weltweit werden sich Unternehmen zunehmend bewusst, welche unmittelbaren Auswirkungen die Softwarequalität auf die Kundenzufriedenheit und Profitsteigerungen hat. Wie passen sich die Testverfahren an, um den Anforderungen der digitalen Welt gerecht zu werden?
Herausforderungen
Die Herausforderungen der digitalen Transformation an die Qualitätsabteilungen sind immens:
Hochdynamisches Business
Frameworks & Tools
Plattform-Konzepte
Time-to-market
ROI von Test-Automatisierung
Testing-Standards
Kompetenzen der Test-Abteilungen
Qualitätsverständnis in der Organisation
Investitionen in Qualität nehmen zu
Laut einer Umfrage des IT-Verbandes ASQF im Jahr 2014, wurde noch nie so viel in die Qualitätssicherung investiert, wie jetzt. In der Rückbetrachtung auf die vergangenen zehn Jahre haben laut 70% der Befragten, die Investitionen in die Qualitätssicherung ihrer Unternehmen erheblich zugenommen. Neben Testautomatisierungen und der konsequenten Umsetzung der Prozesse setzen die Unternehmen dabei in verstärktem Maße auf die Aus- und Weiterbildung ihrer Mitarbeiter.
Nach der Studie World Quality Report 2014 des Beratungshauses Capgemini ist Qualität überlebenswichtig für alle Unternehmen, da die Kunden lückenlose und hochwertige Produkterlebnisse fordern. Das gilt durchweg für alle Branchen und Produktarten, ob Offline oder Onlineprodukte. Das Navigationssystem muss dem Nutzer ein gutes Nutzungserlebnis bieten, genauso wie vom Webportal des Fahrzeugherstellers ein perfektes Anwendererlebnis erwartet wird.
Mit der wachsenden Verbreitung des Internet der Dinge, erwarten Konsumenten zunehmend lückenlose Konnektivität und einen direkten Zugriff auf Informationen - bei sinkender Toleranz gegenüber Qualitätsverlusten. Organisationen achten darum immer mehr auf hochwertige, verlässliche Kundererlebnisse. Diese und weitere Technologietrends haben wichtige Auswirkungen auf Qualitätssicherung und Testing.
Die Studie ergab noch weitere Informationen:
Der Anteil neuer Entwicklungsprojekte am Testing-Budget, inklusive SMAC-Technologien, übersteigt zum ersten Mal seit 2012 den der Wartungsprojekte: von 41 Prozent in 2012 auf 51 Prozent in 2014.
Der Anteil von Testing im IT-Budget steigt weiterhin - von 18 Prozent in 2012 auf 26 Prozent in 2014.
35 Prozent der befragten Organisationen geben an, dass sie das Budget für Testing nicht für ausreichend halten.Der Fokus auf nicht-funktionale Anforderungen wie Performance, Sicherheit und Kundenerfahrung wächst vor allem im mobilen Testing.
Rund 93 Prozent der befragten Organisationen nutzen agile Entwicklungsmethoden, gegenüber 87 Prozent in 2013. Die meisten stehen immer noch vor denselben Herausforderungen, wobei der Mangel an geeigneten Testansätzen der größte ist.
Prozesse
Mehr als 80 Prozent sehen laut Studie die konsequente Umsetzung der Prozesse zur Sicherung der Ergebnisse als notwenige Maßnahme an. Denn Testen umfasst viele Aufgaben. Um diese zu strukturieren und eine effiziente Kommunikation zwischen allen Beteiligten zu ermöglichen, ist ein eigenständiger Testprozess sinnvoll, der einen verfeinerten Ablaufplan für alle Testarbeiten definiert. Der weltweit verbreitete ISTQB-Testprozess unterscheidet folgende Aktivitäten:
Planung und Steuerung,
Analyse und Design,
Realisierung und Durchführung,
Auswertung und Bericht sowie
Abschluss.
Die einzelnen Aktivitäten des Testprozesses sind nicht strikt nacheinander abzuarbeiten, eine zeitliche Überlappung wird sich in der Praxis weder vermeiden lassen noch ist sie unbedingt erforderlich.
Automatisierung
Gerade in der Vielfältigkeit der Systeme liegt das Verhängnis der Qualität. Wie stellt man sicher, dass alles mit allem richtig kommuniziert? Und wie stellt man sicher, dass Nachimplementierungen nicht die schon existierenden Funktionen negativ beeinflussen. Regression wird erforderlich. Automatisierung ist eine Möglichkeit, dies sicherzustellen.
Weiterbildung
Jedes Produkt ist nur so gut wie diejenigen, die an seiner Herstellung mitwirken. Daher sollten möglichst alle Projektbeteiligten fundiert ausgebildet sein und im Idealfall noch die gleiche (Fach-)Sprache sprechen wie ihre Kollegen aus der ganzen Welt. Das sind gute Voraussetzungen, um ein Produkt entsprechend seinen Anforderungen, verlässlich, sicher, international einsetzbar, anpassbar und langlebig zu entwickeln.
Das gilt natürlich besonders für Softwareprodukte, die gerade im digitalen Zeitalter ständig und überall entstehen. Hier werden unzählige Sensoren, Aktoren und Visualisierungen verknüpft. Wie stellt man sicher, dass alle Beteiligten die gleichen Ansprüche an Qualität, Anforderungen, Usability, Dokumentation und Service haben. Wie synchronisiert man Meilensteine und Projektsteuerung zwischen den Planern, Softwareentwicklern und Testern?
Ein international anerkanntes, standardisiertes Personalzertifikat kann helfen einen verlässlichen Nachweis zu erbringen, um Wissen, Know-how und Leistungsniveaus mit theoretischen Prüfungen messbar und vor allem vergleichbar zu machen.
Ein Beispiel für ein solches Zertifikat ist der QAMP (Quality Assurance Management Professional).
Felix Winter, aus der Geschäftsleitung des International Software Quality Institute , meint dazu: "2008 zusammen mit der IT-Industrie entwickelt, legt QAMP den Fokus - neben dem Nachweis von Wissen - bewusst auf die Berufspraxis: Individuelle Projekterfahrung, Fachwissen und Spezialisierungs-Know-how müssen nachgewiesen werden. Neben dem Spagat zwischen Theorie und Praxis will QAMP den Anspruch auf Spezialwissen einerseits und einem breiten Wissenshorizont andererseits vereinen."
Organisation
Lange Jahre wurde der Schlüssel für ein wirksames Testen darin gesehen, die Programmierung und das Testen organisatorisch so gut und so früh wie möglich voneinander zu trennen.
Fünf Organisationsmodelle werden in diesem Zusammenhang praktiziert:
Die Softwaretests liegen weiter in der Verantwortlichkeit des Entwicklungsteams, dessen Mitarbeiter ihre Ergebnisse jedoch "gegenseitig" testen. Ein Entwickler testet also die Programme eines Kollegen, aber nicht die eigenen.
Einzelne Mitglieder des Entwicklerteams werden ausschließlich für Testarbeiten abgestellt. Diese Tester erledigen alle Testarbeiten ihres Teams.
Ein separates Testteam bekommt die Testaufgaben für die Dauer des Entwicklungsprojekts übertragen. Das Team wird von einem Testmanager geleitet. Auch Mitarbeiter aus Fach- und IT-Abteilung arbeiten als unabhängige Tester in diesem Team mit.
Für spezielle Aufgaben wie das Testen von Performanz, Benutzbarkeit oder Sicherheit werden zeitweise unabhängige Tester beauftragt.
Eine separate Organisationseinheit in Form einer internen Testabteilung, eines Test-Centers oder eines externen Testdienstleisters, übernimmt das Testen oder wesentliche Teile davon, etwa den Systemtest. Diese Organisationseinheit ist als Dienstleister für mehrere Projekte oder Produkte zuständig.
Die Maßnahmen ergänzen sich beziehungsweise bauen aufeinander auf. Es ist nicht notwendig, alle Maßnahmen von Beginn an gleichzeitig einzuführen. Man kann die Maßnahmen schrittweise umsetzen und miteinander kombinieren.
Das Prinzip ist jedoch immer das Gleiche: Man trennt Test- und Entwicklungsaufgaben personell, um zu erreichen, dass Annahmen, Gedankenmodelle und versteckte Voraussetzungen, die die Programmierer getroffen oder verwendet haben, kritisch hinterfragt werden. Das alleine macht das Testen schon wesentlich wirksamer.
Unabhängig davon, ob es die gleiche Organisation ist die die Tests durchführt oder eine andere, liegt der Schlüssel zum Erfolg darin, dass die Verantwortung für Qualität in einer anderen Hand liegt, als die Verantwortung für den terminkonformen Projektabschluss.
Outsourcing
Oft ist eine mögliche Lösung, die Qualitätsmaßnahmen auszulagern und über einen Dienstleister abzudecken, da dieser organisatorisch komplett getrennt aufgestellt ist, und keine Beeinflussung erfolgt.
Florian Prester, Geschäftsführer von sepp.med, einem Beratungshaus für Qualitätssicherung, sagt dazu: "Tests sind prädestiniert für das Outsourcing-Geschäft. Hier bewerten unabhängige Experten die Entwicklung nach den neuesten Anforderungen - entsprechend den regulatorischen Vorgaben oder den Belangen der Kunden. Dabei kommt die Expertise eines spezialisierten Dienstleisters in Methoden, Werkzeugen und Kompetenzen für Dienstleistung und Produktgeschäft zum Tragen."
Gerade im Outsourcinggeschäft sind Konzepte, wie Testfactories, in denen standardisiert getestet wird, erfolgreich eingesetzt worden.
Qualitätssicherung agiler Systeme
Beim Internet der Dinge und Industrie 4.0 sprechen immer mehr Dinge miteinander und tauschen Infromationen aus. Daten werden an immer mehr Stellen erzeugt und verarbeitet. Diese neue Form der Komplexität gepaart mit hoher Agiltät der Systeme erfordert neue Ansätze in der Qualitätssicherung.
Modellbasiertes Testen hat nach Jahren der Vorarbeit nun einen relevanten Stellenwert in der Welt der Qualität. Der modellzentrierte Test ist eine Best-Practice Methode des modellbasierten Tests für die Industrie und bietet eine umfassende methodische Basis. Darauf aufbauend lassen sich die Anforderungen und Lösungsansätze aus der individuellen Projektsituation ableiten, der Werkzeugeinsatz kann geplant und die konkrete Umsetzung gesteuert werden. Er bringt viele Vorteile mit sich, die sich in hohen Synergien begründen.
Tool-Konsolidierung
Wenn eine Organisation die Verantwortung für das Testen übernimmt, fällt immer das Wort "Tool-Konsolidierung". In mehr als 50 Prozent der Organisationen sind unterschiedliche Testwerkzeuge und Frameworks im Einsatz, die nicht aufgrund von technischen Anforderungen sondern aus historischen Gründen unterschiedlich sind. Oft lässt sich der ROI einer Konsolidierung schnell nachweisen.
Vorteile
Unternehmen, die sich auf diese Trends in der Qualitätssicherung einlassen, werden viele Vorteile erfahren:
Kostenreduktion
Schnellere Markteinführung
Höhere Effizienz
Risikominimierung
Bessere Zusammenarbeit zwischen Business und IT
Grundlage für den nachhaltigen Erfolg der Qualität in der Welt der digitalen Transformation ist der Mensch. Er muss die Notwendigkeit der Qualität in allen Phasen des Produktlebenszyklus erkennen und zu schätzen wissen. Dann werden einerseits Investitionen für Qualität und andererseits organisatorische Maßnahmen kein Hindernis sein.