model based testing: why should i use models in testing?
DESCRIPTION
MBTConf 2011, Munich, Germany: Mario Winter: Why should I use Models in Testing?TRANSCRIPT
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 1
Prof.Dr. Mario Winter Fachhochschule Köln
MBTconf 11
Why should I use models in testing?
1
Why should I use models in testing?
MBTConf, Munich, 29. Juni 2011
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 2
Should I use models in Testing?
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 2
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 3
Should I use models in Testing?
Testing Software Design Modeled by Finite-State MachinesTSUN S. CHOWIEEE Transactions on Software Engineering VOL. SE-4, NO. 3, MAY 1978
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 4
Should I use models in Testing?
The Art of Software TestingGlenford MyersWiley&Sons, NY, 1979
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 3
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 5
Should I use models in Testing?
• Testing is a process in which we create mental models of the environment, the program, human nature, and the tests themselves. [...] The art of testing consists of creating, selecting, exploring, and revising models.
• Test design must be based on both general and specific models.
Beizer, B.: Software Testing Techniques. 2nd Ed., Van Nostrand Reinhold, 1990
Binder, R.: Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, 1999
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 6
So, should I use models in Testing?
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 4
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 7
I should use models in Testing!
Prof.Dr. Mario Winter Fachhochschule Köln
MBTconf 11
Why should I use models in testing?
8
Why should I use models in testing?
MBTConf, Munich, 29. Juni 2011
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 5
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 9
Wordle über: Rossner et al.: Basiswissen Modellbasierter Test, dpunkt.verlag, Heidelberg, 2010, S. 3–9 (http://www.wordle.net/create)
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 10
Was ist ein Modell?
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 6
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 11
Drei Modell-Kriterien
• Abbildungo Es gibt ein (existierendes oder projektiertes) Ding oder einen
Sachverhalt, der im Modell abgebildet wird
o Entsprechend unterscheidet man deskriptive (beschreibende) und präskriptive (vorschreibende) Modellierung
o Ding oder Sachverhalt werden oft als “das Original” bezeichnet
• Abstraktion (Verkürzung)o Nicht alle Eigenschaften des Originals sind im Modell repräsentiert,
sondern das Modell ist eine “Verkürzung” (Abstraktion, Reduktion, Vereinfachung, …) des Originals
o Auf der anderen Seite muss das Modell zumindest einige Eigenschaften des Originals widerspiegeln
• Pragmatiko Das Modell ersetzt das Original für einen bestimmten Zweck. D.H.,
das Modell ist nützlich …
• … für jemanden (ein wahrnehmendes oder agierendes Subjekt) …
• … in einem bestimmten Zeitraum und einem bestimmten Kontext …
• … eingeschränkt für bestimmte Interpretationen oder Operationen
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 12
Ist modellieren schwer?
• Wie erkennen und verstehen wir die Welt?
• Sinnliche Wahrnehmungo Schemen- bzw. Bild-(Wieder-)Erkennung
o Szenen- und Bildzerlegung Teile und Herrsche!
• Benennungo Objekterkennung
o Symbolerzeugung
• Prädikatoren- und Begriffsbildungo Eigenschaften und Fähigkeiten des zu
identifizierenden Objektes bzw. dessen Beziehungen zu anderen Objekten werdenidentifiziert;
o Begriffsbildung, Abstraktion
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 7
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 13
Selbsttest
Abbildung: Was ist das Original?
Abstraktion (Verkürzung): Welche Attribute sind (nicht) modelliert, welche sind zugefügt?
Pragmatik: Von/für wen, wann und warum?
Ein Modell ist eine aufgaben-angemessene, abstrahierende Sicht auf einen Gegenstand oder Sachverhalt
http://img.fotocommunity.com/photos/7984059.jpg
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 14
Modellieren einer Operation/Methode
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 8
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 15
Modellieren einer Operation/MethodeKomplex, formal, ...
Anweisung, Verzweigung, Schleife, ...
Kontrollfluss!
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 16
Was ist also Modellierung?
jemand ein Original
ein Modell
untersucht etwas tun kann
erstellt damit
jemand
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 9
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 17
Modell der Modellierung
Subjekt S Adressat A
Modell M
erstelltunter P
antizipiert /beobachtet
interpretiertunter P
beschreibt /schreibt vor
Original O
intendiert
Pragmatik P
handelt /beobachtet
Mahr, B.: Die Informatik und die Logik der Modelle. Informatik-Spektrum 32(3), 2009
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 18
Wordle über: Rossner et al.: Basiswissen Modellbasierter Test, dpunkt.verlag, Heidelberg, 2010, S. 3–9 (http://www.wordle.net/create)
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 10
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 19
Was ist eigentlich Testen?
• Bewertung eines Programms und der hierzu in Beziehung stehenden Arbeitsergebnisse, um
• Fehlerwirkungen nachzuweisen
• die Qualität zu bestimmen
• Vertrauen in das Programm zu erhöhen
• und das Programm oder die Dokumente zu analysieren, um Fehlerwirkungen vorzubeugen
Requirements
Konstruktion
Analyse
Architektur
Entwurf
Implementation
Komponenten-test
Integrationstest
Systemtest
Abnahme-test
Valid
ieru
ng&
Verif
ikat
ion
Requirements
Konstruktion
Analyse
Architektur
Entwurf
Implementation
Komponenten-test
Komponenten-test
Integrationstest
Systemtest
Abnahme-test
Valid
ieru
ng&
Verif
ikat
ion
Nach: [ISTQB CT Glossar 2010]
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 20
Ziele und Kunden des Testens
• Fehlerwirkungen nachweisen
• Die Qualität bestimmen
• Vertrauen in das Produkt erhöhen
• Fehlerwirkungen vorbeugen
Benutzer
Auftraggeber
Marketing/Produktmanagement
Projektmanagement
Entwicklung
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 11
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 21
Testautomatisierung heute
Analyse & Design
Realisierung
System-ProduktAnfor-derungen
REtools
TestPhasen
AutomatischeDurchführung
Test SkriptErzeugung
Testdurchführungswerkzeug
Durchführung Auswertung& Bericht
Planung & Steuerung
Test Manage-mentSystem
TestBericht&Metriken
TestProto-koll
TestfallTestfallTest
fall
TestSpez.
ManuelleDurchführung
Konfigurations-management-werkzeug
Fehler-management-werkzeug
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 22
Testautomatisierung im Testprozess
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 12
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 23
Wo steht das Testen bei Ihnen heute?
• Können Sie z.B. die folgenden Fragen für Ihr Projekt beantworten:o Welche Anforderungen (z.B. welche Szenarien und Sonderfälle) sind wie zu testen?
o Was testen die vorhandenen Testfälle eigentlich?
o Hat der Test eine bestimmte Anforderung komplett verstanden und geprüft?
o Mit welchen Testfällen würde Ihre zu testende Anforderung als ausreichend getestet betrachtet?
o Sind in Ihrem Projekt zu wenige oder zu viele Tests entstanden?
o Wie ist der aktuelle Ist-Stand des Tests? Wie der Soll-Stand?
• Oder diese:o Wie und warum ist ein vorliegender Testfall entstanden? Aufgrund welcher Testbasis
und welchen Testverfahrens? Welche Entscheidungen hat der Tester bei seiner Erstellung getroffen?
o Welche Testfälle sind von einer Änderung der Testbasis (der Spezifikation, der Modelle) betroffen?
o Können Sie diese mit Ihrer Werkzeugunterstützung »mit einem Klick« finden?
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 24
Wordle über: Rossner et al.: Basiswissen Modellbasierter Test, dpunkt.verlag, Heidelberg, 2010, S. 3–9 (http://www.wordle.net/create)
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 13
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 25
Model-Based Testing
• Model-Based Testing (MBT) is [...] an approach that bases common testing tasks such as test case generation and test result evaluation on a model of the application under test.
• Model-based testing is the application of Model based design for designing and executing the necessary artifacts to perform software testing. [URL: Wikipedia en]
• The following are the four main approaches known as model-based testing:1. Generation of test input data from a domain model
2. Generation of test cases from an environment model
3. Generation of test cases with oracles from a behavior model
4. Generation of test scripts from abstract tests
Marciniak, J. J.: Encyclopedia of Software Engineering. John Wiley & Sons, 2002
Utting, M.; Legeard, B.: Practical Model-Based Testing – A Tools Approach. Morgan Kaufmann, 2007
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 26
MBT Pragmatisch
Modellbasiertes Testen (MBT) umfasst mindestens einen der beiden folgende Aspekte:
• die Nutzung von Modellen für die Automatisierung von Testaktivitäten sowie
• die Modellierung von Artefakten (Testfällen, Testrahmen, …) im Testprozess
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 14
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 27
Modellierung im Test
TesterTester oder Testautomat
Test-modell
erstellt
antizipiert
interpretiert
stimuliert /beobachtet
beschreibtTestverhalten
Testdurchführung
Pragmatik Testen
SUT
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 28
Drei Modellkategorien für MBT
• Umgebungsmodelle stellen den Ausschnitt der Welt dar, in den das (zu entwickelnde) System eingebracht werden soll
o Benutzer und Benutzung
o Schnittstellen und Protokolle
• Systemmodelle beschreiben das System selbst, was es umfasst und wie es funktioniert
o Aus welchen Komponenten ist das System zusammengesetzt? (Statische Struktur)
o Wie interagieren diese miteinander? (Dynamisches Verhalten).
• Testmodelle sind Modelle der Testbasis und/oder Modelle von Testspezifikationen:
o Testbasismodelle modellieren für den Test relevante Informationen aus Spezifikations- und Entwurfsdokumenten und dienen zur Generierung der Testfälle. Sie bedienen sie sich dazu mehr oder weniger unveränderter Bestandteile von Umgebungs- und Systemmodellen und ergänzen relevante Informationen
o Testspezifikationsmodelle modellieren »die Tests selbst«, also das Verhalten der (generierten) Testfälle sowie die Struktur der Testumgebung. Im Allgemeinen enthalten sie Beschreibungen von Anreizen, denen das System ausgesetzt wird, sowie den er-warteten Reaktionen
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 15
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 29
Fallbeispiel – Car-Konfigurator
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 30
Zustandsdiagramm als Umgebungsmodell
CarKonfig starten
Einstellungenändern
Sprache ändern
Sondermodellwählen
1
0,05 0,95 0,2
0,05
0,05
sc CarKonfig - Angestellter
Fahrzeug konfigurieren
Wunsch drucken
Zusatzausstattungwählen
0,1 0,95
0,8
0,05
0,4
0,35
0,95
0,05
0,05
0,95
0,950,05
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 16
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 31
Zustandsdiagramm als Testbasismodell
Zubehörbearbeiten
FahrzeugeBearbeiten
entry / zeigeFahrzeugPreis(typ)…
selectFahrzeug(fahrzeug) / typ := fahrzeug
Menu (Fahrzeuge) / showFahrzeugeBearbeiten; oldtyp := typ
Ende OK / hideFahrzeugeBearbeitenCancel / hideFahrzeugeBearbeiten;
holeDaten
/ holeDaten MainWindow
entry / berechnePreisexit / speichereDaten…
Menu (Zubehör) / …
Sondermodellebearbeiten
Menu (Sondermodelle) / …OK …Cancel …
OK …Cancel …
select (zusatzausstattung) / ausstattung.add(zusatzausstattung)deselect (zusatzausstattung) / ausstattung.remove(zusatzausstattung)enterRabatt(höhe) / rabattprozent := höhe
Fahrzeuganlegen
OK …Cancel …
Neu
Fahrzeugändern
Ändern
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 32
Aktivitätsdiagramm als Testspezifikationsmodell
• Modelliert werdeno Anreiz- und Prüfschritte
o Eingangs- und erwartete Ausgangsdaten
o Abfolgen und Alternativen
o Vor- und Nachbedingungen
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 17
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 33
Traceability!
• Modelliert werdeno Anforderungen und ihre
o Beziehungen zu Tests
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 34
Priorisierung!
• Modelliert werdeno Wichtigkeit
o Risiko
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 18
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 35
Drei Ausprägungen von MBT
Modellbasiertes Testen
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 36
Modellorientiertes Testen
• Nutzung von Modellen als Leitfaden und Diskussions-grundlage
o Anforderungen werden mit Modellen verdeutlicht
o Tests werden ggf. mit Modellen präzisiert
• Testaktivitäten / Modellierung während der Entwicklung!
o Allg. V-Modell oder W-Modell
o Dadurch frühzeitige Fehlerfindung
• Niedrige Einstiegsschwelleo Grundkenntnisse der Modellierung
(Modelle lesen können)
o Keine Werkzeuge notwendig
Testspezifikation(-smodell)
Testbasis(-modell)
Testprotokoll TestprotokollSUT
Tester
TestroboterTester
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 19
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 37
Modellorientierter Testprozess
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
= MBT-Einsatz
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 38
Modellgetriebenes Testen
• Testartefakte ganz oder teilweise aus Modellen generiert
o Testbasismodell und Testspezifikationsmodell
o Testskripte und -daten
• Testaktivitäten / Modellierung während der Entwicklung!
o Passt gut zu modellgetriebener Softwareentwicklung
• Höhere Einstiegsschwelleo Gute Modellierungskenntnisse bei
Testern (Testanalysten)
o Werkzeugkette notwendig
o Konfig.-Mngmnt./Versionierungvon Modellen und Tests …
Testspezifikations-modell
Testbasis-modell
Testprotokoll TestprotokollSUT
Generator
TestroboterTester
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 20
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 39
Modellgetriebener Testprozess
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
= MBT-Einsatz
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 40
Modellzentrisches Testen
• Modelle im Mittelpunkt des Testprozesses
o Nicht nur für Testanalyse, -entwurf, -realisierung und -durchführung, sondern auch für
o Testplanung, -auswertung, -steuerung und Testbericht
• Auch die Ergebnisse der Testaktivitäten i.W. als Modelle
o Keine Medienbrüche mehr
• Werkzeug-Einbahnstraße aufbrechen
o Ergebnisse in die Modelle zurückführen
o Als „Feedback-Schleife“ oder „-Kette“
Testspezifika-tionsmodell
Testbasis-modell
Generator
Testprotokoll TestprotokollSUT
TestroboterTester
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 21
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 41
Modellzentrischer Testprozess
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
Testanalyse und Testentwurf
Testrealisierung undTestdurchführung
Testauswertung und Bericht
Abschluss der Testaktivitäten
Start
Ende
Testplanung und -steuerung
= MBT-Einsatz
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 42
Testmanagement Testanalyse und -Entwurf Testrealisierung Testdurchführung,-auswertung und
-bericht
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 22
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 43
So, why should I use models in Testing?
• Fehlerwirkungen nachweisen
• Die Qualität bestimmen
• Vertrauen in das Produkt erhöhen
• Fehlerwirkungen vorbeugen
• Automatisierung auf frühe Aktivitäten des Testprozesses ausdehnen – insbesondere Testanalyse und Testentwurf sowie Testrealisierung
• Mit flexiblen Modellen schneller neue Tests z.B. bei Anforderungsänderungen generieren können
• Mehr und bessere Tests für komplexe und damit fehlerträchtigere Systemteile generieren
• Mehr und bessere Tests für häufig verwendete oder mit hohen Ausfallkosten verbundene Funktionen generieren
Mehr und besser Testen!
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 44
Use models in Testing!
MBTconf 11 © 2011 M. Winter
Why should I use models in testing? 23
© 2011 Prof.Dr. Mario Winter, FH KölnMBTconf 11 Why should I use models in testing?Folie 45
… immer noch Fragen?
Prof. Dr. Mario Winter
Fachhochschule Köln - Campus GummersbachInstitut für InformatikSteinmüllerallee 1, D-51643 Gummersbach
eMail [email protected] www.gm.fh-koeln.de/~winter
Fon (+49)2261/8196-6285 Fax (+49)2261/8196-76285
Prof. Dr. Mario Winter
Fachhochschule Köln - Campus GummersbachInstitut für InformatikSteinmüllerallee 1, D-51643 Gummersbach
eMail [email protected] www.gm.fh-koeln.de/~winter
Fon (+49)2261/8196-6285 Fax (+49)2261/8196-76285