Software Quality Assurance Trends und Best Practices für Software-Qualitätssicherung

Von Filipe Pereira Martins & Anna Kobylinska 7 min Lesedauer

Softwareentwicklung zählt zu den anspruchsvollsten Sportarten. Wer Perfektion und nebenbei Spitzenleistung anstrebt, braucht weitaus mehr als eine abschließende Qualitätskontrolle. In der ersten Liga gilt: Qualitätssicherung ist Programm!

Um den Ansprüchen der späteren User gerecht zu werden, sind eine gute Planung und kontinuierliches Testing unabdingbar.
Um den Ansprüchen der späteren User gerecht zu werden, sind eine gute Planung und kontinuierliches Testing unabdingbar.
eBook Software Quality Assurance
eBook „Software Quality Assurance“
(Bild: Dev-Insider)

E-Book zum Thema

Das eBook „Software Quality Assurance“ zeigt, wie SQA-Techniken, automatisierte Tests und KI-gestützte Tools qualitativ hochwertige Software gewährleisten.


Die Beständigkeit der digitaltransformierten Wirtschaft und Gesellschaft steht und fällt mit der Qualität der Software, auf die sie sich stützen. Je mehr Codezeilen in die gelebte Praxis Eingang finden und die physische mit der virtuellen Realität – zunehmend echtzeitnah – verflechten, umso mehr kommt es darauf an, dass die darauf basierenden Systeme unfehlbar funktionieren.

Die „Bananen-Software“, die erst beim Endbenutzer reifen darf, ein lästiger Bugfix nach dem anderen, war gestern. Die Softwareindustrie hat den Wendepunkt längst überschritten: Immer öfter gelten Qualitätskompromisse bei einem Softwareprodukt oder -Service als vollkommen inakzeptabel.

Wo Software tickt, ist Qualität Pflicht

Im Sommer 2022 kostete die gescheiterte Umstrukturierung der Software-Sparte von Volkswagen den CEO Herbert Diess seinen Job. Bei seiner Ernennung schien Diess die richtigen Weichen stellen zu wollen. Er schien die Bedeutung der Softwareentwicklung für die Zukunft der Autoindustrie zu verstehen. Er hatte ja seinerzeit argumentiert, VW würde „eine Software-Kultur brauchen“. Doch auf die Worte folgten kaum greifbare Resultate – jedenfalls nicht verhältnismäßig zur Dringlichkeit der Problematik.

Denn Volkswagen war dabei, seine Wettbewerbsvorteile zu verscherzen. Der Automobilbauer ließ Fahrzeuge vom Band laufen, die lange nicht mehr den Software-Standards der Branche entsprachen. Fehlerhafte Software hatte die Vorstellung neuer Modelle der Marken Porsche, Audi und Bentley verzögert und drückte auf den Umsatz. Die überstürzte Integration der Softwareschmiede Cariad brachte das Fass zum Überlaufen.

Das VW-Betriebssystem von Cariad, VW.OS, sollte als eine bahnbrechende Errungenschaft Automobilgeschichte schreiben. Ständig mit den Cloud-Diensten verbunden – mit Volkswagens berühmter Automotive Cloud VW.AC – sollte es innovative Funktionen und Anwendungen bedarfsgerecht bereitstellen. Bisher blieb der Leistungsumfang hinter den Erwartungen zurück. Um Software-Aktualisierungen für ihre Fahrzeuge aus dem VW-Automobilkonzern zu erhalten, müssen sich die Kunden immer noch zum VW-Autohändler bequemen. Drahtlose Updates über das Internet wären eigentlich nicht zu viel verlangt.

Unter der Leitung von Diess konnte sich VW nicht schnell genug in ein agiles Softwareunternehmen verwandeln. Diess, der Veteran der Automobilbranche, wurde so zum bekanntesten Manager, der für das Scheitern der Modernisierung der Softwaresparte einer Organisation bestraft wurde. Wird er der Letzte sein?

Die digitaltransformierte Wirtschaft ist durch und durch Software-zentrisch geworden; die Automobilindustrie ist da keine Ausnahme. Die Führungskräfte von heute und von morgen müssen ein anderes Prioritäten-Set ausbalancieren als noch vor kurzem ihre unmittelbaren Vorgänger.

Qualität in Code

Der Vorstoß (semi-)autarker cyberphysischer Systeme – nicht nur vernetzter oder selbstfahrender Fahrzeuge – in Gegenständen des täglichen Gebrauchs, das Aufkommen der intelligenten Edge, der M2M-Kommunikation von IoT-Endpunkten und nicht zuletzt die steigende Bedeutung Cloud-nativer Anwendungsarchitekturen erzwingen auch in der Qualitätssicherung ein massives Umdenken. Neue Anforderungen an robusten Softwarecode rufen zwangsweise neue Methoden der Qualitätssicherung auf den Plan.

Das Aufkommen containerisierter Microservices stellt für DevOps-Teams eine grundsätzliche Herausforderung dar: Vorsätze der kontinuierlichen Integration und Bereitstellung scheitern oft an den Stolpersteinen manueller Administration. Hinzu kommt ja noch die Notwendigkeit einer kontinuierlichen Qualitätssicherung (SQA). Vollständig automatisierte Nachschubwege für Softwarecode müssen ebenfalls automatische SQA-Prozesse integrieren, um unterbrechungsfrei abzulaufen. Kontinuierliche Prozessverbesserungen müssen unbedingt her.

eBook Software Quality Assurance
eBook „Software Quality Assurance“
(Bild: Dev-Insider)

E-Book zum Thema

Das eBook „Software Quality Assurance“ zeigt, wie SQA-Techniken, automatisierte Tests und KI-gestützte Tools qualitativ hochwertige Software gewährleisten.


Die meisten Softwareprobleme sind nicht auf eine grundsätzliche Unfähigkeit zurückzuführen, den Code zu kompilieren und zu debuggen. Viele Störungen treten infolge von eher unauffälligen Problemen in der Codebasis oder in den Abhängigkeiten zum Vorschein; sie können sich in schlecht reproduzierbarem Fehlverhalten reflektieren oder (unbemerkt) falsche Ergebnisse liefern. Diese Probleme werden durch die Unfähigkeit verursacht, die Software vorab ausgiebig zu testen.

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

Während sich einige Anwendungsausfälle im Nullkommanichts beheben lassen, können sich andere als ein Groschengrab entpuppen. Das Debugging kann eine beträchtliche Menge an Zeit verschlingen. Nicht behobene Fehler drohen wiederum mit dem Verlust der Wettbewerbsvorteile, Umsatzeinbrüchen, Imageschäden – von einem erhöhten Unfallrisiko und sonstigen Unannehmlichkeiten ganz zu schweigen. Manche Autobesitzer können davon sicherlich ein Lied singen. Im autonomen Fahrbetrieb ein Stoppschild übersehen, mitten im fließenden Verkehr versteht sich? Den Fingerabdruckscanner im Schneesturm abgeschaltet, um Energie zu sparen? Da vergeht einem das Lachen.

Während manche Unternehmen ihre digitale Transformation Hals über Kopf beschleunigen wollen, um einen Wettbewerbsvorteil zu erlangen, nimmt auch das Tempo der Softwareentwicklung weiterhin mit einer überwältigenden Geschwindigkeit zu. Dies stellt IT-Teams unter enormen Druck, Software schnell zu entwickeln und zu veröffentlichen. Oft geschieht dies mit begrenzten Ressourcen.

Einen wichtigen Schritt bei der Veröffentlichung neuer Software stellt daher die Bereitstellung der richtigen Testfähigkeiten dar, um Fehler vorab zu finden und zu beheben. Stattdessen gehen manche Teams unbegründete Risiken ein, indem sie das Testen und Debuggen übers Knie brechen, bis sich der Code halbwegs kompiliert. Daher scheitern Organisationen, die nicht in einer softwarezentrierten Kultur verwurzelt sind.

Um eine Fußball-Metapher zu nutzen: In der Software-Qualitätssicherung muss man „von hinten aufbauen“. Kompetente Teams, gewappnet mit bewährten Methoden der Qualitätssicherung, sind wie die Torhüter – die sicheren Hände, die das Schlimmste verhindern. Softwaretests sind entscheidend, um Mängel und Fehler im Code zu identifizieren und „abprallen zu lassen“. Denn Papier ist geduldig. Erst durch das Probieren lässt sich ermitteln, inwiefern das betreffende Programm den Anforderungen an die Funktionalität, Kompatibilität und Robustheit tatsächlich entspricht.

Zu oft konzentrieren sich manche Organisationen stattdessen darauf, halbgare Software herauszubringen, um zu anderen, vermeintlich besser aufgestellten Marktakteuren aufzuholen. Doch ohne eine solide Torabwehr ist das Konzept ein Glücksspiel und auf lange Sicht zum Scheitern verurteilt.

Qualitätssicherung auf Autopilot

Die Komplexität von Softwareprojekten wächst scheinbar unaufhaltsam. Der Wettbewerbsdruck hat die Release-Zyklen verkürzt und die Prozesse derart beschleunigt, dass sie allesamt kontinuierlich ablaufen. In dem Hamsterrad von DevSecOps muss auch die Software-Qualitätssicherung (SQA) ihren Platz finden. CI/CD-Pipelines sind grundsätzlich sehr empfänglich. In modernen CI/CD-Pipelines schafft automatisierte Qualitätssicherung Abhilfe.

Entwickler und Entwicklerinnen können SQA in ihre Dev(Sec)Ops-Workflows integrieren, indem sie automatisierte Tests in den Build- und Deployment-Prozess einbinden. Dies kann mithilfe von Tools wie Jenkins, Bamboo oder Travis CI geschehen. Die automatisierten Tests kommen dann bei jedem Build zum Zuge. So lassen sich Fehler frühzeitig erkennen und beheben, bevor sie in der Produktion richtigen Schaden anrichten können.

eBook Observability
eBook „Observability“
(Bild: Dev-Insider)

E-Book zum Thema

Das eBook „Observability“ schafft das nötige Bewusstsein für die notwendige Überwachung von Cloud-nativen, verteilten Anwendungen.


Darüber hinaus kann die Integration von Testmanagement-Tools in den CI/CD-Prozess sicherstellen, dass Prüfungen der Qualitätssicherung regelmäßig stattfinden und beobachtbar sind (siehe auch das eBook „Observability“ von Dev-Insider). Die kontinuierliche Überwachung der Softwarequalität und -Performance gilt als eine Voraussetzung für die Fähigkeit zur kontinuierlichen Prozessoptimierung. Diese gehört ins Pflichtenheft der Qualitätssicherung.

Moderne Ansätze zur Qualitätssicherung versprechen Unternehmen eine Vielzahl von Vorteilen. Sie helfen, die Anzahl von Fehlern und ihre Tragweite zu verringern, die Benutzerzufriedenheit zu verbessern, die Effizienz der Softwareentwicklung zu steigern und damit die Kosten zu senken.

Schachzug KI

Fortgeschrittene Technologien und Werkzeuge der SQA stützen sich immer öfter auf maschinelles Lernen (ML) und künstliche Intelligenz (KI). Diese Technologien erlauben es den Entwicklern, große Datenmengen von Messwerten zu analysieren, um Muster zu erkennen und Prognosen zu treffen.

KI und ML können sich auch bei der Automatisierung von Tests und der Überwachung von Anwendungen einbringen. So können Entwickler mithilfe von maschinellem Lernen beispielsweise Vorhersagen darüber treffen, welche Teile einer Anwendung am anfälligsten auf Fehler sind oder am ehesten einen Performance-Sprung verkraften könnten. Entwickler können sich dann anderen Aufgaben widmen.

Eine weitere Anwendung von KI und ML in der SQA ist die Automatisierung von Tests. Mit maschinellem Lernen können Entwickler automatische Tests schreiben, die sich an die Bedürfnisse der Anwendung anpassen und sich mit der Zeit eigenständig weiterentwickeln, um bessere Ergebnisse zu liefern. Außerdem lassen sich KI und ML bei der Überwachung von Anwendungen nutzbringend einsetzen.

Diese Tools sind dazu in der Lage, große Datenmengen in Echtzeit zu analysieren, um Trends, Probleme und sonstige Anomalien zu erkennen. Entwickler können dann die gewonnenen Informationen nutzen, um Prozesse zu optimieren und die Qualität ihrer Anwendungen zu verbessern.

Insgesamt kann der Einsatz von KI und ML in der SQA massive Vorteile bringen und die resultierende Softwarequalität wesentlich anheben. Der Einsatz von KI/ML-Methoden ist in der Softwareentwicklung ein schlaues Kalkül.

Fazit

Wer Innovationen hervorbringen will, muss – wohl oder übel – zwangsweise Neuland betreten, und das auch noch ohne Netz und doppelten Boden. Die verzwickte Interkonnektivität von Software-Ökosystemen schafft ein enormes Potenzial für Fehler. Einige bewährte Grundsätze der Qualitätssicherung gehören daher ins Pflichtenheft.

Dieser Beitrag ist der erste von drei Artikeln aus unserem eBook „Software Quality Assurance“. Darin erfahren Sie mehr über Standards, Metriken und passende Tools zur Sicherstellung der Software-Qualität.

E-Book zum Thema

Software Quality Assurance

eBook Software Quality Assurance
eBook „Software Quality Assurance“
(Bild: Dev-Insider)

Das Aufkommen der intelligenten Edge, der Machine-to-Maschine-Kommunikation von IoT-Endpunkten und die steigende Bedeutung Cloud-nativer Anwendungsarchitekturen erzwingen ein massives Umdenken in der Software-Qualitätssicherung (SQA).

Dieses eBook umfasst die folgenden Themen:

  • Softwarequalität sicherstellen: Trends und Best Practices.
  • Zeile für Zeile Qualität: Was es braucht und wie es geht.
  • Blick in die Praxis: SQA-Techniken und -Hilfsmittel.


(ID:49839970)