170 likes | 375 Vues
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?