Recent Posts

Kontakt

Rufen Sie uns an
+49 89 4161524-10
Schreiben Sie uns
kontakt@visioneleven.com
Wir beantworten
Ihre Fragen
Frage stellen
Generic selectors
Exact matches only
Search in title
Search in content
Software-Tester in der Software-Qualitätssicherung

Software-Qualitätssicherung: Mehr als nur Testen

  |   Agile Methoden   |   Kein Kommentar

Geht es um Qualitätssicherung oder Qualitätsmanagement, denken vermutlich viele sofort an die Werkstoffprüfung in der Fertigung. Im Softwarebereich sehen einige den Softwaretest als Pendant. Dabei ist Software-Qualitätssicherung weit mehr als stumpfes Testen. Denn sie startet bereits vor Beginn des Projektes und erstreckt sich bis über den Abschluss hinaus.

 

Bereits bei der Erhebung der Anforderungen leistet sie einen erheblichen Beitrag für den Projekterfolg. Warum? Im Hinblick auf die Kosten ist eine frühe Fehlererkennung in jedem Fall günstiger als eine nachgelagerte. Die folgende Grafik gibt einen guten Überblick über die relativen Kosten zur Behebung eines Softwarefehlers:

Software-Qualitätssicherung: Relative Kosten zur Behebung eines Softwarefehlers

Quelle: Vision11

Cost of Quality: Gesamtkosten entscheidend reduzieren

Allem voran steht der Ansatz der Cost of Quality. Dieser Ansatz unterteilt die Kosten für Qualität in „Cost of Good Quality“ und „Cost of Poor Quality“. Zur ersten Kategorie zählen Kosten für die Fehlervorbeugung (Prävention) und die Prüfung. Diese Kosten entstehen, bevor ein Fehler in das Produkt und somit in Kundenhand gelangen kann. Die zweite Kategorie setzt sich aus internen und externen Kosten zusammen. Diese sind als deutlich negativer zu betrachten, da sie auftreten, um Fehler zu korrigieren. Sie werden auch Fehlerbehebungskosten genannt.

 

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

Unternehmen sollten also frühestmöglich Expert:innen der Software-Qualitätssicherung in ihre Projekte einbinden, um unnötige Kosten zu vermeiden. Denn mit deren Erfahrung sind sie in der Lage, gewisse Anforderungen als sinnvoll oder nicht sinnvoll einzuschätzen. Ebenso können sie gezielte Fragen stellen, wenn beispielsweise funktionale Anforderungen nicht ausreichend mit nicht-funktionalen Anforderungen beschrieben sind. Eine funktionale Software-Anforderung beschreibt zum Beispiel, wie die Datenausgabe erfolgen soll, etwa über einen Report. Nicht-funktionale Anforderungen werden von Fachleuten oftmals vergessen. Beispiele hierfür sind die Ladezeit zur Erstellung eines Reports, die Darstellung des Reports oder Kleinigkeiten wie die Schriftgröße.

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 Benefits 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 Testing, hebt die Software-Qualitätssicherung Projekte auf eine höhere Ebene. Durch das Modern Code Review können Expert:innen den Code bereits vor der Implementierung auf die Qualität und Fehler untersuchen. Jedoch ist dieser Review nicht nur darauf ausgelegt, Fehler zu finden. Folgende weitere Benefits konnten in einer Microsoft-Studie identifiziert werden:

Icon Stecknadel

Code Improvement: Indem Entwickler:innen ihren Code ihren Kolleg:innen 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 differente Lösungen.

Icon Stecknadel

Knowledge Transfer: Verschiedene Sichtweisen der Teammitglieder auf den Code bringen eine bessere Gesamtperspektive auf das Gesamtprojekt. Es steht nicht nur das zu entwickelnde Projektstück im Fokus.

Icon Stecknadel

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

Software Testing: Relevanz des Testing-Teams in der Softwareentwicklung

Selbstverständlich ist der Kern der Qualitätssicherung dennoch das Testen der Software. Doch auch in dieser Disziplin gilt es einiges zu beachten. Beim Testen wird festgestellt, ob die Software ihre Akzeptanzkriterien erfüllen kann oder nicht. Zusätzlich kann das QS-Team nach dem Testen bestätigen, dass eine Software bereitgestellt oder dem Kunden zur Nutzung überlassen werden kann. So ist das Software Testing konstruktiv und destruktiv zugleich. Um dies gewährleisten zu können, muss bei manuellem Testen das Testing-Team voll in das Projekt eingebunden sein. Für eine erfolgreiche Planung und Umsetzung des Testings ist es unabdingbar, dass ein Mitglied der Qualitätssicherung vorab für gut ausgefeilte User Storys und überprüfbare Akzeptanzkriterien gesorgt hat. Liegen diese vor, so bietet die vollständige Einbindung des Testing-Teams mehrere Vorteile.

1-Icon

Ermittlung der Software-Zuverlässigkeit

Software kann nicht wie Hardware korrodieren oder erschöpfen. Dennoch kann ihre Zuverlässigkeit unerwartet eingeschränkt werden. Software lässt sich anhand von ausgefallener Zeit und Zeit ohne Ausfall bewerten. Manche Zuverlässigkeitsmodelle basieren auf Bugs in der Software. Allerdings gibt es gravierende Unterschiede zwischen den einzelnen Bugs. Ein simples Zählen von Bugs führt beispielsweise zu einer fatalen Schlussfolgerung. Eine Studie von E. Adams (1984) ergab folgende Tabelle:

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.

 

 

Einerseits zeigt diese Studie, dass die meiste Zeit (33,4 %) für die Behandlung von Fehlern verwendet wird, die in 5000 Jahren einmal auftauchen werden. Deren Chance aufzutreten, liegt bei 0,8 % (Gruppe 1). Andererseits werden für häufigere Fehler (Wahrscheinlichkeit bei 30 % – Gruppe 8) nur 0,4 % der gesamten Zeit für die Fehlerbehebung aufgewendet. Diese Studie beweist, dass eine einfache Testabdeckung, unabhängig von der Testart, wenig effektiv ist. Zwar betrachtet sie alle Bereiche der Software und ihre möglichen Fehler, aber nicht die Fehler, die tatsächlich in der Software-Nutzung auftreten. Dies unterstreicht erneut die Wichtigkeit geeigneter Testmanager:innen aus der Qualitätssicherung und der Einbindung des Testing-Teams in das gesamte Projekt.

2-Icon

Mehr Details über Software-Fehler

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

Das explorative Testen

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

Die Argumente, während der Softwareentwicklung in eine systematische Qualitätssicherung zu investieren, liegen auf der Hand. Optimalerweise ziehen Unternehmen bereits vor Projektstart eine externe Beratung hinzu. Das spart Zeit und Kosten bereits in der ersten Phase.

 

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.

Sie wollen mehr erfahren?

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

Michael Wagner

Michael Wagner

M +49 160 4302318

Kein Kommentar
Keine Kommentare

Schreiben Sie einen Kommentar