Arbeiten mit Testframeworks Alex Ivchyn Fakultät für Elektrotechnik und Informatik FG Software Engineering Seminar: Testing Today - Moderne Techniken und Tools 16.07.2015
GLIEDERUNG Erklärung der Definition Arten und Klassifikationen von Testframeworks Vorgehen bei der Arbeit mit Testframework Studie Ziele der Studie Durchführung Ergebnisse Fazit Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 2 / 26
Erklärung der Definition Testframework Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 3 / 26
Erklärung der Definition Framework - Ein Framework (englisch für Rahmenstruktur) ist ein Programmiergerüst, das in der Softwaretechnik, insbesondere im Rahmen der objektorientierten Softwareentwicklung sowie bei komponentenbasierten Entwicklungsansätzen, verwendet wird. Im allgemeineren Sinne und nicht als dezidiertes Softwareprodukt verstanden, bezeichnet man mit Framework auch einen Ordnungsrahmen. https://de.wikipedia.org/wiki/framework (24.06.2015) Ordnungsrahmen - Ein Ordnungsrahmen strukturiert ein System, indem es seine einzelnen Elemente umfasst und anhand ihrer Beziehungen untereinander anordnet. In der angloamerikanischen Literatur wird synonym der Begriff business model oder der allgemeinere Begriff framework verwendet. https://de.wikipedia.org/wiki/ordnungsrahmen#cite_note-pons_gro.c3.9fw.c3.b6rterbuch-1 (24.06.2015) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 4 / 26
Erklärung der Definition Application Framework (Ordnungsrahmen) Domain Class Webframeworks Coordination- Komponenten- Testframework Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 5 / 26
Erklärung der Definition Testframework - dienen zur Ausführung von (automatisierten) Softwaretests, besonders im Rahmen der testgetriebenen Entwicklung. https://de.wikipedia.org/wiki/framework (24.06.2015) Testframework - Ein Testframework ist ein Zusammenschluss von verschiedenen Konzepten und Tools zum automatisierten Testen. Es stellt mehrere Funktionen zur Verfügung, welche dem Benutzer dass automatisierte Testen ermöglichen sollen. Dabei sieht jedes Framework anders aus. Einige werden als allein stehendes Programm benutzt, andere hingegen werden als eigene Applikation in den Server eingebunden. Das Framework legt fest, welche Formate die Tests, sowie die Ergebnis-Dateien haben. https://www.matse.itc.rwth-aachen.de/dienste/public/show_document.php?id=7173 (24.06.2015) Test automation Framework - http://www.ibm.com/developerworks/rational/library/591.html (24.06.2015) A test automation framework is a set of assumptions, concepts, and practices that provide support for automated software testing. Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 6 / 26
Erklärung der Definition Test Framework VS Test Automation Framework Synonym für Synonym für Test Werkzeug Test Tool opensourcetesting.org Beispiele: JUnit, TestNG, Selenium... Ein Satz oder Zusammenschluss von Regeln, Voraussetzungen, Konzepten, Werkzeugen, und anderen Komponenten großteils kommerzielle Lösungen - keine explizite Trennung! Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 7 / 26
Erklärung der Definition Beispiel für Test Automation Framework http://www.zenqconnect.com/services/testautomation.aspx (24.06.2015) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 8 / 26
Erklärung der Definition Application Framework (Ordnungsrahmen) Domain Class Webframeworks Coordination- Komponenten- Testframework Test Automation Framework Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 9 / 26
Erklärung der Definition Test-Harnisch - In der Qualitätssicherung von Software bezeichnet ein Test-Harnisch (engl. test harness) bzw. Testrahmen eine Sammlung von Software und Testdaten, die zum systematischen automatisierten Testen eines Programms unter verschiedenen Umgebungsbedingungen verwendet wird. Dabei werden sowohl das Verhalten als auch die Ausgabe der Software überwacht und ausgewertet. https://de.wikipedia.org/wiki/test-harnisch (24.06.2015) Testroboter - Testroboter werden in der Softwarequalitätssicherung auch als Capture & Replaybzw. Capture & Playback Tools bezeichnet, die zur Testautomatisierung beitragen. Dabei zeichnet das Werkzeug alle vom Tester manuell durchgeführten Bedienschritte, wie zum Beispiel Tastatureingaben oder Mausklicks, während einer Testsitzung auf. Diese Bedienschritte werden vom Werkzeug in einem Testscript gespeichert. Danach kann der aufgezeichnete Testfall vom Tester automatisch wiederholt abgespielt werden. https://de.wikipedia.org/wiki/testroboter (24.06.2015) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 10 / 26
Erklärung der Definition Application Framework (Ordnungsrahmen) Domain Class Webframeworks Coordination- Komponenten- Testframework Test-Harnisch Test Automation Framework Testroboter Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 11 / 26
Arten von Testframeworks Test Automation Framework Module Based Testing Framework Hybrid Test Framework Library Architecture Testing Framework Keyword-Driven / Table-Driven Testing Framework Data-Driven Testing Framework Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 12 / 26
Arten von Klassifikationen Interaktion mit SUT Zugriff über die Anwendungslogik FAT FIT FitNesse GUI-basierter Zugriff HP QuickTest Professional IBM Rational Robot Web-basierter Zugriff Selenium Testart Komponententest Junit TestNG Integrationstest Cactus Citrus Framework Fit JUnit Systemtest Cactus Solex Canoo Akzeptanztest Robot Framework HttpUnit http://www.oio.de/j2ee-testtools.htm (24.06.2015) Fortströer, Volker : Automatisierung von User Acceptance Tests in agilen Projekten mit FIT. http://is.uni-paderborn.de/fileadmin/informatik/ag-engels/lehre/ws0809/se/sonstiges/seminar/version1.0/seminar.naq.volker.fortstr%c3%b6er.v1.0.pdf (24.06.2015) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 13 / 26
Arten von Klassifikationen Testszenarien Lokaler Test Remote Test Verteilter Test wird direkt auf dem Testsystem ausgeführt die Systemparameter werden dort ermittelt und verglichen weitere Systeme im Netzwerk eventuell nötig(nicht vom Testframework kontrolliert oder beeinflusst) Vorteile: lokaler Test wird von einem zentralen System aus gesteuert das System kann auf einem oder mehreren entfernten Systemen die Tests ausfuhren die Ergebnisse zentral auf dem System Vorteile: einen Test auf unterschiedlichen Systemen gleichzeitig Ein Test, der über mindestens zwei Systeme verteilt ist auf beliebigen System installiert und ausgeführt werden können Konfigurationsaufwand minimal Die Ergebnisse können auf dem Testsystem selbst ausgewertet werden Verteilung von unterschiedlichen Tests auf viele Systeme. zentrale Datei mit Ergebnissen Nachteil : Konfigurationsaufwand höher als bei lokalen Tests http://webuser.hs-furtwangen.de/~reich/diplomarbeiten/dathilouttendorfer.pdf (24.06.2015) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 14 / 26
Vorgehen bei der Arbeit mit Testframeworks Grobe Vorgehensweise anhand von Junit Testphasen: Testplanung Testerstellung Testdurchführung Testauswertung Junit Test Framework (Werkzeug) Annotiere Methoden, die Tests durchführen, mit @Test 2 Formuliere innerhalb dieser Testmethoden die Bedingung für erfolgreiches Testergebnis. Die JUnit-Engine findet per Reflections die annotierten Testmethoden, führt sie aus und zeigt an, ob sie erfolgreich waren oder nicht Beispiel: @Test public void testsum() { double a = 5.6, b = 6.5; assertequals(12.1, calculator.sum(a, b), 0.1); } Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 15 / 26
Vorgehen bei der Arbeit mit Testframeworks Test automation Framework wer testet? (Framework Zweck / Nutzungskonzept ) Test Framework Entwicklung / Umsetzung Umgebungskonfiguration / Setup Framework Pflege Framework Fortentwicklung Eventuell Framework Support Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 16 / 26
Studie - Beschreibung Thema: Hindernisse für automatisiertes Testen - eine empirische Analyse eines User Support Diskussionsforum Fokus Untersuchung von Hindernissen von erfahrenen Benutzern von Testautomatisierung-Framework Forschungsfragen: RQ1: Welche Arten von werkzeugbezogenen Hindernissen treten auf, bei den Benutzern von Testautomatisierung Framework? RQ2: Welche Arten von Hilfe werden von den Benutzern von Testautomatisierung Framework angefordert? Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 17 / 26
Studie - Durchführung Analyseeinheit Testautomatisierung Framework auf der Basis von TestNG mit zusätzlich In-House entwickelten Komponenten Verwaltung von Testdurchführung Speichern von Testergebnissen in DB Verwaltung von Logdateien Kommunikation mit der SUT Kontrolle über Lab-Equipment (Monitoring) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 18 / 26
Studie - Durchführung Diskussionsforum - Ticket System für die First Line Support Analysedaten Nachrichten aus dem Forum Zeitraum: 25.02.2010 04.01.2013 8796 Beiträge 1656 Themen 189 Benutzer Verteilung ungleichmäßig : top 3 Benutzer 48,6% aller Beiträge Klassifizierung - unter Verwendung der thematischer Analyse Ausgangscode für die Analyse: Thread Typen untersucht durch diese Studie: Problemberichte - Die Ausführung scheitert aus irgendeinem unerwartetem Grund weitere: Hilfeanfragen - eine proaktive Suche nach Wissen Feature Requests Development Info Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 19 / 26
Studie - Durchführung Arten von Problemberichten unbekannte Ursachen IT-Umgebung Benutzerverhalten Zugriffsrechte Netzwerk Konfiguration Ressourcenknappheit Ausfall falsche Forum Problemberichte SUT Test-Script Fehler Benutzerkonfiguration Zugriffsrechte Lab Equipment Werkzeug-Einsatz Framework Aufruf Test Framework Implementierungsfehler Dokumentationsfehler globale Konfiguration Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 20 / 26
Studie - Durchführung Arten von Hilfeanfragen Vorgehen Umdrehung der Definition des Themas in ein Problembericht zusätzlich definierte Themen: API Fragen Code Example Testscript Design Unix Nutzung Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 21 / 26
Studie : Ergebnisse Verteilung von Themen im Forum: 712 (43%) Problemberichte 315 (19%) Hilfeanfragen 530 (32%) Entwicklerinformationen 99 (6%) Feature Anfragen Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 22 / 26
Studie : Ergebnisse Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 23 / 26
Studie : Ergebnisse Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 24 / 26
Zusammenfassung und Fazit Zweck dem Tester zu ermöglichen, seine Testfähigkeiten in effizienter Art und Weise auf die vorliegende Aufgaben anzuwenden Gründe für ein Testframework: Reproduzierbarkeit, Geschwindigkeit, Ressourcen, Zeiteffizienz, Minimierung von Routineaufgaben, Minimierung von Risiken durch menschliche Fehler Gründe gegen ein Testframework: Komplexität und Größe, manchmal viel größer als getestete Software Probleme beim Ansatz von Test Automation : Konfiguration von Testumgebung, Entwicklung von Testskripten Lösung: Umgebungstest Einführung, automatisierte Umgebungskonfiguration (selbstprüfend) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 25 / 26
Diskussion Vielen Dank für Ihre Aufmerksamkeit! Fragen? Kritiken? Meinungen? Quellen: Wiklund, K. / Sundmark, D. / Eldh, S. / Lundvist, K.: Impediments for Automated Testing -- An Empirical Analysis of a User Support Discussion Board http://www.ibm.com/developerworks/rational/library/591.html (24.06.2015) http://www11.informatik.uni-erlangen.de/lehre/ws1314/pr-swe/folien/foliena9.pdf (24.06.2015) Alex Ivchyn - Arbeiten mit Testframeworks Seminar: Testing Today 16.07.2015 26 / 26