ERSTELLUNG EINES KONZEPTS ZUM TESTEN DER PERFORMANCE VON JAVA CODE MIT HILFE DER FRAMEWORKS JUNIT UND TESTNG

Ähnliche Dokumente
Projektmanagement und Softwareentwicklung. Nina Stodolka, WS2017/2018

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Wann lohnt sich GUI- Testautomatisierung?

Wann lohnt sich GUI- Testautomatisierung?

IT-Projekt-Management

JUnit. Software-Tests

Testen von SOA-Anwendungen mit dem BPEL Testframework

Dienstag, 24. September 13. Willkommen

Mitarbeiter-Profil Schmitz, Dominik Senior Test Engineer

Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung

Testgetriebene Entwicklung mit JUnit4

Teilnovellierung der industriellen Metall- und Elektroberufe und des Mechatronikers. Die Änderungsverordnungen werden zum in Kraft treten.

Die Modernisierung der industriellen Metall- und Elektroberufe 2018

ALM Test Management Cockpit. Tobias Fickinger, SAP Consulting April 2016

Die Modernisierung der industriellen Metall- und Elektroberufe 2018

Vom Testkonzept zu JUnit

Funktionales Testen. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Evaluation der Leistungsfähigkeit ausgewählter Mutationstestwerkzeuge

Last- und Performancetest mit freien Werkzeugen. Stefan Siegl,

Performance Analyse in einem komplexen Softwaresystem Gebhard Ebeling

Ein- und Ansichten DOAG Regionaltreffen Bremen Oktober 2010

Christoph Behounek, eggs unimedia

Testgetriebene Entwicklung

Abschlussbericht. Erstellung eines automatisierten Build-Prozesses für Eclipse-RCP- Anwendungen am Fallbeispiel Control System Studio.

Software Engineering in der Praxis

1. Introduction Purpose Scope Evaluation Mission and Test Motivation Background Evaluation Mission 3

Testen mit Fit und Fitnesse. Ludger Solbach

Agile Software Verteilung

20. Deutsche Anwenderkonferenz 2007 Software Entwicklung 2.0

Testmanagement. Full-Service

Definitionen/Vorarbeit zum Thema Java

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

Spock und Geb: Übersichtliche und nachvollziehbare Tests! Ralf D. Müller, Freelancer Tobias Kraft, exensio GmbH

Anforderungen gezielter umsetzen, Optimieren, Transparenz schaffen

Komponentenbasierter

Saros: Verbesserung des algorithmischen Kerns gleichzeitiges Editieren. von Norman Warnatsch Diplomarbeit

Datenstrukturen & Algorithmen

DATENQUALITÄT IM DWH IST AUTOMATISCH AUCH GLEICH BESSER?

AGEDIS Methode und Werkzeuge. 1. Was ist AGEDIS 2. Die AGEDIS Methode 3. Architektur / Werkzeuge 4. Fazit

Interaktion. Projekt begleitend. (Konzeption) Konzeption. KP Ludwig John

Mitarbeiter-Profil Dander, Jörg Testmanager

Entwicklung fortschrittlicher Lösungen für Microsoft SharePoint Server 2013 (nach MOC 20489)

Testmanagement. Q-Day. Frank Böhr Fraunhofer IESE

Auf einen Blick. TEIL 1 Quelltext bearbeiten 17 TEIL 2 Quelltext automatisch erzeugen 73 Mit Zusatzinformationen zu. Entwicklungsobjekten arbeiten 97

Testen und Debugging

Erhöhe den Nutzen deines Dienstes

Property Based Testing

Zürich User Summit - Inflectra

Synergien aus Testautomatisierung und Lasttest. Vortrag im Rahmen des German Testing Day 2018

JUnit 4 Tutorial. Wolfgang Stöttinger

Software Engineering: Testen. (in der Softwareentwicklung) Eine Übersicht Für Softwareentwickler und Softwaretester Stand: 03/2018

Enterprise PHP Tools

Vertrauen ist gut, Kontrolle ist besser! APEX Applikationen automatisiert testen 2018 DATAGROUP

Microsoft Azure Deutschland ist jetzt verfügbar -

Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012

Comparing Software Factories and Software Product Lines

Warum? Wie? Algorithm Tests Diverses. Unit Tests. Datamining und Sequenzanalyse. Kai Dührkop, Markus Fleischauer

UnitTest mit dem SQL-Developer Testgetriebene Entwicklung mit Oracle Werkzeugen

Testen von Android- Anwendungen. 6. Juni 2013


ER-Modelle zur klaren Begrifflichkeit bei der Testentwicklung

5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Testen von sicherheitskritischer Embedded Software mit frei verfügbaren Tools. - ein Erfahrungsbericht

TFS 2013 Upgrade. Thomas Trotzki - artiso AG

Integration von Model-Driven Development und formaler Verfikation in den Softwareentwicklungsprozess

Das agile Requirements Board Ein Tool zur Unterstützung des agilen Requirements-Engineerings

Unterstützung für die Durchführung epidemiologischer Studien - Modys - eine Datenbankapplikation. Achim Reineke, Sönke Knut Voß, Heidi Asendorf

Prototyping der Schnittstellenstandards

Feature Technische Mitarbeiter TMA How To 1.0. Feature - Technische Mitarbeiter. TMA How To 1.0. Copyright Awato Software GmbH Seite 1 von 8

IT-Projektmanagement

Nuvias Security Roadshow Kaspersky Security Awareness - denn IT-Sicherheit beginnt im Kopf

Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt

HP Service Virtualization. Bernd Schindelasch 19. Juni 2013

Eine App, viele Plattformen

Mitarbeiter-Profil Dander, Jörg Testmanager

Oracle E-Business Suite Konfigurationsmanagement leicht gemacht mit dem Application Change Management Pack

OOSE_02E Testen mit BlueJ/JUnit 4

Projekt Message-Logger

Komponentenbasierter Taschenrechner mit CORBA

Business Analysis Body of Knowledge BABOK v3. Konzepte Scope Struktur. Ursula Meseberg microtool GmbH Berlin

Flexibles E-Assessment auf Basis einer Service-orientierten Architektur

Requirements-basiertes Testen am Beispiel des NI Requirements Gateways

Approximation der Flugbahnen von Metallteilen nach Abscheidung durch einen Wirbelstromscheider anhand von Videomaterial

Interviews & Fragebögen. Johannes & Timothy

Bereitschaftsdienst. Lastenheft Version 2.0. Mathias Kappelhoff Tim Köhne

Benchmarking von Bilddatenstrukturen

Vorteile einer Tool gestützten Modernisierung von Forms und Reports

Testen von grafischen Benutzeroberflächen

Software ohne Fehler?

Profitieren Sie von einer offenen und flexiblen Clouddienstplattform

Online Assistent für CANoe oder CANalyzer Abstürze

Algorithmische Geometrie Thema: Konvexe Hüllen

VDBS II. Übung 3b Qualitätssicherung von Web Service Angeboten Prof. Dr. Andreas Schmietendorf 1

Why Organisations should rely on Mobile AppTesting

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

SL PROVISOR Automation in der Qualitätssicherung sinnvoll erhöhen

OOSE4 Testen mit BlueJ/JUnit 4

IBM Software. Rational Quality Manager Testing Discipline. Rational Team Concert Development Discipline

Transkript:

ERSTELLUNG EINES KONZEPTS ZUM TESTEN DER PERFORMANCE VON JAVA CODE MIT HILFE DER FRAMEWORKS JUNIT UND TESTNG VORTRAG ZUR SEMINARARBEIT JOHANNES WALLFAHRER 20. JANUAR 2016

Inhalt 1. Einleitung 2. Was ist Performance? 3. Definition Performance-Tests 4. Erstellung von Performance-Tests 5. Konzept: Ablaufplan Performance-Testing 6. Problembehandlung 7. Fazit 8. Ausblick

1. Einleitung Programm zur Datenverarbeitung Datendurchsatz 2013: 10.000 Datensätze in 700 Millisekunden Datendurchsatz heute: 10.000 Datensätze in 1360 Millisekunden Benutzer empfinden deutliche Verlangsamung erschwert die Arbeit mit der Software

1. Einleitung Aufgabe: Programm muss wieder performanter werden Problem: Kein Entwickler weiß, welches Feature die Laufzeit stark erhöht hat Problemvermeidung in der Zukunft: Performance-Test

2. Was ist Performance? Allgemein: Übersetzt: Leistung / -fähigkeit IT: Leistung einen Computers / Systems Wissenschaft: Programm ist performant, wenn Rechenzeit Speicherbedarf Ggf. Datentransfer möglichst gering sind

2. Was ist Performance? Im Blickpunkt: verwendete Algorithmen können mathematisch analysiert werden Drei mögliche Fälle bei der Analyse: 1. Obere Schranke (worst case) 2. Untere Schranke (best case) 3. Mittlerer Fall (average case)

2. Was ist Performance? Ist Performance wichtig? Rechenoperationen werden jedes Jahr ca. 53% günstiger Wirtschaft: Laufzeit (= Geld) kann eingespart werden Eigene Erfahrung: Nur wenn jemand auf das Ergebnis wartet, ist Performance relevant Frage kann nur anwendungsbezogen beantwortet werden

3. Definition Performance-Tests IEEE-Standard: Testing conducted to evaluate the compliance of a system or component with specified performance requirements. Testen, ob das Programm den Leistungs- anforderungen gerecht wird Funktionalität wird damit nicht getestet

3. Definition Performance-Tests Bestandteile von Performance-Tests: 1. Zeitnahme zu Beginn des Tests 2. Durchführung zu Testender Funktionsaufruf(e) mit Testdaten 3. Zeitnahme zum Abschluss der Funktionsaufrufe 4. Bilden der Differenz von Start- und Endzeit 5. Überprüfung, ob die Differenz im Erwartungsbereich liegt Umsetzung in Form eines Unit-Tests

4. Erstellung von Performance-Tests Verwendung von Frameworks: Junit & TestNG Frei verfügbar Unit-Tests Erstellung von Testklassen Primär: Zustand von Variablen prüfen

4. Erstellung von Performance-Tests Aufbau: @Test Timeout AssertEquals

4. Erstellung von Performance-Tests Laufzeiten vom Beispiel: Funktion: Laufzeit: min. max. Mittel Objektinitialisierung 781 ms 801 ms 788 ms dosomething 1127 ms 1160 ms 1136 ms Objektinitialisierung & dosomething 1903 ms 1947 ms 1929 ms

4. Erstellung von Performance-Tests Bedingungen für Beispiel: Testszenario: Objektinitialisierung dosomething Objektinitialisierung & dosomething Erlaubte Laufzeit: 805 ms 1165 ms 1950 ms

5. Konzept: Ablaufplan Performance- Testing Fünf Phasen Inspiriert durch Christof Schmalenbachs Testplan für Performance- und Lasttests aus dem Buch Performancemanagement für serviceorientierte Java- Anwendungen Auf Problem aus der Einleitung hin optimiert

5. Konzept: Ablaufplan Performance-Testing 5.1. Testplanung Programm-code und Profiling-Ergebnisse liegen vor Anforderungen vom Stakeholder einholen und auf Machbarkeit prüfen Validierte Anforderungen dokumentieren Nötiger Zeit- und Personalaufwand feststellen

5. Konzept: Ablaufplan Performance-Testing 5.2 Testvorbereitung Aufsetzen Testplattform Testzeitpunkt bestimmen Erstellen verschiedener Konfigurationen erwägen Performance-Tests schreiben Testvorbereitung dokumentieren

5. Konzept: Ablaufplan Performance-Testing 5.3 Testdurchführung Test auf den vorbereiteten Systemen durchführen Möglichst viele Ergebnisse erfassen und festhalten

5. Konzept: Ablaufplan Performance-Testing 5.4 Erstellung Testbericht Gesammelte Daten analysieren und auswerten Testerfolge und fehlschläge betrachen Handlungsempfehlung formulieren Bericht dem Stakeholder vorlegen

5. Konzept: Ablaufplan Performance-Testing 5.5 Zirkuläre Testdurchführung Dauerhafte Phase Tests werden in regelmäßigen Abständen auf neuster Programmversion durchgeführt Beispiel: Bamboo von Atlassian Automatisches Erstellen von Reporten erwägen

6. Problembehandlung Mögliche Fragen und Probleme 1. Es schlagen alle Tests einer Konfiguration wegen zu hoher Laufzeit fehl 2. Bei der Auswertung hat sich herausgestellt, dass einzelne Tests immer fehlschlagen. Sollte hier der Programmcode verbessert, oder muss hier der Erwartungsbereich nochmal angepasst, werden?

6. Problembehandlung Mögliche Fragen und Probleme Mehrere Konfigurationen führen zu einem positivem Endergebnis, welche sollte genommen werden? Nach dem Einfügen von neuem Code schlagen einige Tests fehl

7. Fazit Einfache Laufzeitüberwachung Fehlschlagende Tests warnen früh Entwickler Überschaubarer Aufwand JUnit und TestNG sind bei Performance- Tests sehr ähnlich Problem aus der Einleitung wäre durch Verwendung von Performance-Tests nicht entstanden

8. Ausblick Testplan anwenden Tests auf gesamte Java-Programme erweitern Einführung bei den Web-Apps Datentransfer beobachten Guide zur Problembehandlung pflegen

Fragen? Vielen Dank für Ihre Aufmerksamkeit