Software-Tester in der Software-Qualitätssicherung

Software-Qualitätssicherung: Mehr als nur Testen

  |   CX Services ,

Beim Thema Qualitätssicherung oder Qualitätsmanagement denken viele sofort an Materialprüfung in der Produktion. Im Softwarebereich wird das Testen von Software oft als gleichwertiges Äquivalent angesehen. Dabei ist Software-Qualitätssicherung weit mehr als stumpfes Testen. In diesem Blogbeitrag zeigen wir auf, wie Software-Qualitätssicherung den Projekterfolg von Anfang bis Ende entscheidend beeinflusst und welche Vorteile sie bietet.

Früherkennung von Fehlern durch Qualitätssicherung

Bereits bei der Anforderungserhebung leistet die Software-Qualitätssicherung einen wichtigen Beitrag zum Projekterfolg. Warum? Die Kosten für die Fehlerbehebung sind später deutlich höher als bei einer frühzeitigen Fehlererkennung. Die folgende Grafik zeigt die relativen Kosten für die Behebung eines Softwarefehlers während der Anforderungsanalyse:

Anforderungsanalyse: Kosten eines Softwarefehlers

Quelle: Vision11

Cost of Quality: Gesamtkosten senken

Bei der Software-Qualitätssicherung steht allen voran der Ansatz der Cost of Quality. Dieser Ansatz unterteilt die Kosten der Qualitätssicherung in „Cost of Good Quality“ und „Cost of Poor Quality“. Fehlervermeidung und Tests fallen in die Kategorie „Good Quality“, während interne und externe Fehlerbehebungskosten in die Kategorie „Poor Quality“ fallen. Gezielte Investitionen in „Good Quality“ ermöglichen erhebliche Einsparungen und reduzieren die Gesamtkosten.

 

Wie die folgende Grafik zeigt, reichen schon geringe Aufwände im Bereich der „Good Quality“ für Prävention und Prüfung, um erhebliche Kosten in der „Poor Quality“ einzusparen und damit die Gesamtkosten zu reduzieren.

Qualitätskosten in der Software-Qualitätssicherung

Quelle: Vision11

Qualitätssicherung durch Anforderungsmanagement

Die Rolle der Software-Qualitätssicherung in Unternehmen ist entscheidend, um unnötige Kosten zu vermeiden. Deshalb ist es ratsam, Expert:innen der Software-Qualitätssicherung frühzeitig in Projekte einzubeziehen. Aufgrund ihrer Erfahrung können sie bestimmte Anforderungen als sinnvoll oder nicht sinnvoll einschätzen. Darüber hinaus sind sie in der Lage, gezielt nachzufragen, insbesondere wenn funktionale Anforderungen nicht ausreichend durch nicht-funktionale Anforderungen beschrieben sind.

 

Funktionale Softwareanforderungen beschreiben beispielsweise, wie die Datenausgabe in Form eines Berichts erfolgen soll. Die nicht-funktionalen Anforderungen werden jedoch von den Fachleuten oft vernachlässigt. Dazu gehören Aspekte wie die Ladezeit zur Erstellung eines Berichts, die Darstellung des Berichts oder auch scheinbare Kleinigkeiten wie die Schriftgröße. Die Einbindung von Expert:innen der Software-Qualitätssicherung kann dazu beitragen, dass solche wichtigen nicht-funktionalen Anforderungen angemessen berücksichtigt werden.

Funktionale und nicht funktionale Anforderungen

 

Funktionale Anforderungen legen fest, was das Produkt tun soll. Sie definieren Funktionalitäten, die das Produkt bieten soll.“ (Grande, 2014). Sie bilden die Wünsche des Kunden in textueller Form ab.

 

Nicht-funktionale Anforderungen hingegen gehen auf die Nutzbarkeit des Produktes ein. Sie können allerdings auch Anforderungen an das Projektumfeld darstellen. Beispiele hierfür sind die Dokumentation der Projektentwicklung nach einer bestimmten Notation oder die Reaktionszeit nach der Ausführung eines Befehls innerhalb der Software. Daher werden nicht-funktionale Anforderungen häufig nochmals in Qualitätsmerkmale, technische Anforderungen, Rahmenbedingungen und weitere aufgeteilt.

Software-Qualitätssicherung: Die Vorteile von Modern Code Review

Aber nicht nur im Anforderungsmanagement, also zu Beginn des Software-Entwicklungsprozesses, ist die Qualitätssicherung ein wertvoller Teilnehmer. Auch in späteren Phasen, vor dem Testen, hebt die Software-Qualitätssicherung Projekte auf ein höheres Niveau. Das Modern Code Review ermöglicht es Expert:innen, den Code vor der Implementierung zu untersuchen und zu verbessern. Neben der Fehlererkennung bietet dieser Ansatz auch Code Improvement, alternative Lösungen, Wissenstransfer und Team-Awareness. Folgende weitere Benefits konnten in einer Microsoft-Studie identifiziert werden:

Icon Stecknadel

Code Improvement: Indem Entwickler:innen ihren Kolleg:innen ihren Code erklären müssen, erhöht sich die Qualität des Codes signifikant.

Icon Stecknadel

Alternative Solutions: Der ständige Austausch mit den Teammitgliedern sorgt für neue Eindrücke und differenzierte Lösungsansätze.

Icon Stecknadel

Knowledge Transfer: Unterschiedliche Sichtweisen der Teammitglieder auf den Code führen zu einer besseren Gesamtperspektive auf das Projekt. Der Fokus liegt nicht nur auf dem zu entwickelnden Projektteil.

Icon Stecknadel

Team Awareness: Mitarbeitende lernen sich untereinander und die Expertise ihrer Kolleg:innen besser kennen.

Relevanz des Testing-Teams in der Softwareentwicklung

Das Herzstück der Qualitätssicherung ist und bleibt natürlich das Testen der Software. Aber auch in dieser Disziplin gibt es einiges zu beachten. Beim Testen wird festgestellt, ob die Software ihre Akzeptanzkriterien erfüllen kann oder nicht. Darüber hinaus kann das QS-Team nach dem Testen bestätigen, ob die Software ausgeliefert bzw. dem Kunden zur Nutzung überlassen werden kann. Das Testen von Software ist also konstruktiv und destruktiv zugleich. Um dies zu gewährleisten, muss beim manuellen Testen das Testteam voll in das Projekt integriert sein. Für eine erfolgreiche Planung und Durchführung des Testens ist es unabdingbar, dass ein Mitglied der Qualitätssicherung im Vorfeld für gut durchdachte User Stories und überprüfbare Akzeptanzkriterien gesorgt hat.

1-Icon

Bestimmung der Software-Zuverlässigkeit

 

Im Bereich der Software-Qualitätssicherung ist es entscheidend, die Zuverlässigkeit von Software zu bestimmen. Im Gegensatz zur Hardware kann Software nicht korrodieren oder erschöpfen, dennoch kann ihre Zuverlässigkeit beeinträchtigt werden. Die Bewertung erfolgt anhand der Ausfallzeit und der fehlerfreien Betriebszeit. Dabei ist es wichtig, Fehlertypen zu differenzieren, um genaue Aussagen zu ziehen. Eine Studie von E. Adams (1984) enthält relevante Erkenntnisse:

Rare Frequent
Defect Group 1 2 3 4 5 6 7 8
MTTF* (Year) 5000 1580 500 158 50 15,8 5 1,58
Avg % Fixes 33,4 28,2 18,7 10,6 5,2 2,5 1,0 0,4
Prob Failure 0,008 0,021 0,044 0,079 0,123 0,187 0,237 0,300

*MTTF: Mean Time to Failure.

 

 

Die Studie verdeutlicht die Bedeutung der Software-Qualitätssicherung. Einerseits zeigt sie, dass ein erheblicher Teil der Zeit (33,4 %) für die Behebung von Fehlern aufgewendet wird, die nur alle 5000 Jahre mit einer Wahrscheinlichkeit von 0,8 % auftreten (Gruppe 1). Andererseits werden für häufigere Fehler (mit einer Wahrscheinlichkeit von 30 % – Gruppe 8) lediglich 0,4 % der gesamten Fehlerbehebungszeit investiert. Diese Studie verdeutlicht, dass eine einfache Testabdeckung unabhängig von der Testart nur begrenzt wirksam ist. Sie berücksichtigt zwar alle Bereiche der Software und alle potenziellen Fehler, basiert aber nicht auf den tatsächlich auftretenden Fehlern während der Software-Nutzung. Daraus ergibt sich erneut die Bedeutung qualifizierter Testmanager:innen und die enge Einbindung des Testing-Teams in das gesamte Projekt. Dies gewährleistet eine effektive Software-Qualitätssicherung.

2-Icon

Mehr Details über Software-Fehler durch umfassende Einbindung des Testing-Teams

 

Ein weiterer Vorteil, das Testing-Team vollständig in ein Projekt einzubinden, zeigt sich bei der Durchführung von Tests. Im Rahmen von TestOps (d.h. dem Testbetrieb) können Defects, also Fehler deutlich detaillierter angegeben werden. So kann die Qualitätssicherung meist schon einen Anhaltspunkt liefern, woran die Software-Zuverlässigkeit scheitert.

3-Icon

Exploratives Testen als Mehrwert

 

Schließlich stellt das explorative Testen einen weiteren erheblichen Vorteil dar. Exploratives Testen bedeutet, dass Tester:innen nicht nur stumpfe Testfälle durchführen, welche auch von KI ersetzt werden können, sondern ihren Blick zusätzlich auf unabhängige Details richten. So würde beispielsweise einer KI nicht auffallen, dass ein Button mit einem falschen Anzeigetext versehen ist, solange er funktioniert. Unter diesen Umständen leisten menschliche Tester:innen mehr als eine Maschine. Denn sie erwarten gewisse Dinge, können das „Look and Feel“ einer Software beschreiben und bringen Out-of-the-Box Denken mit.

Fazit: Investition in eine erstklassige Software-Qualität für den Erfolg

Eine systematische Qualitätssicherung während der Softwareentwicklung ist unerlässlich, um hervorragende Ergebnisse zu erzielen. Es empfiehlt sich, bereits vor Projektstart eine externe Beratung in Anspruch zu nehmen, um Zeit und Kosten von Anfang an zu sparen.

 

Bei Vision11 unterstützen wir Sie dabei, die konkreten Anforderungen perfekt zu definieren. Unser Qualitätssicherungs-Team  begleitet Sie bei der gesamten Umsetzung – auch bis über die endgültige Abnahme hinaus.

Haben Sie Interesse an unserem Vorgehen, an Projektreferenzen oder an Best Practice Use Cases?

Gerne stehe ich Ihnen für ein weiterführendes Gespräch zur Verfügung:

Daniel Loderer

Daniel Loderer

 

M +49 151 62945816

Beim Thema Qualitätssicherung oder Qualitätsmanagement denken viele sofort an Materialprüfung in der Produktion. Im Softwarebereich wird das Testen von Software oft als gleichwertiges Äquivalent angesehen. Dabei ist Software-Qualitätssicherung weit mehr als stumpfes Testen. In diesem Blogbeitrag zeigen wir auf, wie Software-Qualitätssicherung den Projekterfolg von Anfang bis Ende entscheidend beeinflusst und welche Vorteile sie bietet.