660 likes | 770 Views
Model-Based Testing. Ed Brinksma. University of Twente Dept. of Computer Science Formal Methods & Tools group Enschede The Netherlands. ARTIST2 Summer School Nässlingen. Contents. introduction & background testing pre-orders input/output & quiescence ioco implementation relation
E N D
Model-Based Testing Ed Brinksma University of TwenteDept. of Computer ScienceFormal Methods & Tools groupEnschedeThe Netherlands ARTIST2 Summer School Nässlingen
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 2
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 3
Testing is: important much practiced 30% - 50% of project effort expensive time critical not constructive(but sadistic?) But also: ad-hoc, manual, error-prone hardly theory / research no attention in curricula not cool :“if you’re a bad programmer you might be a tester” Practical problems of testing ? Attitude is changing: • more awareness • more professional Improvements possiblewith formal methods ! ARTIST2 Summer School 4
Types of Testing Level system integration unit Accessibility white box black box robustness performance usability reliability functional behaviour Aspect ARTIST2 Summer School 5
Why not generate test automatically?! specification TTCN testcases TTCN pass testtool implementationunder test fail Test Automation Traditional test automation = tools to execute and manage test cases ARTIST2 Summer School 6
Verification : formal manipulation prove properties performed on model Testing : experimentation show error concrete system Verification and Testing formal world concrete world Verification is only as good as the validity of the model on which it is based Testing can only show the presence of errors, not their absence ARTIST2 Summer School 7
Testing with Formal Methods • Testing with respect to a formal specification • Precise, formal definition of correctness :good and unambiguous basis for testing • Formal validation of tests • Algorithmic derivation of tests :tools for automatic test generation • Allows to define measures expressing coverageand quality of testing ARTIST2 Summer School 8
Challenges of Testing Theory • Infinity of testing: • too many possible input combinations -- infinite breadth • too many possible input sequences -- infinite depth • too many invalid and unexpected inputs • Exhaustive testing never possible: • when to stop testing ? • how to invent effective and efficient test cases with high probability of detecting errors ? • Optimization problem of testing yield and invested effort • usually stop when time is over ...... ARTIST2 Summer School 9
i imps specification test generation S i passesTs correctness criterion implementation relation imp test suite TS exhaustive sound test execution implementation i pass / fail Formal Testing ARTIST2 Summer School 10
specification S IUT conforms-to s correctness criterion implementation IUT Formal Testing : Conformance s SPECS SpecificationIUT Implementation under Test IUT is concrete, physical object Model the physical world But IUT is black box ! ? Assume that model iIUT exists ARTIST2 Summer School 11
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 12
implementationi specifications environmente environmente is e Env. obs ( e, i ) obs (e, s ) Testing Preorders on Transition Systems For all environments e all observations of an implementation i in e should be explained by observations of the specification s in e. ? ? ? ARTIST2 Summer School 13
implementationi specifications environmente environmente Classical Testing Preorder te i tes e E. obs ( e, i )obs (e, s ) LTS(L)Deadlocks(e||s) ARTIST2 Summer School 14
implementationi specifications environmente environmente FP (i) FP (s) FP (p) ={ ,A | p afer refuses A} Classical Testing Preorder te ites e LTS(L). L*. e||ideadlocksafter e||sdeadlocksafter ites e LTS(L). L*. { | e||ideadlocksafter} { | e||sdeadlocksafter} ARTIST2 Summer School 15
te coin coin coin coin They are testing equivalent! coffee coffee tea tea bang bang bang bang coffee tea tea coffee Quirky Coffee Machine[Langerak] Can we distinguish between these machines? ARTIST2 Summer School 16
implementationi specifications environmente environmente Refusal Preorder rf Deadlocks δ(e||i) = {(L{δ})*| e||ideadlocksafter} i rfs e E. obs ( e, i )obs (e, s ) LTS(L{δ}) Deadlocks δ(e||i) e observes with δ deadlock on all alternative actions ARTIST2 Summer School 17
coin coin coin coin coffee coffee tea tea bang bang bang bang rf coin coffee tea tea coffee coffee bang coffee Quirky Coffee MachineRevisited te δ only enabled if coffee is not tester ARTIST2 Summer School 18
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 19
I/O Transition Systems • testing actions are usually directed, i.e. there are inputs and outputs L=LinLoutwith LinLout= • systems can always accept all inputs (input enabledness) for all states s, for all aLin s • testers are I/O systems • output (stimulus) is input for the SUT • input (response) is output of the SUT a ARTIST2 Summer School 20
Quiescence • Because of input enabledness S||T deadlocks iff T produces no stimuli and S no responses. This is known as quiescence • Observing quiescence leads to two implementation relations for I/O systems I and S: • I ioteS iff for all I/O testers T: • Deadlocks(I||T) Deadlocks(S||T) (quiescence) • I iorfS iff for all I/O testers T: • Deadlocksδ(I||T) Deadlocksδ(S||T) (repetitive quiescence) ARTIST2 Summer School 21
coin! quiescent states coffee! coffee? bang! coffee ! iorf coffee? Input-Output QCM states must be saturated with input loops for input enabledness coin? coin? coffee? tea? tea? coffee? bang? bang? coffee! tea ! coffee? tea? iote coffee! tea ! ARTIST2 Summer School 22
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 23
Implementation Relation ioco δ By adding a transition p p to every quiescent state of a system we treat quiescence as an observable (synchronizable) action: iiorfs I/O tests T: Deadlocksδ(i||T)Deadlocksδ(s||T) (L{})*: out ( iafter ) out ( safter) To allow under-specificationwe restrict the set of traces: iiocos Tracesδ( s ) : out ( iafter ) out ( safter) ARTIST2 Summer School 24
Implementation Relation ioco Correctness expressed by implementation relation ioco: iiocos =defTracesδ( s ) : out (iafter ) out (safter) • Intuition: • i ioco-conforms to s, iff • if i produces output x after trace , then s can produce x after • if i cannot produce any output after trace , then s cannot produce any output after (quiescence) ARTIST2 Summer School 25
i d ?kwart ?dub ?dub ?kwart !coffee ?dub ?kwart d Implementation Relation ioco iiocos =defStraces (s) : out (iafter ) out (safter) out ( iaftere )= out ( iafter ?dub ) = out ( iafter ?dub.?dub ) = out ( iafter ?dub.!coffee) = out ( iafter ?kwart ) = out ( iafter !coffee ) = out ( iafter ?dub.!tea ) = out ( iafterd ) = {d} { !coffee } { !coffee } {d} {d } {d} ARTIST2 Summer School 26
i s ?dub ?dub ?dub !coffee !tea !coffee ?dub Implementation Relation ioco iiocos =defStraces (s) : out (iafter ) out (safter) ioco out (iafter ?dub) = { !coffee } out (safter ?dub) = { !coffee, !tea } ARTIST2 Summer School 27
i s ?dub ?dub ?dub !coffee !tea !coffee ioco ?dub ?dub out (iafter ?dub) = { !coffee, !tea } out (safter ?dub) = { !coffee} Implementation Relation ioco iiocos =defStraces (s) : out (iafter ) out (safter) ARTIST2 Summer School 28
i s ?dub ?kwart ?dub ?dub ?kwart !coffee !coffee !tea Implementation Relation ioco iiocos =defStraces (s) : out (iafter ) out (safter) ioco out (iafter ?dub) = { !coffee } out (iafter ?kwart) = { !tea } out (safter ?dub) = { !coffee }out (safter ?kwart) = But ?kwart Tracesδ( s ) ARTIST2 Summer School 29
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 30
i iocos specification ? test generation S i passesTs test suite TS test execution implementation i pass / fail Formal Testing correctness criterion implementation relation ioco ARTIST2 Summer School 31
coin? coin ? coffee! tea! fail fail coin? coffee! tea! pass pass fail Test Cases Test case t TTS TTS - Test Transition System : • labels in L {} • tree-structured • finite, deterministic • final states pass and fail • from each state pass, fail • either one input i? • or all outputs o! and ARTIST2 Summer School 32
coin? test case t !coin !coin ; Start timer1 ?tea fail ?timer1 fail ?coffee !coin ; Start timer2 ?tea pass ?timer2 pass ?coffee fail coin ? coffee! tea! fail fail coin? coffee! tea! pass pass fail Test Cases ARTIST2 Summer School 33
1 end test case 3 observe output PASS o! allowed outputs o! 2 supply input FAIL FAIL forbidden outputs supply i? t(S after o!) t(S after i?) Test Generation Algorithm Algorithm To generate a test case t(S) from a transition system specification with S set of states ( initially S = {s0} ) Apply the following steps recursively, non-deterministically ARTIST2 Summer School 34
specification !9 ? x (x < 0) ?-3 otherwise ?3 ? x (x >= 0) FAIL !4 PASS ! -x ! x ?-2 otherwise ?2 PASS FAIL PASS Test Generation Example Equation solver for y2=x test To cope with non-deterministic behaviour, tests are not linear traces, but trees ARTIST2 Summer School 35
Validity of Test Generation For every test t generated with algorithm : • Soundness :twill never fail with correct implementationiiocos implies i passes t • Exhaustiveness:each incorrect implementation can be detectedwith a generated testtiiocos implies t : i fails t ARTIST2 Summer School 36
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 37
s LTS der : LTS(TTS) ioco Ts TTS pass t: (traces){fail,pass} iIUT IOTS obs : TTS IOTS (traces) traces fail Formal Testing with Transition Systems ARTIST2 Summer School 38
Test Generation Tools for ioco • TVEDA (CNET - France Telecom) • derives TTCN tests from single process SDL specification • developed from practical experiences • implementation relation R1 ioco • TGV (IRISA - Rennes) • derives tests in TTCN from LOTOS or SDL • uses test purposes to guide test derivation • implementation relation: unfair extension of ioco • TestComposer • Combination of TVEDA and TGV in ObjectGeode • TestGen (Stirling) • Test generation for hardware validation • TorX (Côte de Resyste) ARTIST2 Summer School 39
user: manual automatic next input offer input IUT check output TorX observe output specification pass fail inconclusive A Test Tool : TorX • On-the-fly test generation and test execution • Implementation relation: ioco • Specification languages: LOTOS, Promela, FSP, Automata ARTIST2 Summer School 40
explorer primer driver adapter IUT specificationtext statestransitions abstractactions abstractactions concreteactions IUT TorX specification spec. TorX Tool Architecture ARTIST2 Summer School 41
on the fly explorer primer driver adapter IUT TTCN TTCN testtaal testtaal TTCN TTCN TTCN TTCN TTCN TTCN TTCN TTCN TTCN TTCN TTCN TTCN batch test execution spec. batch test generation On-the-Fly Batch Testing ARTIST2 Summer School 42
New menu ! x (x < 0) ! x (x >= 0) New menu ! x (x < 0) ! x (x >= 0) New menu ! x (x < 0) ! x (x >= 0) Concrete action ? (timeout) Action ? 3 Abstract action ! 9 Abstract action ? 3 Choice ! 9 Check ? (quiescence) Check ? 3 Choice ! -1 Concrete action ! 00001001 Action ? (quiescence) Abstract action ! -1 Concrete action ? 00000011 Abstract action ? (quiescence) Concrete action ! 11111111 abstract IUT IUT IUT bits states explorer primer driver adapter bytes transitions transition actions specification implementation ? x (x < 0) ? x (x < 0) ? x (x >= 0) ? x (x >= 0) spec ! x ! x ! -x ? x On-the-Fly Testing ARTIST2 Summer School 43
TorX ARTIST2 Summer School 44
Contents • introduction & background • testing pre-orders • input/output & quiescence • ioco implementation relation • test generation • TorX • test case study • real-time testing ARTIST2 Summer School 45
Conference Protocol EasyLink TV-VCR protocol Cell Broadcast Centre component Road Toll Payment Box protocol V5.1 Access Network protocol Easy Mail Melder FTP Client “Oosterschelde” storm surge barrier-control TANGRAM: testing VLSI lithography machine TorX Case Studies academic Philips CMG Interpay Lucent CMG academic CMG ASML ARTIST2 Summer School 46
InterpayHighway Tolling System ARTIST2 Summer School 47
Highway Tolling Protocol Characteristics : • Simple protocol • Parallellism : many cars at the same time • Encryption • System passed traditional testing phase ARTIST2 Summer School 48
Highway Tolling System Payment Box (PB) Road Side Equipment Onboard Unit UDP/IP Wireless ARTIST2 Summer School 49
spec TorX Test Context PaymentBox ObuSim PB + ObuSim + TCP/IP + UDP/IP PCO IAP SUT UDP/IP TCP/IP Highway Tolling: Test Architecture ARTIST2 Summer School 50