Upload
vuongdat
View
213
Download
0
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