Qualitätssicherung Softwarequalität – der Schlüssel zur vierten industriellen Revolution

Anbieter zum Thema

Im Zuge des Internets der Dinge enthalten immer mehr Produkte eingebettete Software. Dabei wird Softwarequalität zu einem der Kriterien, die über Erfolg und Misserfolg eines Geschäftsmodells entscheiden.

Häufig kümmern sich Entwickler um die Low-Level-Tests, während die Qualitätsischerung für die anderen Testarten zuständig ist. Stattdessen sollte man allen Team-Mitgliedern alle Tests zugänglich machen.
Häufig kümmern sich Entwickler um die Low-Level-Tests, während die Qualitätsischerung für die anderen Testarten zuständig ist. Stattdessen sollte man allen Team-Mitgliedern alle Tests zugänglich machen.
(Bild: Vector Software)

Software durchdringt heute die Gegenstände, die uns im Alltag umgeben. Dies gilt nicht nur im Büro, sondern auch bei vielen anderen Dingen – in Autos, in den Spielzeugen, die wir unseren Kindern schenken, im Bus, den wir täglich benutzen, in unserer Haushaltsgeräten und in medizintechnischen Systemen, die unsere Gesundheit sichern.

In den letzten Jahren wanderte Software zunehmend vom Desktop-Rechner in die Cloud. Dank des Internets der Dinge (IoT – Internet of Things) kommt die Software wieder zurück an die Peripherie des Netzes, und immer mehr Produkte enthalten eingebettete Softwareanwendungen. Dabei wird Software-Qualität zu einem der entscheidenden Kriterien, die über Erfolg oder Misserfolg dieser Umstellung bestimmen.

Je mehr wir uns auf Produkte verlassen, deren Funktionsumfang von Software bestimmt wird, umso mehr kommt es auf die Qualität der Software an – insbesondere wenn durch Softwarefehler die Daten- oder Funktionssicherheit oder gar menschliches Leben gefährdet ist.

Balance zwischen Testumfang und Time-to-Market

Die größte Herausforderung für Softwareentwickler ist die Ermittlung eines Kompromisses zwischen der Vollständigkeit des Testumfangs und der Time-to-Market. Viele halten den Vorteil, als Erster mit einem Produkt auf dem Markt zu sein, für wichtiger. Aber Qualität zugunsten von Time-to-Market zu opfern, ist eine riskante Entscheidung, die eine Marke beschädigen kann.

Schaubild 1: Die mit „1.0“ markierte Linie entspricht dem ersten Software-Release. Das Fragezeichen entspricht dem Punkt, an dem die Anwender mit der Qualität zufrieden sind. Dazwischen liegt das Qualitätsdefizit. es zu minimieren, sollte ganz oben auf der Prioritätenlsite stehen.
Schaubild 1: Die mit „1.0“ markierte Linie entspricht dem ersten Software-Release. Das Fragezeichen entspricht dem Punkt, an dem die Anwender mit der Qualität zufrieden sind. Dazwischen liegt das Qualitätsdefizit. es zu minimieren, sollte ganz oben auf der Prioritätenlsite stehen.
(Bild: Fotolia - © Mathias Rosenthal, Schaubilder: Vector Software)

Wie lässt sich die Balance zwischen Qualität und Time-to-Market quantifizieren? Als Beispiel soll hier der normale Produkt-Lebenszyklus einer Software-Anwendung dienen (siehe Schaubild 1). Die mit „1.0“ markierte Linie im Diagramm entspricht dem ersten Software-Release für Kunden; die weiteren Linien rechts davon stehen für nachfolgende Versionen zur Behebung von Bugs bzw. mit zusätzlichen Funktionen, die bei der Vorstellung von Version 1.0 fehlten. Die mit dem Fragezeichen markierte Linie entspricht dem Punkt, an dem die Anwender mit Qualität und Features des Produkts zufrieden sind. Das Qualitäts-Defizit liegt zwischen dem ersten Produkt-Release und der Version, bei der der Markt die Produktqualität als gut einschätzt. Die Minimierung oder Beseitigung des Qualitäts-Defizits sollte jeden, der Software erstellt, ganz oben auf der Prioritätsliste stehen.

Schaubild 2: Klassischer Projektkreislauf zwischen Pflichtenheft, Design, Code und Test. Bei den meisten Teams hat die Codeerstellung die höchste Priorität, während der Entwicklung von Testfällen ein geringerer Stellenwert zukommt.
Schaubild 2: Klassischer Projektkreislauf zwischen Pflichtenheft, Design, Code und Test. Bei den meisten Teams hat die Codeerstellung die höchste Priorität, während der Entwicklung von Testfällen ein geringerer Stellenwert zukommt.
(Bild: Vector Software)

Die zweite Herausforderung für Entwicklerteams ist die Zuweisung der Entwicklungs-Ressourcen für Pflichtenheft, Design, Codeerstellung und Test (siehe Schaubild 2).

Erfahrung spielt beim Thema Test eine wichtige Rolle

Bei den meisten Entwicklungsteams hat die Codeerstellung die höchste Priorität, während das Application Programming Interface (API) und die Entwicklung von Testfällen geringeren Stellenwert haben. Meist übernehmen erfahrenere Teammitglieder die Code-Entwicklung, und weniger erfahrene Kollegen befassen sich mit dem Test. Dabei sollte es genau anders herum sein. Die wertvollsten Produkte einer Softwareentwicklung sind eine umfassende und flexible API sowie die Testfälle zum Nachweis der Fehlerfreiheit dieser API.

Testfälle sind wertvolle Entwicklungsprodukte

Entwickelt man eine API in hoher Qualität zusammen mit den Tests zur Formalisierung des richtigen API-Verhaltens, so können weniger erfahrene Kollegen die Arbeit der Codeerstellung übernehmen. Trotzdem lässt sich den Code später ohne Bedenken in Bezug auf die Qualität überarbeiten und eine deutlich höhere Produktqualität erzielen.

Die dritte Herausforderung ist, dass die meisten Gruppen verschiedene Test-Typen pflegen, und dass jeweils eine andere Gruppe in der Organisation für einen bestimmten Test verantwortlich ist. Häufig erzeugen und warten die Entwickler Low-Level Tests, während die Qualitätssicherungsabteilung für die anderen Tests verantwortlich ist.

Qualitätssicherungs-Tests erfolgen im Allgemeinen erst nach einigen Wochen Entwicklungsarbeit, wenn bereits Hunderte von Quellcode-Änderungen Teil der Code-Basis wurden. Dies macht das Auffinden der eigentlichen Fehlerursache eines fehlerhaften Testlaufs zeitraubend und frustrierend.

Die Lösung dieses Problems: Testfälle sollte man als wertvolle Ressource für die Organisation behandeln und sie im gesamten Team sowie über den gesamten Lebenszyklus einer Applikation nutzen. Auch sollte man sämtliche Tests allen Teammitgliedern zugänglich machen, ihren Einsatz besonders einfach gestalten und sie häufig ausführen.

Je nach technischer Vorgeschichte, unterschiedlicher Erfahrung oder verschiedenster Anforderungen nutzen Entwicklergruppen eine breite Palette von Werkzeugen. In Kenntnis dieser Situation hat Vector Software die Lösung VectorCAST konzipiert, um eine flexible Integration mit den meisten heute gängigen Entwicklungswerkzeugen auf dem Markt zu ermöglichen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Dies umfasst die Verwaltung von Pflichtenheften und Modell-gestützte Entwicklungswerkzeuge sowie Compiler, Debugger, Emulatoren und Boards. Anwender nutzen diese Werkzeuge in tausenden unterschiedlicher Kombinationen.

Mangelhafte Softwarequalität gefährdet eine Marke

Das Fazit kann nur lauten: Softwarequalität gewinnt angesichts der zunehmenden Nutzung des Internet der Dinge und der vierten industriellen Revolution immer mehr an Bedeutung. Wer heute seine Entwicklungsprozesse nicht anpasst, um Anwendungen in höherer Qualität zu erstellen, gefährdet nicht nur den guten Ruf seiner Marke, sondern sogar seine eigene Existenz. Wer dies berücksichtigt, wird davon auf jeden Fall profitieren.

Dieser Beitrag stammt ursprünglich von unserem SchwesterportalElektronikpraxis.de.

* Niroshan Rajadurai ist Executive Vice President für Europa, den Mittleren Osten und Afrika bei Vector Software.

(ID:44389412)