1 / 28

Dynamischer Test

Dynamischer Test. Whitebox Testen mit JUnit. Übersicht. Grundlagen des Unittests Units Unit Testing Testverfahren Blackbox Whitebox Unit Testing mit Eclipse Besprechung der Übungsaufgabe. Unit Testing. Modultest, Komponententest. Unit. Funktionales Einzelteil Methode Klasse

Download Presentation

Dynamischer Test

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. Unit • 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 • 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. Auch ein Mock-up Qualität von Software - Prof. Schlingloff, Lackner - SS2013 http://pl.wikipedia.org/wiki/Atrapa

  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) Qualität von Software - Prof. Schlingloff, Lackner - SS2013

  8. Testverfahren Black- & Whitebox 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 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

  10. Whitebox • Testen mit Kenntnis über den Code • Typische Whitebox Techniken sind • Unit TestingDynamische Technik (mit Code-Ausführung) • Inspektion • Verifikation • Whitebox Unit Testing ist häufig kontrollflussorientiert: • Anweisungsüberdeckung • Zweigüberdeckung • Bedingungsüberdeckung • Pfadüberdeckung Statische Techniken (keine Code-Ausführung) Qualität von Software - Prof. Schlingloff, Lackner - SS2013 http://kashif-whiteboxtesting.blogspot.de/2010_07_01_archive.html

  11. Exkurs: Kontrollflussgraphen • 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: 3-89864-358-1 Qualität von Software - Prof. Schlingloff, Lackner - SS2013

  12. Kontrollflussorientierte Abdeckungskriterien • 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

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

  14. 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 mit „@Test“ annotierte Methoden • Eine Junit-Testsuitedatei bündelt mehrere JUnit-Testfalldateien Beispiel für eineJUnit-Testdatei Qualität von Software - Prof. Schlingloff, Lackner - SS2013

  15. Basisfunktionen • 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

  16. JUnitAnnotiationen • @Test: Die tatsächlichen Testmethoden. • @Before und @After: Methoden, die vor und nach jedem Test ausgeführt werden. • @BeforeClass und @AfterClass: Methoden, die vor und nach allen Tests ausgeführt werden. • @Ignore: Methoden, die noch nicht bestehende Funktionalität testen, können temporär ignoriert werden. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

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

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

  19. Eclipse Integration • JUnit 4 ist in der aktuellen Eclipse Distribution für Java Developer enthalten • Alternativ von http://www.junit.org das aktuelle Archiv herunterladen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

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

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

  22. EclEmma • Codecoverage Analyse • Basierend auf Emma • Bereitgestellt als EclipsePlugin Installation • Eclipse Help  Install New Software: Dialog • Eclipse Update Site: http://update.eclemma.org/ •  Add  Paket „EclEmma“ auswählen  Finish  Next, Next, Next… Qualität von Software - Prof. Schlingloff, Lackner - SS2013

  23. Messen der Code-Abdeckung • JUnit-Datei auswählen • EclEmmaLauncher wählen • Coverage As  JUnit Test wählen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

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

  25. Überdeckungskritierien in EclEmma • Instructions (C0): Java Byte Code Anweisungen • KleinsteEinheit • Unabhängigvon der Code-Formatierung • Branches (C1): ifund switchKontrollstrukturen • Exception-Handling ist kein Verzweigen • Außerdem: Zyklomatische Komplexität, Lines, Methoden, Klassen Qualität von Software - Prof. Schlingloff, Lackner - SS2013

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

  27. 1. Testfallentwurf • Erstellen Sie für die gegebenen Klassen den Kontrollflussgraphen und beschriften Sie die Kanten. • Wie viele Testfälle sind nötig um: • 100% Anweisungsüberdeckung zu erreichen. • 100% Zweigüberdeckung zu erreichen. • Geben Sie die Testpfade an. • 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

  28. 2. Testfallanalyse • Laden Sie das auf der Webseite zur Verfügung gestellte Java-Projekt herunter und öffnen Sie dieses in Eclipse • 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 • Erstellen Sie zusätzliche Testfälle, sodass Sie die maximal mögliche Zweigüberdeckung erreichen. Qualität von Software - Prof. Schlingloff, Lackner - SS2013

More Related