Workshop Qualitätssicherung

Consulting GmbH & Co. KG. Marienstraße 66. 32427 Minden ... Multiprojektmanagement im Konzern. • Product Lifecycle Management für komplexe Produkte.
848KB Größe 24 Downloads 117 Ansichten
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