24
Mario Friske T-Systems International GmbH TAV 37, Friedrichshafen, 05.02.2015 Anwendungsfallbasierte Testfallerstellung mit der UCV-Methode

Anwendungsfallbasierte Testfallerstellung mit der UCV-Methode · Status Ausblick ... UCV-Methode basiert auf Arbeiten bei Fraunhofer FIRST Problemstellung aus industriellen Systemtestprojekten

Embed Size (px)

Citation preview

Mario Friske

T-Systems International GmbH

TAV 37, Friedrichshafen, 05.02.2015

Anwendungsfallbasierte Testfallerstellungmit der UCV-Methode

Testfallerstellung mit der UCV-MethodeInhalt

2Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Problemstellung / Hintergrund

UCV-Methode im Überblick

Transformationen im Detail

Status

Ausblick

Testfallerstellung mit der UCV-MethodeProblemstellung: Testfallerstellung aus Use Cases (1)

3Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Basic Path

1. The use case starts when thecustomer selects Place Order.

2. The system displays thePlace Order screen.

3. The customer enters his or hername and address.

4. The customer enters productcodes for products to be ordered.

5. For each product code entered

a) Include Get Product Information

b) The System adds the price ofeach item to the total.

end loop

Anwendungsfälle sind oft als Tabelle / strukturierter Text notiert:

Name des Anwendungsfalls

Ziel: Kurzbeschreibung der Funktionalität

Vorbedingungen: Voraussetzung für

erfolgreiche Ausführung

Nachbedingungen: Systemzustand nach

erfolgreicher Ausführung

Fehlersituationen für Problembereich

Systemzustand im Fehlerfall (nach Ablauf)

Akteure, die mit dem Anwendungsfall

kommunizieren

Trigger: Auslösende Ereignisse für den

Anwendungsfall

Standardablauf: einzelne Schritte / andere

Anwendungsfälle

Alternativabläufe: Abweichungen vom

Standardablauf[nach A. Cockburn: Goals and Use Cases. Journal of Object-Oriented

Programming, Sept. 1997]Customer Place Order

Testfallerstellung mit der UCV-MethodeProblemstellung: Testfallerstellung aus Use Cases (2)

4Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Use Case

Validator

(UCV-Methode)

Testfallgenerierung

z.B. Rational

RequisitePro

Requirements

Management

Defect

Tracking

z.B. Rational

ClearQuest

z.B. Rational

TestManager

Testausführung

z.B. Rational Robot

Testmanagement

Werkzeugkette für den spezifikationsbasierten Softwaretest

Testfallerstellung mit der UCV-MethodeHintergrund: Historie & Entwicklungstand

UCV-Methode basiert auf Arbeiten bei Fraunhofer FIRST

Problemstellung aus industriellen Systemtestprojekten

erste Methodenbausteine entstanden in 2000er Jahren

Publikationen zu verschiedenen Teilaspekten

mehrere Abschlussarbeiten (Studien-, Diplom- und Bachelorarbeiten)

Komplettierung zur durchgängigen Methodik

weitere Aspekte wurden zwischenzeitlich ausgearbeitet

Erweiterung des bestehende Prototypen

letzte Methodenbausteine in Detaillierung

Promotionsvorhaben an der HU Berlin

5Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Testfallerstellung mit der UCV-MethodeÜberblick: Hauptmerkmale

Durchgängig:

textuelle Spezifikation -> Formalisierung -> logische und konkrete Testfälle

zwei Phasen:

1. interaktive Formalisierung

2. automatische Generierung

Interaktiv:

Einbeziehung des Nutzers, z.B. um Mehrdeutigkeiten aufzulösen

Modellbasiert:

sämtliche Datenstrukturen durch Metamodelle definiert

sämtliche Zwischenschritte modellbasiert:

interaktive Modellerstellung & -verknüpfung

automatisierte Modelltransformation

Abdeckungsorientiert:

strukturelle Abdeckungskriterien

flexible Sollabdeckungsspezikation

präzise Istabdeckungsbestimmung

6Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Testfallerstellung mit der UCV-MethodeÜberblick: Aktivitäten aus Anwendersicht

7Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Testfallerstellung mit der UCV-MethodeÜberblick: Übersicht der Transformationen

8Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test Data

DIM(design info)

UCF(use case

formalization)

UCM(use case)

LTC(logical test

case)

CTC(concrete test

case)

ETC(executable test

case)

UML

Spec.

Impl.

Außerhalb

der Diss

Umfang

der Diss.

Legende:

Transformationen im DetailSpec -> Use Case Model(„Aufbereitung“ allg.)

9Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Basic Path

1. The use case starts when the

customer selects Place Order.

2. The system displays the

Place Order screen.

3. The customer enters his or her

name and address.

4. The customer enters product

codes for products to be ordered.

5. For each product code entered

a) Include Get Product

Information

b) The System adds the price of

each item to the total.

end loop

Metamodell der textuellen

Anwendungsfallbeschreibung

Transformationen im DetailImpl -> Design Info(„Interaktionbestimmung“)

10Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Metamodell der

Entwurfsinformation

Zwei Methoden der Interaktionsbestimung:

1. aus Entwurfsinformation, d. h. anhand von Schnittstellenfunktionen

(GUI-Analyse) als Teil der Entwurfsinformation.

2. aus Ablaufschritten, d. h. anhand der Flietextrepräsentation innerhalb

der textuellen Anwendungsfallbeschreibung und

Transformationen im DetailUse Case + Design Info ->Use Case Formalization(„Interaktionszuord.“, „Kontrollflusserf.“)

11Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Grafische Oberfläche des Use Case Validator (Ausschnitt)

Interaktive

Verknüpfung

Entwurfsinformation

(Systemfunktionen,

Systemreaktionen)importierte

Anwendungs-

fallbeschreibung

Transformationen im DetailUse Case + Design Info ->Use Case Formalization(„Kontrollflusserfassung“)

12Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Basic Path

1. The use case starts when the customer selects Place Order.

2. The system displays the Place Order screen.

3. The customer enters his or her name and address.

4. The customer enters product codes for products to be ordered.

5. For each product code entered

a) Include Get Product Information

b) The System adds the price of each item to the total.

end loop

Sequenzen

Teilschritte

Schleifen

Iteratoren

Includes

Interaktive Formalisierung des Kontrollflusses

Transformationen im DetailUse Case + Design Info ->Use Case Formalization(„Interaktionszuordnung“)

13Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Basic Path

1. The use case starts when the customer selects Place Order.

2. The system displays the Place Order screen.

3. The customer enters his or her name and address.

4. The customer enters product codes for products to be ordered.

...

Step = (Akteur + Nutzeraktion) oder Systemreaktion

Interaktive Verknüpfung von Use Cases und Interaktionen (Design Info)

Transformationen im DetailUse Case + Design Info ->Use Case Formalization

14Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Metamodell der formalisierten Anwendungsfallbeschreibung -

Kontrollfluss und Verknüpfung mit Entwurfsinformation

Transformationen im DetailUse Case Formalization ->UML (Activity Diagrams)(„Generierung“ allgem.)

15Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

UML

Quelle: UCF-Modell

Ziel: UML2-Modell

• Generierung einer alternativen Repräsentation

• Kanonische Abbildung

• UCF-MM ist auch Quelle für Testgenerierung

• Proof-of-Concept: Generierungsfähigkeit des

Metamodells bestätigt

• Evaluation mehrerer Transformationsmaschinen

Transformationen im DetailUse Case Formalization ->UML (Activity Diagrams)(„Generierung“ allgem.)

16Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

UML

Zweistufige Algorithmenumsetzung

1. Stufe: Abstrakte Transformationsbeschreibung

• Spezifikation in Pseudo-Code

• verknüpft Elemente aus Quell-

und Zielmetamodell

• natürlichsprachlich, aber

weitgehend eindeutig

• ermöglicht Umsetzung mit

verschiedenen

Transformationswerkzeugen

• wenn hilfreich: weitere

Detailierung als OCL-QueriesAusschnitt der

Transformationsbeschreibung

Transformationen im DetailUse Case Formalization ->UML (Activity Diagrams)(„Generierung“ allgem.)

17Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

UML

Zweistufige Algorithmenumsetzung

2. Stufe: Umsetzung in Transformationssprache (hier ATL)

rule Switch2Node1 {from switch : ucv!Switch(switch.ElseBlock

->oclIsUndefined())to-- Entscheidungsknotendec : uml!DecisionNode (

name <- switch.Condition.description),-- Mergeknotenout : uml!MergeNode(

name <- 'end'+switch.name),

e1 : uml!ControlFlow(source <- dec,target <- switch.IfBlock.getValidBlocks()->first()

),e2 : uml!ControlFlow(

source <- dec,target <- out

),e3 : uml!ControlFlow(

source <- thisModule.resolveTemp(switch.IfBlock.getValidBlocks()->last(),'out'

),target <- out

)}

Transformationen im DetailUse Case Formalization ->Logical Test Case(„Sollabdeckkungsspezifikation “)

18Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Abdeckungsorientierter Ansatz:

Auswahl und Kombination von Kriterien durch den Tester

• Tester wählt Kombinationen

von Abdeckungskriterien

• Abdeckungskriterien ggf.

parametrierbar

• Jedes Kriterium resultiert in

einer Menge von Testzielen

• Deklarative Testdirektiven

• Realisierung verschiedener

Kriterien und Strategien durch

Plug-Ins

All n-UC-Path Sequences

MC/DC

All p-uses

Selection of Coverage Criteria

control flow oriented:

data flow oriented:

Transformationen im DetailUse Case Formalization ->Logical Test Case(„Testfallgenerierung->Pfadbestimmung“)

19Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Pfadbestimmung auf zwei Ebenen:

Inter-AnwendungsfallebeneAnwendungsfallebene

LoginCustomer

Place Order

<<include>>

Get Status on Order

<<include>>

Hauptablauf

Alternative 1

Alternative 2

Übertragung strukturorientierter Abdeckungskriterien auf Anwendungsfälle:

• Kontrollflussorientierte Kriterien: Pfadüberdeckung, Anweisungsüberdeckung,

Zweigüberdeckung, verschiedene Bedingungsüberdeckungen, u.a.

• Übertragung von Kriterien und Algorithmen auf formalisierte Anwendungsfälle

• Direkte Definition auf Metamodellebene

Transformationen im DetailUse Case Formalization ->Logical Test Case

20Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Metamodell eines logischen Testfalls

LTC TestStep

1..n1 1..n1

11

1+successor

1

Parameter Interaction

+Parameters

1

{ordered}

0..n 10..n

ActionStep

0..10..1

SystemFunction

11

ExpectedResult

0..10..1

SystemReaction

11

Tabellenrepräsentation des logischen Testfalls

No Step Expected Result

1. customer

selects „Place

Order“

system displays

place order screen

2. customer

enters name

and address

3. customers

enters product

codes

Transformationen im DetailSpezifikation von Testdaten

21Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Classification Tree Classification

1 0..n1 0..n

Class

1 0..n1 0..n

10..n 10..n

Attribute

11

• Modellbasierte Kombination von Grenzwertanalyse und attributierten

Klassifikationsbäumen

• Bestimmung von Schranken und Mittelwert bei geordneten Datentypen

• Grenzwertanalyse auf abstrakte Äquivalenzklassen nur bedingt anwendbar

• Attribuierung ermöglicht Hinterlegung pathologischer Fälle, wie

Modellbasierte Testdatenspezifikation

Stadtverwaltung Mannheim

E5 1, 68159 Mannheim

[Bildquelle:

Wikipedia]

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Transformationen im DetailLogical Test Case + Test Data-> Concrete Test Case(„Testfallgenerierung“)

22Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Tabellenförmige Repräsentation des konkreten Testfalls

Nr. Step Expected

Result

1. customer selects menu

“Orders” -> “Place Order”

system displays dialog “Place

Order”, as defined in …

2. customer writes ‘John Doe’ in

the text field “Name” and ‘Test

Road 2‘ in the text field

“Address”

3. customers writes ‘00123’ in

the text field “Product Codes”

Finaler Schritt: modellbasierte Erzeugung der Zielrepräsentation:

Test

Data

DIM

UCF

UCM

LTC

CTC

Spec

Impl.

Testfallerstellung mit der UCV-MethodeStatus – Umsetzung der Transformationen

23Mario Friske, TAV 37, Friedrichshafen, 05.02.2015

Test Data

DIM(design info)

UCF(use case

formalization)

UCM(use case)

LTC(logical test

case)

CTC(concrete test

case)

ETC(executable test

case)

UML

Spec.

Impl.

Legende:

in

Komplett.

Fertig

Umsetz.

Nicht

geplant

Testfallerstellung mit der UCV-MethodeAusblick

Komplettierung der UCV-Methode zur durchgängigen Methodik

letzte Methodenbausteine in Detaillierung

Erweiterung des bestehende Prototypen

Evaluation im Rahmen einer industriellen Fallstudie

Kontext großes Bestellsystem

Einbindung bestehender Testdatenmanagementsysteme

Erweiterung um komplexere Abdeckungskriterien

Implementierung und Einsatz in produktiver Toolkette

24Mario Friske, TAV 37, Friedrichshafen, 05.02.2015