170 likes | 367 Views
Testing Transition Systems with Input and Output Testers. Alexandre Petrenko Nina Yevtushenko Jia Le Huo. TestCom’03, May 27 th , 2003. Outline. Motivation Basic idea Testing frameworks Queued-quiescence Queued-suspension Conclusions. Does Imp conform to Spec ?.
E N D
Testing Transition Systems with Input and Output Testers Alexandre Petrenko Nina Yevtushenko Jia Le Huo TestCom’03, May 27th, 2003
Outline • Motivation • Basic idea • Testing frameworks • Queued-quiescence • Queued-suspension • Conclusions
Does Imp conform to Spec? Conformance Testing Spec Imp Fault model Tests Test execution
?coin ?coin ?coin !milk coin !coffee ?coin ?coin coffee, milk Spec Input/Output Transition Systems • Non-deterministic IOTS: model of Spec and Imp • Output of IOTS cannot be blocked: basic assumption • Spec and Imp are input-enabled
coin coin coffee pass milk, coffee milk, fail fail Motivating Example ?coin ?coin !coffee ?coin ?coin ?coin !milk !milk !coffee ?coin ?coin !coffee ?coin ?coin ?coin Spec Imp Quiescent trace coin coin coffee milk yields the ioco test case: Is the test case still sound if output of Spec cannot be blocked?
How can I block a coffee on its way out? Contradiction • The ioco test case blocks coffee after coin • Output of IOTS cannot be blocked: basic assumption
Problem Statement • A tester not blocking output of Imp must be input-enabled • An input-enabled tester usually • has unbounded test runs • makes choice between input and output • Both features are not desirable in practice • We have to define a tester that • is input-enabled • reaches verdict in finite steps • never chooses between input and output
executes a given input sequence finite capacity for practical reasons Input test process Input-enabled, and no choice between input and output Input queue Output test process Output queue produces pass when an expected output sequence followed by quiescence is read from the queue and fail otherwise Basic Idea Tester Imp
!coffee !coffee !milk !milk Qqtraceso(Imp, ) Qqtraceso(Spec, ) Queued-Quiescent Traces !coffee ?coin ?coin ?coin ?coin ?coin !milk !milk !coffee ?coin !coffee ?coin Imp Spec ?coin ?coin ?coin • For a quiescent trace of Spec, I O Qqtraces(Spec) • For input sequence ,Qqtraceso(Spec,) includes all the output sequences in response to : {' O* | ' Qqtraces(Spec)} • Qqtraces(Spec) = Qqtraces(Imp) (qq-trace equivalent)
Queued-Quiescence Relations • For non-oscillating Spec and Imp, if input sequence exists such that : • Qqtraceso(Imp,) Qqtraceso(Spec,) = (no pass)then Imp is qq-separable from Spec • Qqtraceso(Imp,) Qqtraceso(Spec,) (fail, pass) then Imp is qq-distinguishable from Spec • Qqtraceso(Imp,) Qqtraceso(Spec,) (no fail)then Imp is qq-weakly-distinguishable from Spec • qq-separable qq-distinguishable qq-weakly-distinguishable
Test Derivation with Fault Model • Given Spec and Imp, check input sequences of length 0, 1, 2, … until a sequence is found such that • qq-separates, or • qq-distinguishes, or • qq-weakly-distinguishesImp from Spec, or • the input buffer capacity k is reached • Repeat for all Imp • k = ?
?milk pass ?milk, ?coffee !coin fail fail ?milk, ?coffee, ?milk, ?coffee, A Finer Tester ?coin ?coin !coffee ?coin ?coin ?coin !milk !milk !coffee ?coin ?coin !coffee ?coin ?coin ?coin Spec Imp The resulting IOTS can be distinguished by a qq-test case: After executing the qq-test case with input coin on Spec and Imp
qq-test case of Spec-after-(1, 11) qq-test case ofSpec-after-(1, 12) 12 11 2 2 25 21 22 23 24 3 3 3 3 3 ... ... Queued-Suspension Testing qq-test case of Spec 1 qs traces are sequences of qq traces executed by the qq testers: (11i)(22j)...(nnk)
Conclusions • Outputs cannot be blocked: basic assumption • Testing frameworks: qq and qs • Comparison with the ioco framework: • information of Interleaving of inputs and ouputs are lost • so the conformance relations are coarser than ioco • but ioco testing is not applicable here • Open questions: oscillating Spec, k = ?, etc
?coin ?coin ?coin !milk !coffee ?coin ?coin Spec ?coin !coffee ?coin !milk !coffee ?coin !milk An Example coin coin Output queue (capacity 2) Input queue (capacity 2)
We have coin coin coffee coin coin coffee pass pass milk, coffee milk, milk fail fail fail An example (Cntd.) When the ioco test case below is applied to Spec with queues Is this test case still sound?