Tools zur Testunterstützung Modul: Formale Methoden Sandra Engelke ( ) Anna Schröder ( ) André Borries ( ) Wismar, den
Formale Methoden Tools zur Testunterstützung Inhalt 1. Einleitung 2. Typen von Werkzeugen 3. Auswahl und Einführung von Werkzeugen 4. Praxisbeispiel 5. Fazit
Formale Methoden Tools zur Testunterstützung André Borries 1. Einleitung 2. Typen von Werkzeugen 3. Auswahl und Einführung von Werkzeugen 4. Praxisbeispiel 5. Fazit
Formale Methoden Tools zur Testunterstützung Wieso brauchen wir zuverlässige Software? André Borries Wir lassen uns ständig von technischen Geräten helfen. o Smartphone-Apps, Navigationsgeräte o Haushaltsgeräte o Flugzeuge, Kraftwerke Wenn diese unzuverlässig arbeiten, werden sie nutzlos und können sogar gefährlich werden. o Gebrauchstauglichkeit / Usability o Funktionsfähigkeit o Sicherheit
Formale Methoden Tools zur Testunterstützung Wie entwickeln wir zuverlässige Software? André Borries Durch systematisches Testen im Softwareentwicklungsprozess. o Qualitätssicherung Durch den Einsatz von Tools zur Testunterstützung. o Effizienz erhöhen (Automatisierung und Verwaltung) o Ressourcen schonen (Personal und Zeit) o Überblick behalten (Analysen und Berichte) o Informationsverlust gering halten (Dokumentation)
Formale Methoden Tools zur Testunterstützung 1. Einleitung 2. Typen von Werkzeugen 3. Auswahl und Einführung von Werkzeugen 4. Praxisbeispiel 5. Fazit André Borries
Formale Methoden Tools zur Testunterstützung Werkzeugtypen André Borries Werkzeuge für das Testmanagement Werkzeuge für die Testspezifikation Werkzeuge für statische Tests Werkzeuge für dynamische Tests Werkzeuge für nicht funktionale Tests Quelle: in Anlehnung an (Spillner & Linz, Basiswissen Softwaretest, 2010), S
Formale Methoden Tools zur Testunterstützung Testmanagement André Borries Funktionen o Testfälle erfassen, katalogisieren, priorisieren o Testfortschritt beurteilen o Bereitstellung aussagekräftiger Berichte o Ressourcenplanung Schnittstellen o Anforderungsmanagement o Fehlermanagement o Konfigurationsmanagement
Formale Methoden Tools zur Testunterstützung Testspezifikation André Borries Randbedingungen festlegen o Testreihenfolge o Abhängigkeiten der Testfälle untereinander o erwartete Testergebnisse Testdaten festlegen - Testdatengeneratoren o datenbankbasiert o codebasiert o schnittstellenbasiert o spezifikationsbasiert
Formale Methoden Tools zur Testunterstützung Statische Tests André Borries Überprüfungen der Dokumente – vorwiegend Programmcode Ausführung der Software ist nicht notwendig Funktionen o Review-Werkzeuge (4-Augen-Prinzip, nur dokumentieren) o Statische Analyse Vertreter o Compiler (Codeprüfung) o Model Checker (Strukturprüfung)
Formale Methoden Tools zur Testunterstützung Dynamische Tests André Borries Entlastung des Testteams durch Automatisierung Ausführung der Software ist notwendig Vertreter o Mitschnittwerkzeuge / Capture&Replay o Regressionstestwerkzeuge o Simulatoren o Testtreiber o Debugger
Formale Methoden Tools zur Testunterstützung Nicht funktionale Tests André Borries testen keine Funktionen sondern o Zuverlässigkeit o Gebrauchstauglichkeit o Sicherheit Vertreter o Leistungs- und Stresstest – Werkzeuge o Performanztest – Werkzeuge o Werkzeuge für den Datenvergleich (Migrationsprojekte) o Virenscanner und Firewall
Formale Methoden Tools zur Testunterstützung Sandra Engelke 1. Einleitung 2. Typen von Werkzeugen 3. Auswahl und Einführung von Werkzeugen 4. Praxisbeispiel 5. Fazit
Formale Methoden Tools zur Testunterstützung Werkzeuge - erhoffte Vorteile Komplexität der Testaktivitäten werden besser organisieren und überblicken Steigern der Effizienz in der Testgruppe Durchführung von eigentlich personalintensiven Testaktivitäten durch Automatisierung möglich, z.B. Lasttests Wiederverwendung von definierten und hinterlegten Testabläufen Verringerung des Testzeitraums Verbesserung der Testergebnisse Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugauswahl Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugauswahl Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugauswahl Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugauswahl Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugauswahl Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugeinführung Voraussetzung: o Reife des Testprozesses ist sichergestellt bzw. notwendige Verbesserungsmaßnahmen sind identifiziert und in der Verbesserung Erste Arbeit mit Werkzeug in Pilotprojekt Zeitpunkt für Pilotprojekt günstig wählen Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugeinführung - Pilotprojekt Eckdaten für Pilotprojekt: o Laufzeit: 3 – 6 Monate o Größe und Umfang ähnlich gängiger Projekte Ziel des Pilotprojektes: o Werden die Erwartungen an das Werkzeug erfüllt? o Validierung der im Auswahlprozess gemachten Annahmen Ergebnis: o Entscheidung über weiteren Werkzeugeinsatz o Positive Entscheidung: Einsatzkonzept für Gesamteinführung Sandra Engelke
Formale Methoden Tools zur Testunterstützung Werkzeugeinführung Fragen für Planung und Durchführung der Gesamteinführung: o Wird das Werkzeug in Form eines „Big Bang“ oder durch einzelne Projekte eingeführt? o Wie werden Widerstände einzelner Mitarbeiter oder Gruppen gelöst? o Welche Ausbildung benötigen die Teammitglieder und wie wird diese erreicht? Sandra Engelke
Formale Methoden Tools zur Testunterstützung Herausforderungen bei Werkzeugauswahl und -einsatz Trotz umfangreicher Evaluation kein zufriedenstellendes Werkzeug gefunden Eigentliche Qualität der Test verbessert sich nicht, denn sie hängt vom Tester ab Werkzeugeinsatz zieht viel manuelle Arbeit nach sich Werkzeugunterstützung scheitert an der Komplexität der zu entwickelnden Software Entwicklungszyklen sind zu schnell, als dass er geeignet durch Werkzeuge unterstützt wird Sandra Engelke
Formale Methoden Tools zur Testunterstützung 1. Einleitung 2. Typen von Werkzeugen 3. Auswahl und Einführung von Werkzeugen 4. Praxisbeispiel 5. Fazit Anna Schröder
Formale Methoden 25 Vorstellung von QF-Test QF-Test ist… „ein Werkzeug zur Erstellung, Ausführung und Verwaltung von automatisierten System- und Lasttests für Java- und Web- Anwendungen mit grafischer Benutzeroberfläche GUI).“ (Vgl. seit 1999 von QFS Gmbh entwickelt Tools zur Testunterstützung Anna Schröder
Formale Methoden 26 Vor- und Nachteile Tools zur Testunterstützung schnell erlernbar für Tester und Entwickler ungewohnte Symboliken und Icons wiederverwendbare Testmodulekein Test von Business-Logik möglich Erkennung von GUI-Komponentenda kein Open Source Produkt: hohe Lizenz- und Wartungskosten konfigurierbare Testreporte umfangreiche Dokumentation und professioneller Support durch Hersteller Anna Schröder
Formale Methoden 27 Einsatz in der data experts gmbh vor allem für Standardtestfälle Anstreben einer möglichst vollständigen Testabdeckung der Kernfunktionalitäten nächtliche Integration vor jeder Programmauslieferung Verkauf von QF-Testfällen für Kunden-Testsystem Tools zur Testunterstützung Anna Schröder
Formale Methoden 28 Anwendungsbeispiel Login für erfolgreiche Anmeldung müssen erfüllt sein: o Kennzeichen im System bekannt o Kennwort korrekt o (Nutzer mit Kennzeichen noch nicht im System angemeldet) Tools zur Testunterstützung Anna Schröder
Formale Methoden 29 Vorführung von QF-Test anhand eines Anwendungsbeispiels Tools zur Testunterstützung Anna Schröder
Formale Methoden 30 Erfahrungen der data experts gmbh QF-Test seit mehr als 5 Jahren im Einsatz viele Fehler gefunden, die durch manuelle Test nicht gefunden worden wären, weil o stupide, sich ständig wiederholende Abläufe o Massentests möglich o jedes Mal alle Kernfunktionalitäten getestet o keine zeitlichen, personellen Grenzen Tools zur Testunterstützung Anna Schröder
Formale Methoden 31 ABER Schulungen und gewisse Einarbeitung notwendig Anpassung der Tests nach strukturellen Änderungen an GUI- Komponenten für Erstellung eines QF-Tests Fachwissen über SUT benötigt manuelle Auswertung der Testreporte Tools zur Testunterstützung Anna Schröder
Formale Methoden Tools zur Testunterstützung André Borries 1. Einleitung 2. Typen von Werkzeugen 3. Auswahl und Einführung von Werkzeugen 4. Praxisbeispiel 5. Fazit
Formale Methoden Tools zur Testunterstützung Sollten wir Testwerkzeuge einsetzen? André Borries Ja, denn der Aufwand kann mit ihnen erheblich reduziert werden. o Automatisierung (spart Zeit, Personal, Kosten, …) o Wiederholung bei Regessionstests o Gleichzeitigkeit bei Last- und Performanztests Ja, denn ohne sie ist es schwer den Überblick zu behalten. o Testmanagement ABER, Testwerkzeuge können den Menschen nicht ersetzen! o Kreativität, Intuition, Bewertung der Sinnhaftigkeit
Formale Methoden Tools zur Testunterstützung Welches Werkzeug, wie einführen? André Borries Auswahl ist nur sinnvoll, wenn der Einsatzzweck bekannt ist o ein Testwerkzeug löst keine Probleme von allein o der Testprozess muss bereits funktionieren Aufwand realistisch abschätzen o Materialkosten (Hardware, Software) o Personalkosten (Schulungen, Einarbeitungszeiten) o Änderung gewohnter Abläufe Pilotprojekte haben sich bewährt o Multiplikatoren, Akzeptanz, Customizing
Formale Methoden Vielen Dank für die Aufmerksamkeit ! Tools zur Testunterstützung 35
Formale Methoden Backup Tools zur Testunterstützung 36
Formale Methoden Tools zur Testunterstützung Testmanagement der Tosca Testsuite André Borries Quelle: in Anlehnung an (TRICENTIS Technology & Consulting GmbH, 2012)
Formale Methoden Tools zur Testunterstützung Testdatengenerierung mit Q-UP André Borries Quelle: (GFB Softwareentwicklungsgesellschaft mbH, 2012), S. 6
Formale Methoden Tools zur Testunterstützung Visual Lint für Visual Studio 2008 André Borries Quelle: (Riverblade Ltd, 2012)
Formale Methoden Tools zur Testunterstützung Regression André Borries Quelle: in Anlehnung an (Bauhaus-Universität Weimar, 2012)
Formale Methoden Tools zur Testunterstützung Mercury Loadrunner Controller André Borries Quelle: in Anlehnung an (Automation Consultants Ltd, 2012)