Definition „Qualitätssicherung“ Was ist Software Quality Assurance?

Autor / Redakteur: HJL / Stephan Augsten

Qualitätssicherung ist für Software-Anbieter sowie deren Produkte, Entwickler und Auftraggeber von Bedeutung. Die durch ein QA- sprich Quality-Assurance-Programm vorgegebenen Verfahren und Standards verhindern Produktfehler, ehe sie entstehen.

Firma zum Thema

Im Gegensatz zur nachgelagerten Qualitätskontrolle soll die Qualitätssicherung mögliche Fehler verhindern, bevor sie entstehen.
Im Gegensatz zur nachgelagerten Qualitätskontrolle soll die Qualitätssicherung mögliche Fehler verhindern, bevor sie entstehen.
(Bild: John Schnobrich)

Mit dem Begriff Qualitätssicherung (QS), die englische Bezeichnung lautet Quality Assurance (QA), sind grundsätzlich systematische Prozesse verbunden. Im Mittelpunkt der Betrachtung steht dabei die Frage: Erfüllt ein zu schaffendes Produkt die an ihn gestellten Anforderungen? Seit Generationen existieren entsprechende Sicherungspraktiken.

Heute beschäftigt sich ISO, die Internationale Organisation für Normung, um die Abbildung und Zertifizierung von Qualitätssicherungspraktiken. In formalisierter Form hat QS seinen Ursprung in der Fertigungsindustrie, wo die Prozesse der Qualitätssicherung in der ISO Normen-Familie 9000 beschrieben sind. Inzwischen bestimmen entsprechende Sicherungskonzepte die Abläufe in den meisten Industrien und ganz explizit in der Software-Entwicklung.

Qualität: Sicherung versus Kontrolle

Eine grundlegende Begriffsdefinition dient der Unterscheidung der Termini „Qualitätssicherung“ und „Qualitätskontrolle“. Zweifelsohne weisen die beiden Begriffe funktionale Ähnlichkeiten auf, gleichwohl gibt es beachtenswerte inhaltliche Unterschiede:

  • Qualitätskontrolle ist ein produktionsorientierter Vorgang. Dazu zählen Abläufe wie das Testen und die Behebung von Fehlern.
  • Qualitätssicherung bezeichnet einen systematischen Prozess zur Sicherstellung eines vorgegebenen Anforderungsprofils. Es geht darum, fehlerhaften Programm-Code zu verhindern und auf diesem Wege fehlerfreie Produkte zu liefern.

Der Software-Entwickler und QS-Modelle

Quality Assurance ist für Software-Entwickler von zentraler Bedeutung. Schließlich geht es darum, Fehler in Software-Produkten zu vermeiden, ehe sich Fehler manifestieren. Dieser Ansatz reduziert zum einen die Entwicklungszeit, zum anderen wirkt er sich Kosten dämpfend aus. Entsprechend vielfältig präsentieren sich Strategien zur Sicherstellung der Software-Qualität.

Ein auf Leistungsoptimierung ausgerichtetes Modell trägt die Kurzbezeichnung „CMMI“ für Capability Maturity Model Integration. Dabei handelt es sich um ein Bewertungsschema, das sich an Reifegraden orientiert, die mit dem Ziel der Optimierung in eine Rangfolge eingeordnet werden. Weitere Modelle, die allesamt das Ziel haben die Arbeitseffizienz zu steigern, tragen die Namen:

Wasserfallmodell: traditioneller, linearer Entwicklungsansatz. In der klassischen Schritt-für-Schritt Herangehensweise reihen sich funktionale Abläufe wie Programm-Entwurf, Code-Implementierung, Test-Phase, Korrekturen und finale Freigabe aneinander.

Agile: Team-orientierte Entwicklungsmethodik; der sogenannte „Sprint“ repräsentiert einen Schritt im Arbeitsprozess.

Scrum: Eine Kombination aus Wasserfall- und Agile-Modell, bei der Entwicklungsteams zu speziellen Aufgabenstellungen gebildet werden. In diesem Modell wird jede Aufgabe in mehrere Sprints unterteilt.

Tools und Methodik in der Qualitätssicherung

Wie kann der Software-Entwickler sicherstellen, dass ein qualitativ hochwertiges Endprodukt an den Auftraggeber ausgeliefert wird? Das Testen des Software-Programms ist ein elementarer Bestandteil der Software-Qualitätssicherung. Dem Entwickler stehen heute zahlreiche moderne Werkzeuge und Arbeitsplattformen zur Verfügung, die einen hohen Automatisierungsgrad der Testprozeduren gewährleisten. Bewährte, in Softwarehäusern häufig genutzte Tools sind (in alphabetischer Reihenfolge aufgeführt):

Jenkins: Dieses Open-Source-Programm für die Qualitätssicherung bietet die Möglichkeit, Code in Realtime auszuführen und zu testen. Dank seines Automatisierungsgrads ist Jenkins für den Einsatz in schnelllebigen Programm-Umgebungen prädestiniert.

Selenium: ein weiteres Open-Source Produkt. Es ermöglicht die Durchführung von Tests in zahlreichen Sprachen wie beispielsweise "C#", "Java" oder "Python".

Postman: Speziell für Web-Anwendungen gedachtes Tool. Dieses Testwerkzeug ist für die Betriebssysteme Windows, Mac und Linux erhältlich. Es unterstützt Editoren und Beschreibungsformate wie Swagger und die RAML-Formatierung.

Fazit: Qualitätssicherung als Unterscheidungsmerkmal

Quality Assurance (QA) unterscheidet sich von der eigentlichen Testroutine. Vielmehr definiert sie die für das Testen vorzugebenden Standards. Dies erfolgt letztendlich mit dem Ziel, die Eignung eines Software-Produkts für die im Auftrag spezifizierten Anforderungsprofile sicher zu stellen. Qualitätssicherungsteams leisten einen wertvollen Beitrag zur Produkt-Qualität - einem nicht zu unterschätzenden Unterscheidungsmerkmal im Wettbewerb.

(ID:47439579)