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.

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.
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.
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.
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)