TestmanagementDie Welt verändern, ein Bug nach dem anderen…
Systemtest
Testen des integrierten Systems in einer, der Produktionsinfrastruktur nahen Umgebung. Testtreiber und Platzhalter werden nicht mehr benötigt. Allerdings steigt der Testaufwand aufgrund der Anzahl der abzudeckenden Systemtestumgebungen. Nicht nur wegen der heterogen Systemtestumgebungen ist es schwieriger und aufwendiger die Tests auf dieser Teststufe zu automatisieren.
Löst ein Systemtestfall einen Datenfluss durch das gesamte System aus, so werden diese Tests auch als End-to-End-Tests bezeichnet.
Manuelle Systemtests können untergliedert werden in
Beim explorativen Testenhandelt es sich um eine erfahrungsbasierte Vorgehensweise. Der Tester hat für diese Art von Tests keine Testspezifikation. Die Testergebnisse hängen stark von dem jeweiligen Tester ab. Die Ergebnisse sind kaum wiederholbar, es werden meist weniger Fehler gefunden.
Beim sitzungsbasierten Testengibt sich das Testteam ein formale Struktur. Die Testergebnisse werden elektronisch protokolliert. Die Reproduzierbarkeit von Tests ist höher als beim rein explorativen Testen.
Akzeptanztests sind Abnahmetests, die der Kunde oder seine Vertretung durchführt, um das System abzunehmen. Es wird die Frage beantwortet, ob das Produkt seinen Zweck erfüllt und den erwarteten Nutzen bringt. Für den Akzeptanztest können durchaus auch Testfälle aus dem Systemtest verwendet werden.
Systemtestfälle können auch automatisiert werden. Dazu verwendet man beispielsweise Capture & Replay Tools, um alle Bedienschritte aufzuzeichnen und per Knopfdruck ausführen zu können. Nachteilig ist der hohe Änderungsaufwand aufgrund der sich häufig ändernden Bedienersequenzen. Diese Nachteile können weitgehend durch Keyword-Driven-Testingvermieden werden. Man verwendet hier eine domänenspezifische Testsprache (DSL). Die Testfälle sind weniger änderungsanfällig. Ein Ansatz, um Tests in einer domänenspezifischen Sprache zu formulieren und zu automatisieren ist Behavior-Driven-Test (BDT). Für BDT stehen eine Reihe von Frameworks zur Verfügung.
Fast alle bisher beschriebenen Test hatten funktionale Testfälle als Grundlage. Im Systemtest müssen auch diverse nicht funktionale Aspekte getestet werden. Nicht funktionale Anforderungen beschreiben mit welcher Qualität ein System seine Funktion erbringen soll. Die nicht funktionalen Merkmalen sind nachISO 25000festgelegt. Getestet werden sollten beispielsweise:
Manuelle Tests und intensive Reviews: Benutzerfreundlichkeit, Dokumentation, Wartbarkeit
Wird keine Weiterentwicklung an den Programmen mehr vorgenommen, wird der nächste Build zum Releasekandidaten erklärt. Abschließende Dokumentation und umfangreiche Tests sowie Bugfixing werden durchgeführt.
Im Systemtest steuern wir welche funktionalen und nicht funktionalen Qualitätsmerkmale getestet werden müssen. Ebenso ist je Anforderung/Testfall zu entscheiden, was manuell oder automatisiert getestet werden soll.
End-to-end testing is a methodology used to test whether the flow of an application is performing as designed from start to finish. The purpose of carrying out end-to-end tests is to identify system dependencies and to ensure that the right information is passed between various system components and systems. End-to-End Testing ist ein Begriff, der sehr unterschiedlich interpretiert wird.
Exploratives Testen ist ein informelles Testentwurfsverfahren, bei dem der Tester den Entwurf der Tests aktiv steuert, indem er testet und die Informationen, die er während des Testens erhält, zum Entwurf neuer besserer Tests verwendet.
Sitzungsbasiertes Testen: Eine Vorgehensweise beim Testen, bei der die Testaktivitäten - insbesondere Testentwurf und Testdurchführung - als unterbrechungsfreie Sitzungen geplant werden, oft in Verbindung mit explorativem Testen.
Capture & Replay Tools sind Tools zur Testautomatisierung. Das Werkzeug nimmt alle vom Tester manuell durchgeführten Bedienschritte, wie zum Beispiel Tastatureingaben oder Mausklicks, während einer Testsitzung auf. Diese Bedienschritte werden vom dem Werkzeug in einem Testskript gespeichert. Danach können die aufgezeichneten Testfälle vom Tester automatisch wiederholt abgespielt werden.
Abnahmekriterien: Diejenigen Kriterien, die ein System oder eine Komponente erfüllen muss, um eine Abnahme durch den Kunden erfolgreich abschließen zu können. Formales Testen hinsichtlich der Benutzeranforderungen und -bedürfnisse bzw. der Geschäftsprozesse. Der Abnahmetest/User Acceptance Test wird durchgeführt, um einem Auftraggeber die Entscheidung auf der Basis der Abnahmekriterien zu ermöglichen, ob ein System anzunehmen ist oder nicht. Dieser Test kann unter Umständen (z. B. bei neuen Anwendungen) bereits auf der Produktionsumgebung mit Kopien aus Echtdaten durchgeführt werden. Besonders für System- und Abnahmetests wird das Blackbox-Verfahren angewendet.
Keyword-Driven-Testing ist eine Technik des automatischen Software-Testens. Die hohe Abstraktionsebene von solchen schlüsselwort-gesteuerten Tests verbessert die Wiederverwendbarkeit und die Wartbarkeit automatischer Tests.
Technik der Agilen Softwareentwicklung. Beim Behavior-Driven-Development (BDT) werden während der Anforderungsanalyse die Aufgaben, Ziele und Ergebnisse der Software derart textuell festgehalten, dass diese später automatisiert auf ihre korrekte Implementierung getestet werden können.
Zu den Nicht-funktionalen-Tests zählen nach ISO 9126/ISO 25000 folgende Qualitätsmerkmale: Zuverlässigkeit Benutzbarkeit (Usability) Effizienz Wartbarkeit Übertragbarkeit
Als Leitfaden für Qualitätskriterien und die Bewertung von Softwareprodukten führt ISO/IEC 25000 in die Normenreihe 250xx ein und definiert das SQuaRE-Model.Software engineering – Software product Quality Requirements and Evaluation (SQuaRE). Die Norm ISO/IEC 25000 (alt ISO/IEC 9126) ist ein Modell, um Softwarequalität sicherzustellen. Qualitätsmerkmale: Funktionalität (Angemessenheit, Richtigkeit, Interoperabilität, Sicherheit, Ordnungsmäßigkeit) Zuverlässigkeit (Reife, Fehlertoleranz, Wiederherstellbarkeit) Benutzbarkeit (Verständlichkeit, Erlernbarkeit, Bedienbarkeit, Attraktivität) Effizienz (Zeitverhalten, Verbrauchsverhalten) Wartbarkeit (Analysierbarkeit, Modifizierbarkeit, Stabilität, Testbarkeit) Übertragbarkeit (Anpassbarkeit, Installierbarkeit, Koexistenz, Austauschbarkeit)
Releasekandidat: Im Prozess der Softwareentwicklung durchläuft die zu erstellende Software verschiedene Entwicklungsstadien, die auch als Meilensteine betrachtet werden. Die Stadien der Entwicklung sind: Alpha, Beta, Release Candidate und Release.
Ein Bugfix, auch Patch genannt, ist eine Korrekturauslieferung für Software oder Daten aus Endanwendersicht, um Sicherheitslücken zu schließen oder Fehler zu beheben.
Ad-hoc-Testen ist informelles Testen, bei dem keine Testvorbereitung stattfindet und keine anerkannten Testentwurfsverfahren verwendet werden. Es werden keine erwarteten Ergebnisse vorab spezifiziert und die Testdurchführung erfolgt improvisiert.
Domänenspezifische Sprache (DSL) ist eine formale Sprache, die besonders für ein bestimmtes Problemfeld (die sogenannte Domäne) entworfen und implementiert wird. Beim Entwurf einer DSL wird man bemüht sein, einen hohen Grad an Problemspezifität zu erreichen: die Sprache soll alle Probleme der Domäne darstellen können und nichts darstellen können, was außerhalb der Domäne liegt. Dadurch ist sie durch Domänenspezialisten ohne besonderes Zusatzwissen bedienbar. Das Gegenteil einer domänenspezifischen Sprache ist eine universell einsetzbare Programmiersprache, wie C und Java, oder eine universell einsetzbare Modellierungssprache, wie UML.