P r a k t I s c h e Testen von Software-Systemen Systemen Testwerkzeuge 2007 Dr. Klaudia Dussa-Zieger Testen von Software-Systemen SS 2007 (1)
P r a k t I s c h e Typen von Testwerkzeugen 2007 Dr. Klaudia Dussa-Zieger Testen von Software-Systemen SS 2007 (2)
Typen von Testwerkzeugen Definition CAST CAST = Computer Aided Software Testing Analog zu den CASE-Tools für Software Engineering gibt es CAST-Tools für den Test (bzw. das Testware Engineering ) Testen von Software-Systemen SS 2007 (3)
Typen von Testwerkzeugen Testwerkzeugkategorien Testen von Software-Systemen SS 2007 (4)
Typen von Testwerkzeugen Werkzeuge für Testmanagement Erstellung, Verwaltung und Überwachung von Testdokumenten Testplan Testspezifikation Testergebnisse Zeit- und Ressourcenplanung Berichterstattungs- und Analysefunktionen Fehlermanagement Testen von Software-Systemen SS 2007 (5)
Typen von Testwerkzeugen Werkzeuge für Testspezifikation Dokumentation von Testfällen Erstellung von Testfällen aus von CASE-Tools erstellten Spezifikationen aus formal spezifizierten Anforderungen unter Anwendung solcher Methoden wie Äquivalenzklassenbildung Klassifikationsbaumanalyse oder Grenzwertanalyse Erstellung von Testdaten Auswahl und Änderung von Testdaten, die in Testdatenbanken gespeichert sind Testen von Software-Systemen SS 2007 (6)
Typen von Testwerkzeugen Werkzeuge für Testdurchführung Werkzeuge für Statische Analyse Analyse des Codes Berechnung von Qualitätsmetriken Testroboter Capture-Replay-Tools/GUI-Test-Tools erlauben die Automatisierung von Regressionstests Testtreiber für den Test von Software außerhalb der normalen Aufrufhierarchie bzw. der normalen Umgebung des Produktes Testen von Software-Systemen SS 2007 (7)
Typen von Testwerkzeugen Werkzeuge für Testdurchführung Simulatoren Simulation des Zielsystems, z.b. wird eine Airbagsteuerung gegen eine Simulation der Fahrzeugumgebung getestet Lastgeneratoren Erzeugung von Systemlast für Performanz-Tests Testen von Software-Systemen SS 2007 (8)
Typen von Testwerkzeugen Werkzeuge zur Aufzeichnung dynamischer Tests Die Überwachung von manchen Eigenschaften kann nicht (bzw. nur partiell) statisch geprüft werden z.b. Speicherverbrauch (Aufdeckung von Speicherengpässen) z.b. Speicherfreigabefehlern (Memory Leakage) Zeigerarithmetik (Nutzung undefinierter Zeiger oder Zeiger, die auf bereits freigegebenen Speicher zeigen) Performanz-Monitore Skript-basierte Debugger Testen von Software-Systemen SS 2007 (9)
Typen von Testwerkzeugen Werkzeuge zur Aufzeichnung dynamischer Tests Werkzeuge für die Abdeckungsanalyse Maße der strukturellen Testabdeckung Anweisungsüberdeckung (C0) Zweigüberdeckung (C1) Bedingungsüberdeckung (C2, C3) Vorgehen bei der Messung zuerst wird der Quellcode des Testlings instrumentiert nach dem Instrumentieren, Kompilieren und Linken des Codes wird der instrumentierte Testling mit (normalerweise vordefinierten) Testfällen ausgeführt die gemessenen Ergebnisse werden in Dateien, Datenbanken etc. geschrieben die gemessenen Daten werden offline analysiert Testen von Software-Systemen SS 2007 (10)
Typen von Testwerkzeugen Werkzeuge für die Analyse von Testergebnissen Komparatoren, die Ist- und Sollergebnisse vergleichen Testen von Software-Systemen SS 2007 (11)
Typen von Testwerkzeugen Werkzeuge für die Auswertung des Teststatus Berichterstattungs- und Analysefunktionen (normalerweise Bestandteil von Testmanagementsystemen) Werkzeuge für die Abdeckungsanalyse Siehe auch Werkzeuge zur Aufzeichnung dynamischer Tests Testen von Software-Systemen SS 2007 (12)
Typen von Testwerkzeugen Zusammenfassung Es gibt Werkzeuge für (nahezu) alle Bereiche des Testprozesses Werkzeuge unterstützen die systematische Durchführung von Testmanagement- und Testaktivitäten Testwerkzeuge erleichtern die Automatisierung von Tests! Testen von Software-Systemen SS 2007 (13)
P r a k t I s c h e Auswahl eines Testwerkzeugs 2007 Dr. Klaudia Dussa-Zieger Testen von Software-Systemen SS 2007 (14)
Auswahl eines Testwerkzeugs Warum Werkzeugunterstützung beim Testen? (1) Automatisierung von Testaktivitäten Regressionstests Initialisierung: Ausgangszustand für den Test einstellen Durchführung: Durchführung der Tests wie spezifiziert Auswertung: Vergleich der Testergebnisse mit den Sollergebnissen Der Aufwand für die Testautomatisierung lohnt sich besonders, wenn es im Lebenszyklus eines Produktes viele Testzyklen gibt. Systematische Ausführung der Testmanagementaufgaben Testmanagementwerkzeuge helfen dem Testmanager, seine Aufgaben verlässlich auszuführen. Testen von Software-Systemen SS 2007 (15)
Auswahl eines Testwerkzeugs Warum Werkzeugunterstützung beim Testen? (2) Testwerkzeuge ermöglichen es, Vollständigkeit sicher zu stellen: Abdeckung messen ( Inwieweit werden die Anforderungen von Testfällen abgedeckt? ) zeigen, dass alle Anforderungen von Testfällen abgedeckt werden zeigen, dass alle Grenzwerte auf Testfälle abgebildet sind zeigen, dass alle risikobehafteten Anforderungen durch hochpriore Testfälle abgedeckt sind Testwerkzeuge helfen, Konsistenz sicher zu stellen Analyse der Ergebnisse sich widersprechende Ergebnisse von Testfällen fallen auf! Testwerkzeuge helfen, redundante Testfälle zu finden und zu eliminieren (fast) keine Überlappung von Testfällen Testen von Software-Systemen SS 2007 (16)
Auswahl eines Testwerkzeugs Reifegrad eines Testprozesses vs. Einsatz von Testwerkzeugen Integration von Testwerkzeugen in einen existierenden Testprozess: Die Werkzeuge müssen an den Testprozess angepasst werden. Eine Anpassung des Testprozesses an ein Werkzeug sollte vermieden werden. Testwerkzeuge sollten nur in einen etablierten, reifen Prozess eingeführt werden: Die Einführung von Testwerkzeugen allein hilft nicht dabei, einen etablierten und bewährten Testprozess zu schaffen! Testen von Software-Systemen SS 2007 (17)
Auswahl eines Testwerkzeugs Testwerkzeuge kaufen oder selbst entwickeln? (1) Technisch ausgefeilte Testwerkzeuge sind normalerweise sehr teuer Die Entwicklung proprietärer Testwerkzeuge mit der erforderlichen Funktionalität und Qualität kann jedoch auch kostspielig sein Testen von Software-Systemen SS 2007 (18)
Auswahl eines Testwerkzeugs Testwerkzeuge kaufen oder selbst entwickeln? (2) Entscheidungshilfe Wenn die Funktionalität des Werkzeugs nützlich ist und es in den Entwicklungs- oder Testprozess passt, sollte man es evaluieren. Nur wenn man kein Werkzeug findet, das die eigenen Bedürfnisse abdeckt (z.b. wenn es kein solches Werkzeug gibt, das in die Testumgebung passt), sollte man erwägen ein eigenes Werkzeug zu entwickeln. Wenn man sich dafür entscheidet, Testwerkzeuge selbst zu entwickeln, sollte man einen Projektplan aufstellen, der Entwicklung, Support und Wartung des Werkzeugs abdeckt, und danach die Entscheidung nochmals überdenken! Testen von Software-Systemen SS 2007 (19)
Auswahl eines Testwerkzeugs Wirtschaftliche Aspekte Kosten-Nutzen-Analyse Einfluss auf Entwicklungsdauer und Qualität Testen ist ohne Werkzeuge nicht möglich! Testen von Software-Systemen SS 2007 (20)
Auswahl eines Testwerkzeugs Vorgehen bei der Werkzeugauswahl Anforderungsspezifikation (1) Vom Werkzeug unterstützte Methoden Äquivalenzklassenbildung Grenzwertanalyse Klassifikationsbaum etc. Ruf des Werkzeugs/Werkzeugherstellers Marktdurchdringung Hotline etc. Kosten (Lizenzen, Wartung) Testen von Software-Systemen SS 2007 (21)
Auswahl eines Testwerkzeugs Anforderungsspezifikation (2) Berichterstattung Graphische und/oder textuelle Ausgabe Format der Ausgabe (proprietär oder einem Standard folgend) Konfigurierbarkeit der Ausgabe etc. Ergonomie Benutzerfreundlichkeit Lernkurve Mehrsprachigkeit erforderlich? Testen von Software-Systemen SS 2007 (22)
Auswahl eines Testwerkzeugs Anforderungsspezifikation (3) Betriebssystemumgebung Ein bestimmtes Betriebssystem oder mehrere Betriebssysteme Schnittstellen zu anderen Anwendungen inkl. anderer Testwerkzeuge Unterstützung einer graphischen Benutzeroberfläche Eine bestimmte Oberfläche oder mehrere Oberflächen Leistung Wie viele Nutzer sollen gleichzeitig arbeiten? Einhaltung von Antwortzeiten erforderlich? Unterstützung verteilter Standorte? Testen von Software-Systemen SS 2007 (23)
Auswahl eines Testwerkzeugs Marktstudie und Kandidatenfindung (1) Suche im Internet Google -Suche Öffentliche Liste von Werkzeugen und Werkzeugherstellern, z.b. http://www.opensourcetesting.org/ http://www.aptest.com/resources.html Konferenzen und Kongresse zu den Themen Test oder Qualität Vorträge über Werkzeuge Werkzeugausstellungen Werkzeugdemonstrationen Domänen-spezifische Konferenzen Embedded -Konferenzen zum Thema Test von Embedded Software, z.b. Embedded World Testen von Software-Systemen SS 2007 (24)
Auswahl eines Testwerkzeugs Marktstudie und Kandidatenfindung (2) Auflistung von Werkzeugen, die in Betracht kommen Muss -Kriterien definieren (vorher!) Testen von Software-Systemen SS 2007 (25)
Auswahl eines Testwerkzeugs Evaluierung Durch die Festlegung von K.O.-Kriterien könnten diejenigen Werkzeuge ausgeschlossen werden, die z.b. unternehmensspezifische Anforderungen nicht unterstützen. Bewertungsschema für die Anforderungen definieren: Wie gut werden die Anforderungen erfüllt? (z.b. 1=sehr gut,, 5=schlecht) Gewichtungsschema für die Anforderungen definieren: Wie wichtig ist diese Anforderung? (z.b. 1=sehr wichtig,, 5=unwesentlich) Testen von Software-Systemen SS 2007 (26)
Auswahl eines Testwerkzeugs Evaluierung Alle betrachteten Werkzeuge mit Blick auf die Erfüllung von Anforderungen und den Gewichtungsfaktor evaluieren Demonstration von Testwerkzeugen in der eigenen Umgebung im Zielprojekt oder einem ähnlichen Projekt Die zwei oder drei bestplatzierten Werkzeuge sollten in die engere Auswahl kommen und miteinander verglichen werden ( Validierung der Evaluierung) TOP-3-Liste erstellen Testen von Software-Systemen SS 2007 (27)
Auswahl eines Testwerkzeugs Review der engeren Auswahlliste Vorbereitung Pro- und Contra-Argumente für die auf der Auswahlliste stehenden Werkzeuge aufschreiben den subjektiven Eindruck der Evaluierenden von den auf der Auswahlliste stehenden Werkzeugen aufschreiben Review die Rangliste, Argumente und Eindrücke durchgehen eine Entscheidung treffen! Basierend auf dem Reviewergebnis einen kommentierten Bericht erstellen (Sicherstellen, dass der Bericht eine solide Aufwandsschätzung enthält!) Testen von Software-Systemen SS 2007 (28)
Auswahl eines Testwerkzeugs Auswahl Die Reviewergebnisse an das Management weitergeben Zusage und Engagement des Managements einfordern Testen von Software-Systemen SS 2007 (29)
P r a k t I s c h e Werkzeugeinführung 2007 Dr. Klaudia Dussa-Zieger Testen von Software-Systemen SS 2007 (30)
Werkzeugeinführung Pilotprojekt Ein geeignetes Pilotprojekt für den erstmaligen Einsatz des Werkzeugs auswählen Merkmale eines geeignetes Pilotprojektes Das Werkzeug wird von Anfang an im Projekt eingeführt. Es ist kein Projekt mit hohen Risiken. Das Projekt ist nicht zu klein. Pilotanwenderschulung planen und durchführen Zusätzlichen Zeit- und Budgetbedarf im Projektplan einplanen für die Schulung der Projektbeteiligten für die Einarbeitung der Projektbeteiligten Testen von Software-Systemen SS 2007 (31)
Werkzeugeinführung Review der Erfahrungen aus dem Pilotprojekt Inwieweit hat das Werkzeug den Testprozess unterstützt? Kosten-Nutzen-Analyse des Werkzeugeinsatzes Akzeptanz der Werkzeugnutzer? Prozessanpassung Zusammenwirken von Testprozess und Testwerkzeugen verbessern. Werkzeugeinsatz im Zusammenhang mit dem Testprozess erklären und beschreiben. Testen von Software-Systemen SS 2007 (32)
Werkzeugeinführung Einführung zum allgemeinen Einsatz Nach einem erfolgreichen Pilotprojekt, und nach der Einarbeitung der Lessons Learned in den Testprozess kann das Werkzeug zum allgemeinen Einsatz eingeführt werden. Anwenderschulung planen und durchführen Zusätzlichen Zeit- und Budgetbedarf im Projektplan einplanen für die Schulung der Projektbeteiligten für die Einarbeitung der Projektbeteiligten Testen von Software-Systemen SS 2007 (33)
Werkzeugeinführung Begleitendes Coaching Schulung für neue Anwender Unterstützung und Hilfe durch Gurus (z.b. Mitglieder des Pilotprojekts) Ausreichende Dokumentation Werkzeugbedienung Wie ist das Werkzeug als integraler Bestandteil des Testprozesses zu nutzen? Testen von Software-Systemen SS 2007 (34)
Testwerkzeuge Zusammenfassung Der Markt bietet Testwerkzeuge für fast jeden Zweck. Testwerkzeuge können zu einem effizienteren Testprozess beitragen. Voraussetzungen Genaue Planung und Durchführung der Werkzeugauswahl und -einführung Ein Testwerkzeug unterstützt den Testprozess ein reifer Testprozess muss bereits vorhanden sein! Testen von Software-Systemen SS 2007 (35)
Zusammenfassung In Analogie zum Projektmanagement in Entwicklungsprojekten entscheidet die Umsetzung des Testmanagements wesentlich darüber, ob das Testprojekt erfolgreich abläuft. Vom Testmanager wird die Beherrschung der entsprechenden Vorgehensweise - einschließlich der Nutzung von unterstützenden Prozessen wie Fehler- und Änderungsmanagement - erwartet. Der Einsatz geeigneter Testwerkzeuge ist für reale Projekte unverzichtbar. Die erfolgreiche Integration der diversen Testwerkzeuge - von verschiedenen Herstellern gekauft oder selbst entwickelt ist notwendige Voraussetzung für eine effiziente Umsetzung des Testprozesses und insbesondere für die Automatisierung von Testfällen. Testen von Software-Systemen SS 2007 (36)