Upload
truongngoc
View
216
Download
0
Embed Size (px)
Citation preview
Modellbasiertes Testen vs.
Testgetriebene Modellierung
Dr.$Baris$Güldali
06.10.2015,$MESCONF/München
Agenda
• Teil$1:$Modelle$!" Testfälle
• Teil$2:$Was$bedeutet$das$Manifest$für$Tester?$
MESCONF$J Modellbasiertes$Testen (
Model4based development
MESCONF$J Modellbasiertes$Testen )
Systemspecification
Componentspecification
Subsystemspecification
Integratedsystem
Components
Subsystems
Requirements Deliverable
Code:generationImplementation/Integration:
Model:refinement
M 4P TaX ? BThhm ( ,N
Quality assurance
MESCONF$J Modellbasiertes$Testen
Systemspecification
Componentspecification
Subsystemspecification
Integratedsystem
Components
Subsystems
Requirements Deliverable
ValidationDebugging
Verifikation
:PQT] eX r XRWbXVT]beXRZT[b2
:PQT] eX rSPaDXRWbXVT T]beXRZT[b2
M 4P TaX ? BThhm ( ,N
Unit:tests
Integration:tests
System:tests
Acceptance:tests
Verifikation vs. Validation
MESCONF$J Modellbasiertes$Testen
Bagdanov::Working: together:E Formal:Methods:and:Testing,:2003
Allgemeines Vorgehen
MESCONF$J Modellbasiertes$Testen ,
EbcQEbcQ
FTab 5PaTa ] cb 3RbcP[ DTac[b 5 P Pb
7f TRbTS Acb cb
# BPaa$ 8PX[
FTab A PR[T] cb
FTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTa# BPaa
$ 8PX[
# BPaa
# BPaa
$ 8PX[
B X]b U 5 ]b [ B 5!0]bT UPRT bWPb dXSTa bWT
bTab QYTRb eXbW SPbP
B X]b U AQaT dPbX ] B A!0]bT UPRT bWPb P[[ ea b QaT dT
P]S TR S bWT cb cba U bWT bTabQYTRb
EbcQ
FTab AQYTRb
M9T P] FTabX]V 4 P SN
Prinzipien des Testens
MESCONF$J Modellbasiertes$Testen -
kB V P bTabX]V RP] QT caTS b aW e bWT TaT]RT U QcVa Qcb]TdT b aW e bWTX PQaT]RT j
7SaVT I 6XYZab P /-
kFTabT] T WnWb SPa HT b PcT] X] SXT CcP[Xblb STa EgabT a eT]]eT]XVT ST ZTX]T 8TW[T VTUc]ST] eT ST] j
9F4 ( -
Manuelles Testen
MESCONF$J Modellbasiertes$Testen .
EbcQEbcQ
FTab 5PaTa ] cb 3RbcP[ DTac[b 5 P Pb
7f TRbTS Acb cbFTab A PR[T] cb
FTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTa
EbcQ
FTab AQYTRb
?T]bP[Ta? ST[[
FTab dT SXRb
s PcUeT]SXVs UTW[T P]Ul[[XV
M9T P] FTabX]V 4 P SN
Klassische Testautomatisierung
MESCONF$J Modellbasiertes$Testen /
EbcQEbcQ
FTab 5PaTa ] cb 3RbcP[ DTac[b 5 P Pb
7f TRbTS Acb cbFTab A PR[T] cb
FTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab ER X ba
EbcQ
FTab AQYTRb
?T]bP[Ta? ST[[
FTab dT SXRb
s ERW]T[[ X] ST 3caUoW c]Vs 3cUeT]SXV X] ST 7 abT[[c]Vs 3cUeT]SX]V X] ST IP bc]V M9T P] FTabX]V 4 P SN
Küchenroboter Moley
MESCONF$J Modellbasiertes$Testen
ee
eSX
VXbP
[bT]
SaR
Capture/Replay4Testautomatisierung
MESCONF$J Modellbasiertes$Testen
EbcQEbcQ
FTab 5PaTa ] cb 3RbcP[ DTac[b 5 P Pb
7f TRbTS Acb cbFTab A PR[T] cb
FTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab 5PaTaFTab ER X ba
EbcQ
FTab AQYTRb
FTab dT SXRb
s ERW]T[[ X] ST 3caUoW c]Vs ERW]T[[ X] ST 7 abT[[c]Vs 3cUeT]SX]V X] ST IP bc]Vs XRWb U[TfXQT[
M9T P] FTabX]V 4 P SN
Find the bug!
MESCONF$J Modellbasiertes$Testen (
? ST[[T Zn]]T] WT[UT]
Wbb a0 eee g cbcQT R ePbRW2d1 J/ U9dPS
Modellbasiertes Testen
s?7E5A 8 ? ST[[QPaXT bTa FTabT]
3]U ST c]VT] E ThXUXZPbX ]
= XbT XT] hcFTabPcaePW[ FTab QYTZb
FTabT VTQ]XaaT
?T]bP[Ta? ST[[
MB TbaRW]T Tb P[ N
FTabUl[[TFTabUl[[TFTabUl[[T
)
Modellbasiertes Testen
s?7E5A 8 ? ST[[QPaXT bTa FTabT]
3]U ST c]VT] E ThXUXZPbX ]
= XbT XT] hcFTabPcaePW[ FTab QYTZb
FTabT VTQ]XaaT
MB TbaRW]T Tb P[ N
FTabUl[[TFTabUl[[TFTabUl[[T
? ST[[
s HP XP]h X] FTabUl[[T]s EgabT PbXaRWT 3QSTRZc]Vs ?nV[XRWZTXbT] hc 3cb PbXaXT c]Vs 7X]VTQTbbTbTa A PZT[
Beispiel
MESCONF$J Modellbasiertes$Testen
Procedure Test_Script() {
//preconditionset_state(start);
//bodya();
b();c();
//postassert_state(1);
}
var state;
Procedure a() {//code for event a
}Procedure b() {//code for event b
}Procedure c() {//code for event c
}
ET[TZbX ]aZ XbT XT] Uo FTabUl[[Thc ? ST[[PQSTRZc]V
ST XdT
X]d ZT
B[PbbU c]PQWl]VXVT STB[PbbU a ThXUXaRWT FTabUl[[T
Test_Case {
a " b " c " assert(1)}
MBT Taxonomy
MESCONF$J Modellbasiertes$Testen ,MGbbX]V ? B TbaRW]T 3 P]S TVTP S 4 ( (! 3 bPf ] g U ST[ QPaTS bTabX]V P PRWTa E Ube FTab HT XU DT[XPQ ((0 (/-p) (N
Quelle der Modelle
MESCONF$J Modellbasiertes$Testen -
3]U ST c]VT]
= XbT XT] hcFTabPcaePW[ FTab QYTZb
E ThXUXZPbX ]
? ST[[
FTabT VTQ]XaaT
9T TX]aP T ? ST[[TET P PbT ? ST[[T
? ST[[T PcaDTdT aT 7]VX]TT X]VFTabVTb XTQT]T
? ST[[T
= QX]XT bTa ? ST[[= QX]XT bT ? ST[[T
FTabUl[[TFTabUl[[TFTabUl[[T
Testgetriebene Modelle
MESCONF$J Modellbasiertes$Testen .
ag]bWTaXhT
T VT
Mll
aZT[
lX]T
]Tb
P[Eg
]bWT
aXhX
]VFT
ab?
ST[a
UFT
ab5
PaTa
(.N
? ST[[
Technische$
Universität$
Tampere
Testgetriebene Modelle
MESCONF$J Modellbasiertes$Testen /
KcTU
T]V
LWP]
V0FT
ab6
XdT]
?ST
[X]V
U?
ST[6
XdT]
6Td
T[T]
b(
:XVW [TdT[ ST[X]V
?E5
e [TdT[ ST[X]V
EgabTP RWXbTRbc T
?E5?E5
EX c[PbX ]
EcQagabTSTaXV]
EX c[PbX ]
EgabT ST[
PaaTS
PaaTS
UPX[TS
8c bWT PRbXdXbXTa
Ausprägung der Automatisierung
• ModellJorientiertes$Testen
– Modelle$als$Kommunkationsmittel
– manueller$Testfallentwurf
– manuelle/automatisierte$Testdurchführung$möglich
• ModellJgetriebenes$Testen
– Transformierbare$Modelle
– automatisierter$Testfallentwurf
– oft$automatisierte$Testdurchführung
• ModellJzentriertes$Testen
– ausführbare$Modelle$als$zentrale$Artefakte
– durchgehende$Automatisierung
– Testfälle$und$Testergebnisse$sind$Sichten$des$Modells
MESCONF$J Modellbasiertes$Testen (
M4PaXaeXaaT] ?4FN
Anforderungen an die Modelle
• Ausprägungen
– ModellJorientiertes$Testen
– ModellJgetriebenes$Testen
– ModellJzentriertes$Testen
• Allg.$Anforderungen$(IEEE$830)
– Korrektheit
– Eindeutigkeit
– Vollständigkeit
– Konsistenz
– Gewichtung
– Validierbarkeit
– Änderbarkeit
– Nachverfolgbarkeit
MESCONF$J Modellbasiertes$Testen (
• Testbarkeitsanforderungen$(Binder)
– Steuerbarkeit$(PoC)
– Beobachtbarkeit$(PoO)
– Variabilität
– Entscheidbarkeit
• Schwergewichtig
– Hoher$initial$Aufwand$zur$Erstellung$der$Modelle
– Hoher$laufender$Aufwand$für$die$Wartung/Anpassung
– Neue$Skills$von$Tester$notwendig
– Werkzeuge$/$Wekzeugintegration
• Ein$Manifest$für$MBT$fällig?$:)
MESCONF$J Modellbasiertes$Testen ((
Hauptkritik an MBT
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen ()
Was$bedeutet$
es$für$Tester?$
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen (
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
• Tester$und$Endnutzer
• Sprachen$für$Tester
− UML,$UTP
− TTCNJ3
− TDL
− KDT,$BDD$$
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen (
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
• Testmodelle$erstetzen$
Testsuits
• Ermögliche$
Regressionstests
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen (,
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
• Korrektheit
• Vollständigkeit
• Konsistenz$
der$Modelle
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen (-
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
Modelle$und$Testentwurf$
unmittelbar$nach$
Anforderungsdefinition
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen (.
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
• ModellJgetriebenes$Testen
• ModellJzentriertes$Testen
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen (/
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
• Übernehme$Werkzeuge$
der$Entwickler
• Integration$mit$
Testwerkzeugen
MESCONF Manifest
MESCONF$J Modellbasiertes$Testen )
INTEGRIERE$STAKEHOLDER
STREBE$LANGLEBIGE$MODELLEN$AN
ERSTELLE$VALIDIERBARE,$TRANSFORMIERBARE$
UND$AUSFÜHRBARE$MODELLE
FRONTJLOADING
VERMEIDE$DUPLIKATION$UND$UNNÖTIGE$
WIEDERHOLUNGEN
MACHE$MODELIERUNG$LEICHT$ZUGÄNGLICH
ETABLIERE$EINE$MODELLIERUNGSKULTUR
• “Was$du$nicht$modellieren$
kannst,$kannst$du$nicht$
Testen”
• ISTQBJSchulung$für$MBT
Literaturempfehlung
• Einstieg
– Objektspektrum
– Buch:$Basiswissen$MBT
• Expert
– Buch:$Practical MBT
– Buch:$ModelJDriven$Testing
MESCONF$J Modellbasiertes$Testen )
Testen bleibt komplex!
MESCONF$J Modellbasiertes$Testen )(
“It$is$far$better$to$improve$the$effectiveness of$testing$first$than$to$improve$the$efficiency of$poor$testing.$Automating$chaos$just$gives$faster$chaos.”$
(Fewster$1999)
www.softwaretest4umfrage.de
MESCONF$J Modellbasiertes$Testen ))
FTX[]PW T QXa 6ThT QT (
MESCONF$J Modellbasiertes$Testen )
Dr.$Baris$Güldali
sJlab$– Software$Quality$Lab
Universität$Paderborn
Zukunftsmeile$1,$33102$Paderborn
Tel.:$(05251)$605392
http://sJlab.upb.de
Vielen Dank für IhreAufmerksamkeit!
MBT Werkzeuge: Beispiele
MESCONF$J Modellbasiertes$Testen
Testfallgenerator UnterstützterModelltyp
Hersteller
TestBench UML imbus
TestDesigner UML SmartTesting
Qtronic UML$+$Java/C# Conformiq
Reactis Simulink/Stateflow Reactive$System
Rational$Statemate/
Rhapsody
UML,$SysML IBM
MBTsuite UML AFRA/sepp.med
)
Liste$evtl.$veraltet