1
Model-Based Testing
Alexander Pretschner TU Kaiserslautern and Fraunhofer IESE Saarbrücken, 31/05/2010
Model-Based Testing, 31/5/2010, Alexander Pretschner
2
Model-Based Testing Alexander Pretschner TU Kaiserslautern and - - PDF document
Model-Based Testing Alexander Pretschner TU Kaiserslautern and Fraunhofer IESE Saarbrcken, 31/05/2010 Motivation The oracle problem Automatically deriving tests that include fine-granular expected output information: more than
Model-Based Testing, 31/5/2010, Alexander Pretschner
2
Model-Based Testing, 31/5/2010, Alexander Pretschner
3
Model-Based Testing, 31/5/2010, Alexander Pretschner
4
Model-Based Testing, 31/5/2010, Alexander Pretschner
5
Model-Based Testing, 31/5/2010, Alexander Pretschner
6
Model-Based Testing, 31/5/2010, Alexander Pretschner
7
1 2 3 4
run 4 3 2 1 system 1 4 3 2 model test case 4 3 2 1 test execution
Model-Based Testing, 31/5/2010, Alexander Pretschner
8
Model-Based Testing, 31/5/2010, Alexander Pretschner
9
test cases test cases concreti- zation concreti- zation comp- arison comp- arison
card specific data (keys, PINs) card specific data (keys, PINs)
Slide: Jan Philipps
Model-Based Testing, 31/5/2010, Alexander Pretschner
10
Taken from Buehler, Wegener: Evolutionary Functional Testing of an Automated Parking System, CCCT’03
Model-Based Testing, 31/5/2010, Alexander Pretschner
11
Utting, Pretschner, Legeard: A taxonomy of MBT, technical report 04/2006, University of Waikato, May 2006
Model-Based Testing, 31/5/2010, Alexander Pretschner
12
Model-Based Testing, 31/5/2010, Alexander Pretschner
13
Model-Based Testing, 31/5/2010, Alexander Pretschner
14
Model-Based Testing, 31/5/2010, Alexander Pretschner
15
Model-Based Testing, 31/5/2010, Alexander Pretschner
16
Utting, Pretschner, Legeard: A taxonomy of MBT, technical report 04/2006, University of Waikato, May 2006
Model-Based Testing, 31/5/2010, Alexander Pretschner
17
Model-Based Testing, 31/5/2010, Alexander Pretschner
18
► Like “abstractions” in programming languages:
► No or “irrelevant” loss of information
► Separation of concerns, orthogonality ► Matlab-Simulink-like ► Block diagrams: architecture and behavior ► 1:1 representation of a differential equation ► Encapsulation of concrete computation ► Helpful for MBT but not sufficient if validation of model is done by
► Is it easier to test a Java program than to test the corresponding
Model-Based Testing, 31/5/2010, Alexander Pretschner
19
Model-Based Testing, 31/5/2010, Alexander Pretschner
20
Model-Based Testing, 31/5/2010, Alexander Pretschner
21
Model-Based Testing, 31/5/2010, Alexander Pretschner
22
Model-Based Testing, 31/5/2010, Alexander Pretschner
23
Model-Based Testing, 31/5/2010, Alexander Pretschner
24
Model-Based Testing, 31/5/2010, Alexander Pretschner
25
Philipps et al., Model-based Test Case Generation for Smart Cards, Proc. FMICS’03
Model-Based Testing, 31/5/2010, Alexander Pretschner
26
Model-Based Testing, 31/5/2010, Alexander Pretschner
27
Model-Based Testing, 31/5/2010, Alexander Pretschner
28
Model-Based Testing, 31/5/2010, Alexander Pretschner
29
Test sequences Test sequences Concreti- zation Concreti- zation Com pa- rison Com pa- rison
MSE: Public Key and Digest of CA
Card specific data ( keys, PI Ns) Card specific data ( keys, PI Ns)
Slide: Jan Philipps
Model-Based Testing, 31/5/2010, Alexander Pretschner
30
Model-Based Testing, 31/5/2010, Alexander Pretschner
31
Model-Based Testing, 31/5/2010, Alexander Pretschner
32
Model-Based Testing, 31/5/2010, Alexander Pretschner
33
► Generation: no redundancy → no verification ► “exceptions” don’t occur—model is valid, generator as well (or is it?) ► Tests for ► Code generators (simulation and production)—MDD ► Assumptions on the environment ► Possibly performance/stress ► Exceptions ► Models valid → that‘s alright! ► Different flavor of MBT ► No “double check” model ⇔ implementation ► Abstraction levels ► Test and development models ► Model as basis for manual implementation
Model-Based Testing, 31/5/2010, Alexander Pretschner
34
Model-Based Testing, 31/5/2010, Alexander Pretschner
35
Model-Based Testing, 31/5/2010, Alexander Pretschner
36
Model-Based Testing, 31/5/2010, Alexander Pretschner
37
Model-Based Testing, 31/5/2010, Alexander Pretschner
38
Model-Based Testing, 31/5/2010, Alexander Pretschner
39
Model-Based Testing, 31/5/2010, Alexander Pretschner
40
Model-Based Testing, 31/5/2010, Alexander Pretschner
41
Model-Based Testing, 31/5/2010, Alexander Pretschner
42
Model-Based Testing, 31/5/2010, Alexander Pretschner
43
Model-Based Testing, 31/5/2010, Alexander Pretschner
44
Model-Based Testing, 31/5/2010, Alexander Pretschner
45
Model-Based Testing, 31/5/2010, Alexander Pretschner
46
Model-Based Testing, 31/5/2010, Alexander Pretschner
47
Model-Based Testing, 31/5/2010, Alexander Pretschner
48
Model-Based Testing, 31/5/2010, Alexander Pretschner
49
Model-Based Testing, 31/5/2010, Alexander Pretschner
50
Model-Based Testing, 31/5/2010, Alexander Pretschner
51
Model-Based Testing, 31/5/2010, Alexander Pretschner
52
Model-Based Testing, 31/5/2010, Alexander Pretschner
53
Model-Based Testing, 31/5/2010, Alexander Pretschner
54
Model-Based Testing, 31/5/2010, Alexander Pretschner
55
Model-Based Testing, 31/5/2010, Alexander Pretschner
56
Model-Based Testing, 31/5/2010, Alexander Pretschner
57
Model-Based Testing, 31/5/2010, Alexander Pretschner
58
► Don’t rely on structural criteria only! ► Large state spaces, big problems, anyway! ► Abstract models for testing for exceptions might be cost-effective ► Run tests in the background ► Continuous testing if at no cost ► Model-Based Testing does find additional failures ► But it’s not entirely clear if these wouldn’t also have been found as
► Model in itself definitely helps (XP: tests are spec/model) ► Not necessarily automated generation ► Plenty of other low-level problems in the real world
Model-Based Testing, 31/5/2010, Alexander Pretschner
59
Model-Based Testing, 31/5/2010, Alexander Pretschner
60
Model-Based Testing, 31/5/2010, Alexander Pretschner
61
Model-Based Testing, 31/5/2010, Alexander Pretschner
62
►
Reactive Systems”, Springer Verlag, 2005
► S. Sandberg, “Homing and Synchronizing Sequences”, chapter 1 in [Broy et al.’05] ► M. Krichen, “State Identification”, chapter 2 in [Broy et al.’05] ► H. Björklund, “State Verification, chapter 3 in [Broy et al.’05] ► A. Gargantini, “Conformance Testing”, chapter 4 in [Broy et al.’05] ► A. Pretschner, J. Philipps, “Methodological Issues in Model-Based Testing”, chapter
10 in [Broy et al.’05]
► L. Lucio and M. Samer, “Technology of Test-Case Generation”, chapter 12 in [Broy
et al.’05]
►
Zölch, T. Stauner: One Evaluation of Model-Based Testing and its Automation, Proc. ICSE 2005, pp. 392—401, 2005
►
standard conformance, IBM Systems Journal 41 (1):89-110, 2002
►
specifications: GSM 11.11 standard case-study, SW Practice and Experience 34 (10):915 – 948, 2004
►
based test generation tools, IBM Systems Journal 45(3):501-514, 2006