Testverfahren
Einordnung der Testverfahren in den Softwareentwicklungsprozess
Die Abbildung zeigt wie sich der Softwaretest in den Entwicklungszyklus einordnet. Je nach Vorgehensmodell im Entwicklungsprozess finden die Tests parallel zu den Phasen statt (Abbildung rechts) oder nach der Fertigstellung der Softwarekomponenten (Abbildung links).
In Softwareentwicklungsprojekten hat es sich bewährt, frühzeitig Tests durchzuführen und Testfälle durchzuprobieren, um bereits in der Entwicklung Fehler in der Spezifikation oder der Implementierung feststellen zu können. Hierfür ist es notwendig, dass die Testfälle bereits vor Beginn der Implementierungsphase vorliegen und nicht erst in der Testphase spezifiziert werden.
Erstellung von Testplänen
In der Regel sollten die Testfälle bereits während der Erstellung der Anforderungen im Lasten- oder Pflichtenheft festgelegt werden. Sie leiten sich aus den Anforderungen an die Software ab. Die Abbildung zeigt den Prozess bei der Planung und Durchführung von Tests. Dieser besteht aus den Schritten Testplanung, -spezifikation, -durchführung und -protokollierung, die abschließend bewertet werden muss.
In der Testauswertung wird geprüft, ob weitere, ergänzende Tests notwendig sind und ob die Ergebnisse den Anforderungen genügen. Genügen sie den Anforderungen nicht, muss die Software entsprechend angepasst und erneut zum Test bereitgestellt werden. Sind alle Tests erfolgreich bestanden, kann die Software durch den Auftraggeber abgenommen werden.
Testdurchführung
Die Tests können auf unterschiedlichen Ebenen durchgeführt werden. Grob lassen sich drei Granularitätsstufen (Gesamtsystem, Teilsystem, Komponenten) unterscheiden wie in der Abbildung zu sehen.
Beim Gesamtsystemtest wird die entwickelte Software einer Validierung unterzogen. Dabei wird meist in Form von Black-box-Tests geprüft, ob das System die spezifizierten Anwendungsfälle abdecken und korrekt ausführen kann. Es wird nicht auf einzelne Komponenten und Implementierungsdetails geachtet. Es erfolgt keine Überprüfung der Code-Qualität.
Mit dem Integrationstest werden die einzelnen Komponenten von Teilsystemen getestet (z. B. Datenerfassung in der UI und deren Speicherung in der Datenbank). Ziel der Tests ist die Überprüfung der korrekten Datenverarbeitung und der Aufrufe von Schnittstellen innerhalb des Systems. Meist werden die Schnittstellen der Komponenten schrittweise auf ihren Output und die Übergabe getestet.Die Komponententests finden auf der untersten Ebene statt. Dabei wird überprüft wie die Software intern arbeitet und aufgebaut ist. Hierfür kommen sogenannte White-box-Tests zum Einsatz, mittels derer der Datenverarbeitungsablauf innerhalb einer Funktion oder eines Algorithmus überprüft wird.