Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Jan Düttmann Archimedon Software + Consulting GmbH & Co. KG Marienstraße 66 32427 Minden Stephan Kleuker Hochschule Osnabrück Fakultät IuI Postfach 1940 49009 Osnabrück Inhalt • Einführung: Begriffsfeld • Zentrale Fallstudie: Testautomatisierung für admileo (Ein- und Weiterführung) • (exemplarische) Analyse von Erfolgskriterien der Testautomatisierung abgeleitet aus Fallstudien SWM 2015 Düttmann / Kleuker 2 QS-Landkarte Testhierarchie Abnahmetest Testarten Performance-Test Usability-Test Systemtest Komponententest Testeffizienz Testautomatisierung GUI-Test Regressionstest Testwiederverwendbarkeit Smoke Test Unit-Test SWM 2015 Düttmann / Kleuker 3 Praxisbeispiel: Archimedon • Unternehmen: Archimedon (Minden + Osnabrück), 15 Mitarbeiter • zentrales Produkt: admileo – Verteilte Anwendung zur Abbildung von Geschäftsprozessen – Fokus • Multiprojektmanagement im Konzern • Product Lifecycle Management für komplexe Produkte • modular aufgebautes komplexes Client/Server System, Java • Fat Client mit Java Swing • systematische klassische Software-Entwicklung mit manueller Qualitätssicherung • Quelle: A. Heidt, Konzeption und Realisierung einer automatisierten Testumgebung in einem Continuous Integration Prozess für admileo, Bachelorarbeit Hochschule Osnabrück, 2012 SWM 2015 Düttmann / Kleuker 4 Praxisbeispiel: Archimedon • Ausgangssituation: Anforderungsanalyse: klassische Dokumentation Entwicklung: Client-Server; bisher keine drastischen Probleme, kein Stillstand Architektur: ein- und ausschaltbare Module Qualitätssicherung: komplett manueller Prozess Dokumentation: Studierende schaffen Einarbeitung Qualifikation / Schulung: Entwicklung durch Informatiker SWM 2015 Düttmann / Kleuker 5 Neu eingeführter Testprozess • JUnit • JaCoCo Build Schnelle Tests Analysen Restliche Tests • Sonar SWM 2015 • QF-Test • JaCoCo • Sikuli Düttmann / Kleuker 6 Praxisbeispiel: Archimedon • Ausgangssituation: Anforderungsanalyse: klassische Dokumentation Entwicklung: Client-Server; bisher keine drastischen Probleme, kein Stillstand Architektur: ein- und ausschaltbare Module Qualitätssicherung: voll automatisierter Prozess Dokumentation: Studierende schaffen Einarbeitung Qualifikation / Schulung: Entwicklung durch Informatiker SWM 2015 Düttmann / Kleuker 7 Benefit • Ständige Verfügbarkeit von ausführbaren Testsystemen • Vollständig automatisierter Aufruf und Reporting der Testfälle • Risikominimierung bei Release-Wechseln SWM 2015 Düttmann / Kleuker 8 Erfahrungen • Technisch: – Verwendete Tools sind ausgereift und stabil – Implementierung einer Continuous Integration und Testing Umgebung gestaltet sich als reibungslos – Betrieb erfordert geringen Aufwand (wenige Mannstunden pro Monat) • Organisatorisch: – Einführung einer zentralen QS-Stelle sinnvoll => Einarbeitungstiefe minimieren – Definition von Schnittstellen zwischen QS und Entwicklung – Wiederverwendung, Aufbau von Libraries, Testarchitektur SWM 2015 Düttmann / Kleuker 9 Zukünftige Herausforderungen Web Clients Rich Client Web Client Rich Client admileo Webserver admileo Applikations-Server admileo Applikations-Server Umstieg Rich Client => Web Client (RIA) SWM 2015 Düttmann / Kleuker 10 Zukünftige Herausforderungen Auswirkungen auf die Testarchitektur? SWM 2015 Düttmann / Kleuker 11 Testprozess • JUnit • JaCoCo Build Schnelle Tests Analysen Restliche Tests • Sonar SWM 2015 • QF-Test • JaCoCo • Sikuli Düttmann / Kleuker 12 Erfolgskriterium: Testarchitektur (1/2) Architektur der Software (testbare Architektur) • modular / komponentenbasiert / gegen Schnittstellen entwickelt GUI / Browser View Model View Model FrameworkVerbindung Business Model Persistence Layer SWM 2015 oberflächentechnologieunabhängige Regressionstests Beispiel: Wiederverwendbarkeit von Tests nur, wenn austauschbare Elemente gekapselt statt JSF in JEE Wechsel zu Apache Wicket Düttmann / Kleuker 13 Erfolgskriterium: Testarchitektur (2/2) Architektur der Tests (wart- und erweiterbar) • modular / hierarchisch / strukturiert strukturiert class NutzeranmeldungTest class NutzeraktualisierungTest … hierarchisch class NutzeranmeldungTest { gui.textEingeben("Login", "Ute") „eine Test-Suite pro WebSeite“ class MeineGUIToolSteuerung{ public void textEingeben(String feld, … Input in = X.find(feld); mouse.click(in); … „Kapselung von Logik und Werkzeugdetails“ SWM 2015 Düttmann / Kleuker 14 Erfolgskriterium: Testorganisation • Nachvollziehbarkeit, was wie getestet wird, Zusammenhänge SWM 2015 Düttmann / Kleuker 15 Erfolgskriterium: Nutzung neuer Technologie (1/2) • neue Technologie in der Entwicklung und bei Testwerkzeugen • Beispiel: konsequente Nutzung von Dependency Injection @Inject private PersistenzService db; ... public void persist(Object object) { db.persist(object); } • Vorteil Entwicklung: Entkopplung von benötigten Ressourcen vom eigentlichen Nutzer • Vorteil Test: Einfache Integration von Mocks • Beispiel: Contexts and Dependency Injection (JSR 299, 346) in JEE (z. B. @Alternative) SWM 2015 Düttmann / Kleuker 16 Erfolgskriterium: Nutzung neuer Technologie (2/2) • Beispiel 2 CDI: Interceptor (Aspektorientierung 2001) class NutzeranmeldungTest{ @InterceptQualifier @InterceptQualifier @Intercept public void beobachtbareMethode( class MeinInterceptor{ @AroundInvoke … public void beobachten(InocationContext ctx) … • Vorteil Entwicklung: zentrale Aufgaben (Rechte, Logging, Validierung, Transaktion) an zentraler Stelle • Nachteil Entwicklung: unübersichtlich, welcher wann aktiv • Vorteil Qualitätssicherung: einfacher Eingriff in Ausführung • Nachteil Qualitätssicherung: wann wie Interceptor testen SWM 2015 Düttmann / Kleuker 17 Erfolgskriterium: Richtiger Metrikeinsatz • Richtige Nutzung von Überdeckungsmetriken (Zweigüberdeckung) korrekt: • Testfälle klassisch aus typischer Nutzung und möglichen Extremfällen konstruieren • dann Überdeckung messen • dann analysieren, warum bestimmte Bereiche nicht überdeckt • dann ggfls. weitere Testfälle für Überdeckung ergänzen falsch: • festes Maß (95% Überdeckung) als Ziel ausgeben und hieraus Korrektheit annehmen SWM 2015 Düttmann / Kleuker 18 Erfolgskriterium: Qualifikation • nur gute Programmierer können gute Tests programmieren • nicht jeder gute Programmierer schreibt gute Tests • nur gute SW-Architekten können gute Testarchitektur erstellen • zentrales Hilfsmittel: ISTQB-Zertifizierung SWM 2015 Düttmann / Kleuker 19 Zusammenfassung • Testautomatisierung kann Zeit sparen und Qualität erhöhen • viele dynamische Erfolgskriterien: Personal, Prozess, Technologie • gute QS nur bei guter Entwicklung möglich SWM 2015 Düttmann / Kleuker 20
© Copyright 2024 ExpyDoc