4nes
IT-Beratung
IT-Services
Über uns

Software Qualitätssicherung

Softwareentwicklung ist ein fehlerbehaftetes Unterfangen und umfassende Systemtests gehören daher zu jedem Projekt.

Der Systemtest kann als separates Projekt betrachtet werden, das neben dem eigentlichen Entwicklungs- bzw. Integrations-, Migrations- oder Installationsprojekt läuft.

Das Ziel des Testprojekts ist es, die Produktionsreife der von dem Hauptprojekt gelieferten Software festzustellen, also die Qualität der gelieferten Software zu überprüfen und zu dokumentieren.

In der Praxis verschiebt sich dieses Ziel des Testprojekts aus dem herrschenden Zeitdruck oft darauf, auch in unzureichend getesteten Komponenten Fehler für die Entwickler zu finden oder aber Fehler zu identifizieren die erst unter realen Bedingungen in der gesamthaften Betrachtung auffindbar sind.

Grob zusammengefasst können die einzelnen Blöcke eines Testprojekts folgendermaßen im zeitlichen Verlauf abgebildet werden beginnend mit einer:

  •       Anforderungsanalyse
  •       Testplanung
  •       Testfallspezifikation
  •       Testdatenerstellung
  •       Testausführung in mehreren Phasen
  •       Testdokumentation
  •       Abschlussbericht

Die zu leistende Testarbeit muss zuerst einmal kalkulierbar gemacht werden. Aus der Testkalkulation geht hervor, wie viele Tester wie lange testen müssen, um alle erforderlichen Testfälle durchführen zu können und bedarfsorientiert zu wiederholen. Im Rahmen der Testorganisation müssen Kontrollmechanismen installiert werden, um den Testfortschritt zu verfolgen und die Qualität der Testarbeit zu sichern.

Dazu erstellt man einen Testprojektplan der regelt was, warum, wann, wo, wie, womit und von wem getestet werden muss.

Das Was bezieht sich auf die zu testenden Objekte und Funktionen des Systems, also die Schnittstellen, die Datenbanken, die Benutzeroberflächen, Reports usw. Sie gehen aus den Anforderungen hervor auch wenn sie nicht immer explizit beschrieben sind.

Die Funktionen sind die Anwendungsfälle, die explizit oder implizit in der Anforderungsspezifikation beschrieben sind. Aus der Anforderungsanalyse geht hervor, welche Objekte, Funktionen und Qualitätseigenschaften zu testen sind, also die Quantität und Qualität des Produktes. Die Quantität drückt sich in der Anzahl der erforderlichen Testfälle aus. Die Qualität drückt sich in den Maßstäben der einzelnen Qualitätsziele aus. Der Testplan hält den Leistungsumfang des Testprojekts fest. Er bestimmt, wie viele Fälle zu testen und welche Qualitätseigenschaften zu messen sind. Mit dem Testplan verpflichtet sich ein Koordinator, den definierten und vereinbarten Testumfang abzudecken.

Das Warum ist die Frage der Zielsetzung, also was der Test erreichen soll? Vornehmlich wohl um unter möglichst realen Bedingungen Fehler zu finden und Vertrauen in das System zu gewinnen aber auch im Rahmen der Testdokumentation die Ordnungsmäßigkeit des Systems für Dritte nachvollziehbar zu dokumentieren. Am Schluss des Testprojekts steht i.d.R. ein oder mehrere Abnahmetest(s) zur Bestätigung der Funktionstüchtigkeit der Software als Voraussetzung für eine geordneten Inbetriebnahme oder Migration.

Das Wann ist die Frage der Termine, also bis zu welchem Termin wird welcher Test abgeschlossen. Jede Aktivität sollte einen Start- und einen Endtermin haben. Welche Zeitpunkte das sind, hängt vornehmlich vom Zeitpunkt der Softwarelieferung und dem Status der anderen Projekt- und Testaktivitäten ab. Außerdem gilt es etwaige Abhängigkeiten zwischen den Testaktivitäten zu beachten und wird wiedergegeben in dem Testplan.

Das Wo ist eine Frage des Orts, an dem der Test ausgeführt wird und wird ebenfalls im Testplan geregelt. Dies muss nicht unbedingt in einem dedizierten Raum erfolgen, sondern findet häufig über viele Orte verteilt parallel statt und nutzt die üblichen Kommunikationsmittel wie Telefon, Mail oder auch Online Meetings. Der Vorbereitungs- und Koordinationsaufwand bei parallel durchzuführenden Tests mit mehreren Parteien an verschiedenen Orten kann sehr hoch ausfallen und bedingt oft lange Vorlaufzeiten.

Das Wie behandelt die Frage der Testmethode. Ein systematischer Test beinhaltet strikt spezifizierte Testszenarien mit realitätsnahen Gesamtabläufen unter Einsatz von realen Testdaten. Je stärker die Fachbereiche bzw. Systemnutzer in die Erstellung der Testszenarien eingebunden sind, desto höher ist die Wahrscheinlichkeit, dass die Szenarien einen angemessenen Teil der späteren Realität abdecken können. Die Testszenarien müssen im Testverlauf flexibel angepasst oder erweitert werden können um aufkommende Problemzonen im Gesamttestverlauf abdecken zu können. Je nach eingesetzten Funktionen und Schnittstellen können neben manuellen auch automatisierte Testverfahren zum Einsatz gebracht werden (insbesondere bei Last oder Performancetests). Mit mehr Tests in kürzerer Zeit wird eine höhere Testabdeckung erreicht. Das erleichtert das frühzeitige Erkennen von Fehlern. Am Ende muss ein umfassender Testprozess entstehen, in dem die einzelnen Prozessschritte durch abgrenzbare Testaktivitäten abgebildet werden.

Das Womit behandelt die Frage der Testwerkzeuge. Um den Test zu beschleunigen und gleichzeitig die Qualität und Effektivität des Tests zu steigern, können entsprechende Werkzeuge eingesetzt werden, z.B. für die Erzeugung von Testdaten oder zur Validierung von Ergebnissen im Sinne eines Soll / Ist Vergleichs. Testwerkzeuge können aber auch zum Aufzeichnen und Abspielen von Testfällen eingesetzt werden. Die Einsatzmöglichkeiten von Testwerkzeugen hängen stark von dem zu testenden System und den verfügbaren Schnittstellen ab. Ein weiteres, wichtiges Werkzeug stellt in der Regel ein zentral verfügbares Bugtracking System dar, welches sowohl von den Entwicklern als auch von den involvierten Testparteien genutzt werden kann um Fehler systematisch zu erfassen, zu kategorisieren und die Lösungsabarbeitung zu protokollieren.

Das Wem behandelt die Frage wer die Testaufgaben durchführt bzw. teilnimmt und die Ergebnisse eines Tests beurteilt. Der Testkoordinator muss die Testaktivitäten in einer logischen Reihenfolge nebst Testdaten vorbereiten, auf die zu involvierenden Parteien verteilen, für die zeitgerechte Umsetzung bei den Parteien sorgen und die Testergebnisse zusammenführen, dokumentieren und letztlich mit den Fachabteilungen beurteilen.

Ziel ist es, durch Software Qualitätssicherung und automatisierten Testen die Leistungsfähigkeit zu steigern und eine frühere Einführung zu ermöglichen.

Zusammengefasst ist der Zweck der Testplanung also das was, warum, wann, wo, wie, womit und von wem zu beantworten und zu dokumentieren. Im Rahmen der Testkoordination gilt es dann diesen Plan umzusetzen, die Ergebnisse auszuwerten und zu dokumentieren. 

Support
Team