QS oder Testen – eine Begriffsklärung

Die Voraussetzungen sind gegeben, dann könnten wir eigentlich loslegen mit der Qualitätssicherung… oder mit dem Testen. Mit was denn jetzt eigentlich? In meinen letzten Beiträgen bin ich etwas sorglos mit diesen Begriffen umgegangen, habe mal diesen und mal jenen benutzt. Hier jetzt mal eine Begriffsklärung, an die ich mich zukünftig halten werde.

Qualitätssicherung:

Das Projekt Magazin definiert den Begriff der Qualitätssicherung im allgemeinen Sprachgebrauch folgendermaßen:

„Qualitätssicherung ist Bestandteil des Qualitätsmanagements. Zur Qualitätssicherung gehören alle operativen Tätigkeiten, die vorbereitend, begleitend und prüfend die definierte Qualität eines Produktes oder einer Dienstleistung gewährleisten sollen.“

Übertragen auf die Webentwicklung bedeutet das, dass die geforderte Qualität auch schon in Vorbereitung oder während der Entwicklung sichergestellt werden kann. Zu den qualitätssichernden Maßnahmen zählt vor allem die Review von Dokumenten wie Anforderungsdefinition, Konzept und Systementwurf. Bereits in diesen Dokumenten können sich Fehler oder Ungenauigkeiten einschleichen, die sonst erst spät beim Testen des Systems auffallen.

Beispiele:

  • Die Anforderungen wurden falsch oder ungenau formuliert und sind daher nicht wie eigentlich vom Kunden gewünscht im Konzept beschrieben.
  • Widersprüchliche Anforderungen im Konzept werden von verschiedenen Entwicklern umgesetzt und führen zu schwer nachvollziehbaren Fehlern in der Web-Anwendung.
  • Mangelnde Abstimmung des Konzepters mit den Entwicklern führt zur Vorgabe von nicht oder nur schwer umsetzbaren Funktionen.

Oft werden beim Testen nicht nur Bugs gefunden, sondern es stellt sich auch heraus, dass Anforderungen nicht korrekt oder gar nicht umgesetzt wurden. Durch frühzeitige Prüfung von Dokumenten und Absprachen im Team kann das verhindert werden.

Testen:

Als prüfende operative Tätigkeit zählt auch das Testen zur Qualitätssicherung und ist damit ein Bestandteil der Qualitätssicherung. Unter Testen versteht man die Überprüfung eines Systems um festzustellen, ob die im Konzept definierten Anforderungen erfüllt werden. Dabei können Fehler im zu testenden System gefunden werden – jedoch kann die Abwesenheit von Fehlern nicht bewiesen werden. Dazu müssten alle Funktionen in jeder möglichen Kombination von Eingabedaten und Benutzeraktionen geprüft werden, was – außer in trivialen Systemen – praktisch unmöglich ist.

Strukturiertes Testen erfordert immer die Erstellung von Testfällen. Ein Testfall enthält alle Angaben, die für die Überprüfung einer Funktion oder Eigenschaft des Systems notwendig sind. Dazu gehören (in Kürze): Vorbedingungen, (Nutzer-)Aktion und Eingabedaten, erwartete Reaktion und Ausgabedaten des Systems.

Die am meisten angewendete Testmethode ist das Black-Box-Testing. Der Tester prüft dabei „von außen“ die definierten Anforderungen an das zu testende System. Als Grundlage für seine Testfallspezifikation verwendet er die Projektdokumentation, also z. B. das Inhaltliche Konzept. Er verfügt darüber hinaus über keinerlei Kenntnisse über den Aufbau des zu testenden Systems, sondern verwendet es nur so wie für einen normalen Benutzer vorgesehen.

White-Box-Tests werden zumeist von Entwicklern durchgeführt. Sie kennen den inneren Aufbau des Systems (also den Systementwurf, den Programmcode) und können darauf abgestimmt spezielle Tests durchführen.

Bei den angesprochenen Testverfahren wird das System beim Testen ausgeführt, daher nennt man dies dynamisches Testen. Von statischem Testen spricht man z. B. bei der Analyse von Programmcode, der sogenannten „Code-Review“.

In Literatur und bei Wikipedia findet man zahlreiche weitere Testmethoden, die hier aber nicht weiter beschrieben werden sollen.

Fazit:

Wer seine Software testet und dies Qualitätssicherung nennt, liegt damit nicht falsch. Das Finden und anschließende Beheben von Fehlern sichert die Qualität des Systems vor dem Produktivbetrieb.
Der Begriff des Testens beschreibt jedoch etwas genauer die eigentliche Tätigkeit, nämlich das Prüfen des ausgeführten Systems, was entwicklungsbegleitend oder nach Abschluss der Entwicklung passieren kann.


1 Kommentar zu „QS oder Testen – eine Begriffsklärung“