home  |  suche  |  kontakt/johner  |  institut  |  hinweise 
studierende  |  tech-docs  |  blog  |  mindmailer 

Einführung

Das Testen, die intensive und systematische Suche nach Fehlern, nimmt bis zu der Hälfte der Zeit für die Softwareentwicklung ein. Entsprechend sollte dieses Testen genauso sorgfältig geplant und prozessorientiert durchgeführt werden.

Testplanung

Diese Phase erfolgt zu Beginn des Projekts. Sie ist vom einzelnen Test noch unabhängig. In ihr gilt es die Rahmenbedingungen für das gesamte Projekt zu definieren wie

  • Ressourcen fürs Testen: Mitarbeiter, Schulungen, Werkzeuge, Hardware
  • Übergeordnete Richtlinien: Risikoklassifzierungen, Testmethoden (abhängig von Prozesschritt und Risiko), zu erreichende Qualitätsstandards (z.B. Code-Coverage)
  • Priorisierung (anhand von Risiken TODO add link risk analysis) der Tests von Teilsystemen und von Aspekten, wie sie durch ISO9126 beschreiben sind.

Die Testplanung kann für die einzelnen Entwicklungsschritte bzw. Testmethoden weiter verfeinert werden. Jedoch bleibt diese Phase noch unabhängig von einzelnen konkreten Tests.

Testspezifikation

Die Testspezifikation erfolgt im Gegensatz zur Testplanung zu verschiedenen Zeitpunkten. Das V-Modell schreibt beispielsweise die Reihenfolge 

  1. Spezifikation Akzeptanztest
  2. Spezifikation Systemtest
  3. Spezifikation Integrationstest
  4. Spezifikation Modultest vor.

Entsprechend jeder dieser Phasen sollte eine Testspezifikation erstellt werden pro

  • Anforderung
  • Definitionspunkt von Architektur/Design (z.B. wenn die Architektur eine Komponentenaufteilung vorsieht, gilt es diese Komponenten und die Kommunikation zwischen den Komponenten zu testen
  • Pro Artefakt (falls anwendbar)

Jede der Spezifikationen sollte Folgendes beschreiben:

  • Vorbedingungen : Beispielsweise Existenz bestimmter Komponenten 
  • Randbedingungen: Beispielsweise die erwartete Anzahl gleichzeitiger Benutzer, verwendete Hardware, installierte Software, bestimmter Releasestand
  • Genaue Beschreibung der Durchführung: Vorgehen, Testdaten, Auswertungsmethodik
  • Erwartetes Ergebnis

Die Testspezifikationen gilt es so zu schreiben, dass sie die Qualitätskriterien erfüllt/abdeckt, wie sie in der Testplanung priorisiert wurden.

Testdurchführung

Die Testdurchführung muss sich eng an der Testspezifikation orientieren. Falls dies nicht möglich ist, muss letztere überarbeitet werden.

Das Wichtigste bei der Durchführung ist die konsequente Dokumentation, welche alle Schritte nachvollziehbar macht. Dies kann den Einsatz eines Konfigurationsmanagements voraussetzen.

Testauswertung und -bewertung

Diese Phase entscheidet nicht nur darüber, ob ein Test erfolgreich verlief oder nicht, sondern auch, ob weiteres Testen sinnvoll erscheint.

Findet das Testteam Abweichungen zwischen tatsächlichem und erwartetem Verhalten (Error), so muss es entscheiden, ob die Software, die Spezifikation des Tests oder die Durchführung des Tests fehlerhaft waren. Abhängig von diesem Ergebnis muss entweder die Software verbessert und/oder der Test überarbeitet und in jedem Fall wiederholt werden.

Falls das Testteam keinen Fehler findet, kann es zusätzlich darüber entscheiden, ob weitere Tests sinnvoll sein können. Falls die Anzahl der gefundenen Fehler über die Zeit abnehmen, kann geschlossen werden, dass es nicht mehr effizient ist, mit dieser Testmethode fortzufahren. Im Sinne einer Kostenoptimierung kann es sogar sinnvoll sein, das Testen an diesem Punkt abzubrechen, weil höherer Qualitätsgrad einen Testaufwand erfordert, der höher ist als die zu erwartenden Fehlerfolgekosten.