28
Institut PALUNO Essen, 29.06.2011 | Andreas Gorbach Modellbasiertes Testen Hochschule und Softwareindustrie im Dialog

Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

  • Upload
    buianh

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Institut PALUNO Essen, 29.06.2011 | Andreas Gorbach

Modellbasiertes Testen

Hochschule und Softwareindustrie im Dialog

Page 2: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 2

Inhalt

� Motivation modellbasiertes TestenKurze Einführung

� Vorgehensweise

� Modellbasierte Testdatenerstellung

� Modellbasierte GUI-Testautomatisierung

Page 3: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 3

Fakten

� Testautomatisierung nur durch Programmierung

� Test der Fachlogik setzt fachliches Hintergrundwissen voraus

� Folge: Testfallprogrammierer ist ein Exot

� Projektgeschäft = Diskontinuierliche Entwicklungsintensität

� Projektgeschäft = Roulierende Entwicklerteams

� Projektgeschäft = Spontanität und kurze Rüst- bzw. Anpassungszeiten

� Folge: Aktualität des Regressionstests ist nicht einfach zu gewährleisten

Page 4: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 4

Verbesserungspotential fachlogischer Tests

� Tests sollen ohne programmiertechnische Tiefkenntnisse ausgeführt und modifiziert werden können, um

�Flexibilität in der personellen Besetzung zu erhöhen

�den Wiedereinstieg nach Entwicklungspausen zu erleichtern

�die Einarbeitungszeit zu reduzieren

� Abdeckungsgrad soll visuell erfassbar sein

�Vision: Modellbasiertes Testen (UML)

Page 5: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 5

Modellbasiertes Testen - Vision

� Durch die Modellierung konzentriert sich der Tester primär auf die Beschreibung der Fachlichkeit, er „programmiert“ grafisch

� Der Tester schafft sich einen Baukasten an Aktivitäten, die er zu Abläufen kombinieren kann

� Für das Tagesgeschäft lassen sich bedarfsgerechte Testsuites visuell zusammenstellen (z. B. Test von Patches)

� Der Abdeckungsgrad lässt sich visuell erfassen

� Aus den Modellen wird durch Modelltransformation der erforderliche Quellcode zur Testautomatisierung vollständig generiert (Testdaten und Fachlogik)

Page 6: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 6

Model Driven Architecture Transformations im Lebenszyklus

Nutzen für den Entwicklungsprozess

Vererbung von Informationen

Modellübergreifende Beziehungen

Erhöhung der Produktivität

Durchgängige Nachverfolgbarkeit

Teilweise Kopplung mit Quellcodegenerierung Use CaseModel

Business ProcessModel

ClassModel

Test Case Model Requirements Model

Page 7: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 7

Modellbasiertes Testen – Innerbetriebliche Innovation

� Bestandteil der innerbetrieblichen Ausbildung

� Start Sommer 2008

� Primär wurden MATSE und Fachinformatiker im ersten Lehrjahr eingesetzt

� Prämisse: Alles muss mit einem UML-Werkzeug modelliert werden

� Roulierende Weitergabe im Semester-Rhythmus an Nachfolger

� Getestet werden soll eine Client-Server-Applikation im laufenden Lebenszyklus

� Integration in die Qualitätssicherung eines Entwicklungsprojekts

� Erfolgreicher Abschluss der Evaluation Frühjahr 2011

� Produktive Nutzung im Entwicklungsprojekt seit Frühjahr 2011

Page 8: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 8

Inhalt

� Motivation modellbasierte Testautomatisierung

Kurze Einführung

� Vorgehensweise

� Modellbasierte Testdatenerstellung

� Modellbasierte GUI-Testautomatisierung

Page 9: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 9

Verwendete Entwicklungsumgebungen

Enterprise Architect 8.0 oder höher (www.sparxsystems.com)�Business and Software Engeneering Edition�Systems Engineering Edition�Ultimate Edition

� TestComplete 8.0 oder höher (www.smartbear.com)

� Python (Einspielen der Testdaten)

Benötigte Code-Generation-Templates

� Python (Testdaten)

� JScript (TestComplete-Steuerung)

Page 10: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 10

Alltag modellbasierte Testautomatisierung

� Der Tester benutzt den Enterprise Architect zur Strukturierung, Verwaltung und Modellierung seiner Testcases

� Testdaten werden anhand von Class Diagrams modelliert

� Über Activity Diagrams werden die Bedienabläufe für TestComplete modelliert

� Der Enterprise Architect ist in der Lage, sowohl aus Klassendiagrammen als auch aus Behavioral Diagrams (Activity Diagrams, Sequence Diagrams) Quellcode zu generieren

� Eventuelle Anpassung der Generation-Templates für Python (Testdaten) und JScript (TestComplete) oder UML-Wertevorräte im Enterprise-Architect

Page 11: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 11

Automatisierte Modelltransformation – Intention

Phase 1: Modellierung von plattformunabhängigen Modellen

Quelle: Sparx System

Phase 2: Transformation in die gewünschte(n) Zielplattform(en)

Fokus liegt auf dem Geschäftsprozess

Zukunftsorientierte Architektur, da Anpassungen nur im PIM notwendig sein sollen

Transformation soll sich mit Quellcodegenerierung koppeln lassen

Page 12: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 12

Inhalt

� Motivation modellbasierte Testautomatisierung

Kurze Einführung

� Vorgehensweise

� Modellbasierte Testdatenerstellung

� Modellbasierte GUI-Testautomatisierung

Page 13: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 13

Testdatengenerierung - Manuelle Modelltransformation

Schematischer Bedienungsablauf

act Testdaten anlegen

Model ohne Package

Model mit neuemPackage

Package anlegen

Model ohne Package

Model mit neuemPackage

Package ohne Diagramm

Package mit neuem Klassendiagramm

Klassendiagramm anlegen

Package ohne Diagramm

Package mit neuem Klassendiagramm

Start

Klassendiagramm ohne Pattern

Klassendiagramm mit Standardklassen

Pattern laden

Klassendiagramm ohne Pattern

Klassendiagramm mit Standardklassen

Klassen ohne Taganzeige

Klassen mit Taganzeige

Tag und Attribut Anzeige

w iederherstellen

Klassen ohne Taganzeige

Klassen mit Taganzeige

Klassen ohne Testdaten

Klassen mit neuen Testdaten

Testdaten einfügen /

v erändern / anpassen

Klassen ohne Testdaten

Klassen mit neuen Testdaten

Speicherort ohne .py Dateien

Speicherort mit generierten .pyDateien

Python Code generieren

Speicherort ohne .py Dateien

Speicherort mit generierten .pyDateien

Speicherort ohne Oberklassen

Speicherort mit Oberklassen

Python Dateien

zusammentragen

Speicherort ohne Oberklassen

Speicherort mit Oberklassen

Python Steuerdatei und Testdaten

Datenbank mit Testdaten befül lt

Python Steuerscript

ausführen

Python Steuerdatei und Testdaten

Datenbank mit Testdaten befül lt

Testdaten wurden angelegt

Page 14: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 14

Phase 1: Modellierte Ereignisse als Vorlage für Testcases

� Jedes Ereignis mit Auswirkungen auf die Geschäftsprozesse ist als Use Casedefiniert und durch ein Activity Diagramm beschrieben

Page 15: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 15

Testdatengenerierung Schritt 1 - manuelle Modelltransformation

Beispiel „Name Geschäftspartner ändern“

act Geschäftspartner Name än...

Start

Nav igationsbaum

aktualisieren

(from Mehrfachnutzung)

Ende

Fenstertitel aktualisieren

(from Mehrfachnutzung)

Für TestGP können bei Bedarf Werte angepasst werden

Page 16: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 16

Testdatengenerierung Schritt 2 – automat. Modelltransformation

Quellcode zur Testdatenerzeugung generieren

Page 17: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 17

Testdatengenerierung - Annehmlichkeiten der Modellierung

� Kapselung einer unhandlichen PL/SQL-API mit komfortabler Konfiguration und einfachen Versionsmanagement

Nur benötigte Parameter

Page 18: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 18

Inhalt

� Motivation modellbasierte Testautomatisierung

Kurze Einführung

� Vorgehensweise

� Modellbasierte Testdatenerstellung

� Modellbasierte GUI-Testautomatisierung

Page 19: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 19

GUI-Testautomatisierung Schritt 1 - manuelle

Modelltransformation

Testablauf logisch modellieren (optional)

act Geschäftspartner Name ändern

Namen ändern

Testdatensatz aufrufen

Start

Ende

Suchdialog öffnen

Testfallkennung

eingeben

Testdatensatz

auswählen

Zum

Geschäftspartner

nav igieren

Geschäftspartner

öffnen

Namen löschen

Neuen Namen

eingeben

speichern

Kontrolle

Fenstertitel lesen

Fenstertitel

überprüfen

Nav igationsbaum

einblenden

Geschäftspartnername

überprüfen

Geschäftspartner

schließen

act Geschäftspartner Name ändern

Start

Navigationsbaum

aktualisieren

(from Mehrfachnutzung)

Ende

Fenstertitel aktualisieren

(from Mehrfachnutzung)

Name:Package:Version:Author:

Geschäftspartner Name ändernAllgemein1.2Andreas Gorbach

Suchen klicken

Suchdialog

schließen

Page 20: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 20

GUI-Testautomatisierung Schritt 2 – modellbasierte

Testtoolprogrammierung (1)

Testablauf durch Modellierung implementieren

act nameAendern

Start

Ende

Test beenden :endCase

Titelleiste und Nav igationsbaum überprüfen :checkChangeInTitleAndNav iTree

Testdatensatz suchen und GP öffnen: addTestRow AndOpenGP

:addOrderAndOpenLST

Aktuelle Bezeichnung im Nav iBaum auslesen :getFocusCaption

Aktuellen Titel auslesen :getTitle

GPname ändern: setNameGP :setNameLST

Eingabe speichern :clickSpeichern

Page 21: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 21

GUI-Testautomatisierung Schritt 2 – modellbasierte

Testtoolprogrammierung (2)

Methodenaufrufe parametrieren

act nameAendern

Start

Ende

Test beenden :endCase

Titelleiste und Nav igationsbaum überprüfen :checkChangeInTitleAndNav iTree

Testdatensatz suchen und GP öffnen: addTestRow AndOpenGP

:addOrderAndOpenLST

Aktuelle Bezeichnung im Nav iBaum auslesen :getFocusCaption

Aktuellen Titel auslesen :getTitle

GPname ändern: setNameGP :setNameLST

Eingabe speichern :clickSpeichern

Page 22: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 22

GUI-Testautomatisierung Schritt 2 – modellbasierte

Testtoolprogrammierung (3)

Beispiel For-Schleife

act messkostentypAendern

Start

Auftrag hinzufügen :

g_addOrderStrAndOpenLST

Ende

Lieferstellen kalkulieren :

g_clickAlleLieferstellenKalkulieren

for i-te Lieferstelle bearbeiten :

bearbeiteMktLieferstelle

Lieferstelle v orbereiten :

g_lstPreisregelungHinzufuegen

[var i = 0; i < 3; i++]

Page 23: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 23

act szeKalkulationsbasisAendern

Start

Auftrag holen :g_addOrderStr

Szenario initialisieren :g_initStrSZE

for Lieferstelle initialisieren :

g_initStrLST[var i = 0; i < l_lieferstelle.length; i++]

GUI-Testautomatisierung Schritt 2: modellbasierte

Testtoolprogrammierung (4)

Beispiel For-Schleife (dynamische Deklaration)

Page 24: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 24

GUI-Testautomatisierung Schritt 2 – modellbasierte

Testtoolprogrammierung (5)

Tagged Values als Platzhalter für Variablen-Deklarationen

act pruefeProfilv orgabeUndAbleseturnus

Profilv orgabe auslesen :

g_getGridViewCellTextByCaption

i fLog.Message

(G_TestComplete::)Log.Error

(G_TestComplete::)Unerwartete Profilvorgabe

Page 25: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 25

GUI-Testautomatisierung Schritt 3 : Vorbereitungen Quellcodegenerierung

Composite diagram modellieren

class Stammdaten

CaseGPNameAendern

Allgemein::

Allgemein

GUI Ansteuerung::

Nav igationsbaum

Allgemein::

GPStammdaten

Allgemein::

Menu

Allgemein::

GPAllgemein

«use»

«use»

«use»«use»

«use»

«use»«use»

Wiederverwendung bestehender Modellierung

Page 26: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 26

GUI-Testautomatisierung Schritt 4: autom. Modelltransformation

Quellcode zur Testautomatisierung generieren

Page 27: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 27

Fazit

Ziel erreicht

Evolution vorantreiben, z. B.

Abstraktionsgrad der codenahen Modellierung erhöhen

Handlichkeit und Performance der Generierung erhöhen

Modellbasiertes Testen vermitteln und weiterentwickeln

Page 28: Hochschule und Softwareindustrie im Dialog - … · Modellbasierte GUI-Testautomatisierung. Folie 3 Fakten Testautomatisierung nur durch Programmierung Test der Fachlogik setzt fachliches

Folie 28

Vielen Dank für Ihre Aufmerksamkeit!

www.soptim.de

Andreas Gorbach

Niederlassung Aachen

Im Süsterfeld 5-7

52072 Aachen

Tel. (02 41) 9 18 79-0

Fax. (02 41) 9 18 79-109

[email protected]