Model Based Testing: Why should I Use Models in Testing?
- 1. MBTconf 11 © 2011 M. Winter
Why should I use models in testing?
MBTconf 11
1
Why should I use models in testing?
MBTConf, Munich, 29. Juni 2011
Prof.Dr. Mario Winter Fachhochschule Köln
Should I use models in Testing?
MBTconf 11 Folie 2 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 1
- 2. MBTconf 11 © 2011 M. Winter
Should I use models in Testing?
Testing Software Design Modeled by Finite-State Machines
TSUN S. CHOW
IEEE Transactions on Software Engineering
VOL. SE-4, NO. 3, MAY 1978
MBTconf 11 Folie 3 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Should I use models in Testing?
The Art of Software Testing
Glenford Myers
Wiley&Sons, NY, 1979
MBTconf 11 Folie 4 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 2
- 3. MBTconf 11 © 2011 M. Winter
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. Beizer, B.: Software Testing Techniques. 2nd Ed., Van Nostrand Reinhold, 1990
• Test design must be based on both general and specific models.
Binder, R.: Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, 1999
MBTconf 11 Folie 5 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
So, should I use models in Testing?
MBTconf 11 Folie 6 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 3
- 4. MBTconf 11 © 2011 M. Winter
I should use models in Testing!
MBTconf 11 Folie 7 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing?
MBTconf 11
8
Why should I use models in testing?
MBTConf, Munich, 29. Juni 2011
Prof.Dr. Mario Winter Fachhochschule Köln
Why should I use models in testing? 4
- 5. MBTconf 11 © 2011 M. Winter
Wordle über: Rossner et al.: Basiswissen Modellbasierter Test,
dpunkt.verlag, Heidelberg, 2010, S. 3–9 (http://www.wordle.net/create)
MBTconf 11 Folie 9 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Was ist ein Modell?
MBTconf 11 Folie 10 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 5
- 6. MBTconf 11 © 2011 M. Winter
Drei Modell-Kriterien
• Abbildung
o 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
• Pragmatik
o 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
MBTconf 11 Folie 11 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Ist modellieren schwer?
• Wie erkennen und verstehen wir die Welt?
• Sinnliche Wahrnehmung
o Schemen- bzw. Bild-(Wieder-)Erkennung
o Szenen- und Bildzerlegung Teile und Herrsche!
• Benennung
o Objekterkennung
o Symbolerzeugung
• Prädikatoren- und Begriffsbildung
o Eigenschaften und Fähigkeiten des zu
identifizierenden Objektes bzw. dessen
Beziehungen zu anderen Objekten werden
identifiziert;
o Begriffsbildung, Abstraktion
MBTconf 11 Folie 12 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 6
- 7. MBTconf 11 © 2011 M. Winter
Selbsttest
http://img.fotocommunity.com/photos/7984059.jpg
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
MBTconf 11 Folie 13 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Modellieren einer Operation/Methode
MBTconf 11 Folie 14 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 7
- 8. MBTconf 11 © 2011 M. Winter
Anweisung,
Modellieren einer Operation/Methode
Komplex, Verzweigung,
formal, ... Schleife, ...
Kontrollfluss!
MBTconf 11 Folie 15 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Was ist also Modellierung?
untersucht etwas tun kann
jemand ein Original
jemand
erstellt damit
ein Modell
MBTconf 11 Folie 16 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 8
- 9. MBTconf 11 © 2011 M. Winter
Modell der Modellierung
intendiert
Subjekt S Original O Adressat A
antizipiert / handelt /
beobachtet beobachtet
beschreibt /
erstellt interpretiert
schreibt vor
unter P unter P
Modell M
Pragmatik P
Mahr, B.: Die Informatik und die Logik der Modelle. Informatik-Spektrum 32(3), 2009
MBTconf 11 Folie 17 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Wordle über: Rossner et al.: Basiswissen Modellbasierter Test,
dpunkt.verlag, Heidelberg, 2010, S. 3–9 (http://www.wordle.net/create)
MBTconf 11 Folie 18 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 9
- 10. MBTconf 11 © 2011 M. Winter
Was ist eigentlich Testen?
Nach: [ISTQB CT Glossar 2010]
• 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 Abnahme-
test
Analyse Systemtest
ka g &
Ko
n
r if i u n
tio
n
ns Architektur Integrationstest
V e li d i e r
t
tr u
k
k tii
Va
o
on
Entwurf Komponenten-
test
Implementation
MBTconf 11 Folie 19 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Ziele und Kunden des Testens
• Fehlerwirkungen nachweisen
Benutzer
Auftraggeber
• Die Qualität bestimmen
Marketing/
Produktmanagement
• Vertrauen in das Produkt erhöhen
Projektmanagement
• Fehlerwirkungen vorbeugen
Entwicklung
MBTconf 11 Folie 20 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 10
- 11. MBTconf 11 © 2011 M. Winter
Testautomatisierung heute
Planung & Steuerung
Test
Phasen Analyse & Realisierung Durchführung Auswertung
Design & Bericht
Test
System- fall
Test Test Manuelle
fall
Test
Produkt fall
Spez. Durchführung
Anfor- Test
derungen Test Bericht
Manage- &
Metriken
ment Konfigurations- Test
RE System management- Proto-
tools werkzeug koll
Fehler-
management-
werkzeug
Test Skript Automatische
Erzeugung Durchführung
Testdurchführungswerkzeug
MBTconf 11 Folie 21 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Testautomatisierung im Testprozess
Start
Testplanung und -steuerung
Testanalyse und
Testentwurf
Testrealisierung und
Testdurchführung
Testauswertung
und Bericht
Abschluss der
Testaktivitäten
Ende
MBTconf 11 Folie 22 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 11
- 12. MBTconf 11 © 2011 M. Winter
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?
MBTconf 11 Folie 23 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Wordle über: Rossner et al.: Basiswissen Modellbasierter Test,
dpunkt.verlag, Heidelberg, 2010, S. 3–9 (http://www.wordle.net/create)
MBTconf 11 Folie 24 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 12
- 13. MBTconf 11 © 2011 M. Winter
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.
Marciniak, J. J.: Encyclopedia of Software Engineering. John Wiley & Sons, 2002
• 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
Utting, M.; Legeard, B.: Practical Model-Based Testing – A Tools Approach. Morgan Kaufmann, 2007
MBTconf 11 Folie 25 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
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 Folie 26 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 13
- 14. MBTconf 11 © 2011 M. Winter
Modellierung im Test
Testdurchführung
Tester oder
Tester Testautomat
antizipiert stimuliert /
beobachtet
SUT
beschreibt
erstellt interpretiert
Testverhalten
Test-
modell
Pragmatik Testen
MBTconf 11 Folie 27 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
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 Folie 28 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 14
- 15. MBTconf 11 © 2011 M. Winter
Fallbeispiel – Car-Konfigurator
MBTconf 11 Folie 29 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Zustandsdiagramm als Umgebungsmodell
sc CarKonfig - Angestellter
0,05
Sprache ändern
0,95 Sondermodell
0,2 wählen
0,05 0,95
0,05
1 0,8 0,4
Fahrzeug Zusatzausstattung 0,05
CarKonfig starten
konfigurieren wählen
0,05
0,05 0,95
0,95
0,35
0,1 0,95
Wunsch drucken
Einstellungen 0,05
ändern
MBTconf 11 Folie 30 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 15
- 16. MBTconf 11 © 2011 M. Winter
Zustandsdiagramm als Testbasismodell
select (zusatzausstattung) / ausstattung.add(zusatzausstattung)
deselect (zusatzausstattung) / ausstattung.remove(zusatzausstattung)
enterRabatt(höhe) / rabattprozent := höhe selectFahrzeug(fahrzeug) / typ := fahrzeug
Menu (Fahrzeuge) / showFahrzeugeBearbeiten;
oldtyp := typ
/ holeDaten MainWindow FahrzeugeBearbeiten
entry / berechnePreis entry / zeigeFahrzeugPreis(typ)
exit / speichereDaten …
…
OK / hideFahrzeugeBearbeiten
Ende Cancel / hideFahrzeugeBearbeiten;
holeDaten Ändern
OK …
Cancel …
Menu (Zubehör) / … OK …
Neu
OK … Menu (Sondermodelle) / … Cancel …
Cancel …
Zubehör Sondermodelle Fahrzeug Fahrzeug
bearbeiten bearbeiten anlegen ändern
MBTconf 11 Folie 31 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Aktivitätsdiagramm als Testspezifikationsmodell
• Modelliert werden
o Anreiz- und Prüfschritte
o Eingangs- und erwartete Ausgangsdaten
o Abfolgen und Alternativen
o Vor- und Nachbedingungen
MBTconf 11 Folie 32 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 16
- 17. MBTconf 11 © 2011 M. Winter
Traceability!
• Modelliert werden
o Anforderungen und ihre
o Beziehungen zu Tests
MBTconf 11 Folie 33 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Priorisierung!
• Modelliert werden
o Wichtigkeit
o Risiko
MBTconf 11 Folie 34 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 17
- 18. MBTconf 11 © 2011 M. Winter
Drei Ausprägungen von MBT
Modellbasiertes Testen
MBTconf 11 Folie 35 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Modellorientiertes Testen
Testbasis
• Nutzung von Modellen als (-modell)
Leitfaden und Diskussions-
grundlage
o Anforderungen werden mit Tester
Modellen verdeutlicht
o Tests werden ggf. mit Modellen
präzisiert
• Testaktivitäten / Modellierung Testspezifikation
während der Entwicklung! (-smodell)
o Allg. V-Modell oder W-Modell
o Dadurch frühzeitige Fehlerfindung
• Niedrige Einstiegsschwelle Tester Testroboter
o Grundkenntnisse der Modellierung
(Modelle lesen können)
o Keine Werkzeuge notwendig
Testprotokoll SUT Testprotokoll
MBTconf 11 Folie 36 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 18
- 19. MBTconf 11 © 2011 M. Winter
Modellorientierter Testprozess
Start
Testplanung und -steuerung
Testanalyse und
Testentwurf
Testrealisierung und
Testdurchführung
Testauswertung
und Bericht
Abschluss der
Testaktivitäten
Ende
= MBT-Einsatz
MBTconf 11 Folie 37 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Modellgetriebenes Testen
Testbasis-
• Testartefakte ganz oder teilweise modell
aus Modellen generiert
o Testbasismodell und
Testspezifikationsmodell
Generator
o Testskripte und -daten
• Testaktivitäten / Modellierung
während der Entwicklung!
o Passt gut zu modellgetriebener Testspezifikations-
Softwareentwicklung modell
• Höhere Einstiegsschwelle
o Gute Modellierungskenntnisse bei
Testern (Testanalysten) Testroboter
Tester
o Werkzeugkette notwendig
o Konfig.-Mngmnt./Versionierung
von Modellen und Tests …
Testprotokoll SUT Testprotokoll
MBTconf 11 Folie 38 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 19
- 20. MBTconf 11 © 2011 M. Winter
Modellgetriebener Testprozess
Start
Testplanung und -steuerung
Testanalyse und
Testentwurf
Testrealisierung und
Testdurchführung
Testauswertung
und Bericht
Abschluss der
Testaktivitäten
Ende
= MBT-Einsatz
MBTconf 11 Folie 39 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Modellzentrisches Testen
Testbasis-
• Modelle im Mittelpunkt des modell
Testprozesses
o Nicht nur für Testanalyse, -entwurf,
-realisierung und -durchführung,
Generator
sondern auch für
o Testplanung, -auswertung,
-steuerung und Testbericht
• Auch die Ergebnisse der Testspezifika-
Testaktivitäten i.W. als Modelle tionsmodell
o Keine Medienbrüche mehr
• Werkzeug-Einbahnstraße
aufbrechen Testroboter
Tester
o Ergebnisse in die Modelle
zurückführen
o Als „Feedback-Schleife“ oder
„-Kette“
Testprotokoll SUT Testprotokoll
MBTconf 11 Folie 40 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 20
- 21. MBTconf 11 © 2011 M. Winter
Modellzentrischer Testprozess
Start
Testplanung und -steuerung
Testanalyse und
Testentwurf
Testrealisierung und
Testdurchführung
Testauswertung
und Bericht
Abschluss der
Testaktivitäten
Ende
= MBT-Einsatz
MBTconf 11 Folie 41 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Testmanagement Testanalyse und -Entwurf Testrealisierung Testdurchführung,
-auswertung und
-bericht
MBTconf 11 Folie 42 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 21
- 22. MBTconf 11 © 2011 M. Winter
So, why should I use models in Testing?
Mehr und besser Testen!
• Fehlerwirkungen nachweisen • Automatisierung auf frühe Aktivitäten des
Testprozesses ausdehnen – insbesondere
Testanalyse und Testentwurf sowie
Testrealisierung
• Die Qualität bestimmen
• Mit flexiblen Modellen schneller neue Tests
z.B. bei Anforderungsänderungen generieren
können
• Vertrauen in das Produkt erhöhen • Mehr und bessere Tests für komplexe und
damit fehlerträchtigere Systemteile generieren
• Fehlerwirkungen vorbeugen • Mehr und bessere Tests für häufig verwendete
oder mit hohen Ausfallkosten verbundene
Funktionen generieren
MBTconf 11 Folie 43 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Use models in Testing!
MBTconf 11 Folie 44 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 22
- 23. MBTconf 11 © 2011 M. Winter
… immer noch Fragen?
Prof. Dr. Mario Winter
Prof. Dr. Mario Winter
Fachhochschule Köln - -Campus
Fachhochschule Köln Campus
Gummersbach
Gummersbach
Institut für Informatik
Institut für Informatik
Steinmüllerallee 1, D-51643 Gummersbach
Steinmüllerallee 1, D-51643 Gummersbach
eMail mario.winter@fh-koeln.de
eMail mario.winter@fh-koeln.de
Web www.gm.fh-koeln.de/~winter
Web www.gm.fh-koeln.de/~winter
Fon (+49)2261/8196-6285
Fon (+49)2261/8196-6285
Fax (+49)2261/8196-76285
Fax (+49)2261/8196-76285
MBTconf 11 Folie 45 Why should I use models in testing? © 2011 Prof.Dr. Mario Winter, FH Köln
Why should I use models in testing? 23