Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DYNAMISCHER TEST Whitebox Testen mit JUnit 1 Qualität von Software - Prof. Schlingloff, Lackner - SS2013.

Ähnliche Präsentationen


Präsentation zum Thema: "DYNAMISCHER TEST Whitebox Testen mit JUnit 1 Qualität von Software - Prof. Schlingloff, Lackner - SS2013."—  Präsentation transkript:

1 DYNAMISCHER TEST Whitebox Testen mit JUnit 1 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

2 Übersicht 1. Grundlagen des Unittests 1. Units 2. Unit Testing 2. Testverfahren 1. Blackbox 2. Whitebox 3. Unit Testing mit Eclipse 4. Besprechung der Übungsaufgabe 2 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

3 Modultest, Komponententest Unit Testing 3 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

4 Unit 4 Funktionales Einzelteil Methode Klasse Modul Komponente Strukturmittel der Software-Architektur Steigert die Wiederverwendbarkeit Module sind unabhängig voneinander bearbeitbar Qualität von Software - Prof. Schlingloff, Lackner - SS2013

5 Unit Testing 5 Unit kleinste testbare Einheit einer Anwendung Units werden isoliert getestet Notwendige umgebende Komponenten der Unit: Ersetzung durch Stubs oder Mock-Ups (keine Prototypen!) Testharness/framework Qualität von Software - Prof. Schlingloff, Lackner - SS2013

6 6 Auch ein Mock-up Qualität von Software - Prof. Schlingloff, Lackner - SS2013

7 Anwendung des Unit Testings In frühen Entwicklungsphasen Agile (z.B. Scrum) und testgetriebene Methoden (Extreme Programming) machen intensiven Gebrauch von Unit Testing Nach Code-Änderungen Automatisierte Regressionstests Viele Frameworks verfügbar (XUnit) 7 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

8 Black- & Whitebox Testverfahren 8 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

9 Blackbox Test Spezifikationsbasierter Blackbox-Test Eine Spezifikation beschreibt das erwartete Verhalten Interna des Testlings sind nicht einsehbar Tests überprüfen die Einhaltung der Spezifikation Exploratives Testen Spezifikation ist unbekannt Tester lernen das System kennen und wenden Erfahrungswerte an Wiederverwendung für Regressionstests 9 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

10 Blackbox Techniken 10 Äquivalenzklassenbildung Grenzwertanalyse Zustandsbezogener Test Entscheidungstabellen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

11 Äquivalenzklassenbildung 11 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

12 Grenzwertanalyse 12 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

13 Whitebox Testen mit Kenntnis über den Code Typische Whitebox Techniken sind Unit Testing Dynamische Technik (mit Code-Ausführung) Inspektion Verifikation Whitebox Unit Testing ist häufig kontrollflussorientiert: Anweisungsüberdeckung Zweigüberdeckung Bedingungsüberdeckung Pfadüberdeckung 13 Statische Techniken (keine Code-Ausführung) Qualität von Software - Prof. Schlingloff, Lackner - SS2013

14 Exkurs: Kontrollflussgraphen 14 Jede Anweisung wird durch einen Knoten repräsentiert Knoten werden der Ausführungsreihenfolge nach mit gerichteten Kanten verbunden Jeder Knoten ist vom Wurzelknoten aus erreichbar Kontrollflussstrukturen führen zu Verzweigungen Basiswissen Softwaretests Andreas Spillner, Tilo Linz (2005), 3. Auflage, dpunkt.verlag, ISBN: Qualität von Software - Prof. Schlingloff, Lackner - SS2013

15 Kontrollflussorientierte Abdeckungskriterien 15 Anweisungsüberdeckung = Knotenüberdeckung Zweigüberdeckung = Kantenüberdeckung Weitere kontrollflussorientierte Abdeckungskriterien Bedingungsüberdeckung = Variablenbelegung für logische Ausdrücke Pfadüberdeckung = Betrachtung der Ausführungspfade Qualität von Software - Prof. Schlingloff, Lackner - SS2013

16 Unit Testing mit Eclipse 16 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

17 JUnit (Beck&Gamma) JUnit wird als Bibliothek bereitgestellt und muss als solche auf dem Build-Path verfügbar sein. Eine JUnit-Testfalldatei ist eine Java-Klasse Testfälle sind annotierte Methoden Eine Junit-Testsuitedatei bündelt mehrere JUnit- Testfalldateien 17 Beispiel für eine JUnit-Testdatei Qualität von Software - Prof. Schlingloff, Lackner - SS2013

18 Basisfunktionen 18 Assertmethoden: Leichte Überprüfung von Bedingungen (assertTrue, assertEquals,…). Erwartete Exceptions: In der Test-Annotation ist es möglich eine Exception anzugeben, die der Test werfen sollte. Helfermethoden: Es ist auch möglich, beliebig viele normale Methoden in der Klasse zu benutzen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

19 JUnit Annotiationen Die tatsächlichen Methoden, die vor und nach jedem Test ausgeführt Methoden, die vor und nach allen Tests ausgeführt Methoden, die noch nicht bestehende Funktionalität testen, können temporär ignoriert werden. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

20 Beispiel in Eclipse 20 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

21 Werzeugunintegration 21 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

22 Eclipse Integration 22 JUnit 4 ist in der aktuellen Eclipse Distribution für Java Developer enthalten Alternativ von das aktuelle Archiv herunterladen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

23 Testsuite in Eclipse ausführen 23 Rechtsklick auf die Testfalldatei Run as JUnit Test wählen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

24 Auswertung der Tests mit JUnit 24 Nach der Testausführung öffnet sich automatische der Reiter JUnit Qualität von Software - Prof. Schlingloff, Lackner - SS2013

25 EclEmma Codecoverage Analyse Basierend auf Emma Bereitgestellt als Eclipse Plugin Installation Eclipse Help Install New Software: Dialog Eclipse Update Site: Add Paket EclEmma auswählen Finish Next, Next, Next… 25 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

26 Messen der Code-Abdeckung JUnit-Datei auswählen EclEmma Launcher wählen Coverage As JUnit Test wählen 26 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

27 Coverage-Auswertung der Testfälle 27 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

28 Überdeckungskritierien in EclEmma Instructions (C0): Java Byte Code Anweisungen Kleinste Einheit Unabhängig von der Code-Formatierung Branches (C1): if und switch Kontrollstrukturen Exception-Handling ist kein Verzweigen Außerdem: Zyklomatische Komplexität, Lines, Methoden, Klassen 28 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

29 Auswertung einer Source-Datei Properties Dialog einer Source öffnen Coverage auswählen 29 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

30 Testanalyse und Testfallentwurf Übungsaufgaben 30 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

31 1. Testfallentwurf 31 a) Erstellen Sie für die gegebenen Klassen den Kontrollflussgraphen und beschriften Sie die Kanten. b) Wie viele Testfälle sind nötig um: i. 100% Anweisungsüberdeckung zu erreichen. ii. 100% Zweigüberdeckung zu erreichen. iii. Geben Sie die Testpfade an. c) Erstellen Sie jeweils eine JUnit-Testsuite, welche die maximal mögliche Anweisungsüberdeckung für die gegebenen Klassen erreicht. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

32 2. Testfallanalyse 32 Laden Sie das auf der Webseite zur Verfügung gestellte Java-Projekt herunter und öffnen Sie dieses in Eclipse a) Messen Sie die Code-Überdeckung mit EclEmma für die zur Verfügung gestellte Testsuite. Dokumentieren Sie das Ergebnis der Analyse für die TicTacToeModel.java bei Instruktions- und Zweigüberdeckung b) Erstellen Sie zusätzliche Testfälle, sodass Sie die maximal mögliche Zweigüberdeckung erreichen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013


Herunterladen ppt "DYNAMISCHER TEST Whitebox Testen mit JUnit 1 Qualität von Software - Prof. Schlingloff, Lackner - SS2013."

Ähnliche Präsentationen


Google-Anzeigen