Model-checking Driven Black-box Testing Algorithms for Systems with Unspecified Components

Component-based software development has posed a serious challenge to system verification since externally-obtained components could be a new source of system failures. This issue can not be completely solved by either model-checking or traditional software testing techniques alone due to several reasons: 1) externally obtained components are usually unspecified/partially specified; 2)it is generally difficult to establish an adequacy criteria for testing a component; 3)components may be used to dynamically upgrade a system. This paper introduces a new approach (called {\em model-checking driven black-box testing}) that combines model-checking with traditional black-box software testing to tackle the problem in a complete, sound, and automatic way. The idea is to, with respect to some requirement (expressed in CTL or LTL) about the system, use model-checking techniques to derive a condition (expressed in communication graphs) for an unspecified component such that the system satisfies the requirement iff the condition is satisfied by the component, and which can be established by testing the component with test cases generated from the condition on-the-fly. In this paper, we present model-checking driven black-box testing algorithms to handle both CTL and LTL requirements. We also illustrate the idea through some examples.

[1]  Alex Groce,et al.  AMC: An Adaptive Model Checker , 2002, CAV.

[2]  Kathi Fisler,et al.  Verifying cross-cutting features as open systems , 2002, SIGSOFT '02/FSE-10.

[3]  Ian Gorton,et al.  Software component quality assessment in practice: successes and practical impediments , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[4]  Amir Pnueli,et al.  In Transition From Global to Modular Temporal Reasoning about Programs , 1989, Logics and Models of Concurrent Systems.

[5]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[6]  Stephen McCamant,et al.  Predicting problems caused by component upgrades , 2003, ESEC/FSE-11.

[7]  Monica S. Lam,et al.  Automatic extraction of object-oriented component interfaces , 2002, ISSTA '02.

[8]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[9]  Wei Ding,et al.  Model Checkers in Software Testing , 2002 .

[10]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[11]  Vadim Okun,et al.  Mutation operators for specifications , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[12]  Orna Kupferman,et al.  Module Checking Revisited , 1997, CAV.

[13]  Angelo Gargantini,et al.  Using model checking to generate tests from requirements specifications , 1999, ESEC/FSE-7.

[14]  Alessandro Orso,et al.  Component Metadata for Software Engineering Tasks , 2000, EDO.

[15]  Kathi Fisler,et al.  Modular verification of collaboration-based software designs , 2001, ESEC/FSE-9.

[16]  Doron A. Peled,et al.  Model Checking and Testing Combined , 2003, ICALP.

[17]  Arvinder Kaur,et al.  Component Based Software Engineering , 2010 .

[18]  David S. Rosenblum Adequate Testing of Component-Based Software , 1997 .

[19]  Paul Ammann,et al.  Using model checking to generate tests from specifications , 1998, Proceedings Second International Conference on Formal Engineering Methods (Cat.No.98EX241).

[20]  J. L. Lions ARIANE 5 Flight 501 Failure: Report by the Enquiry Board , 1996 .

[21]  Alexander L. Wolf,et al.  Annotating Components to Support Component-Based Static Analyses of Software Systems , 1999 .

[22]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[23]  Jeffrey M. Voas,et al.  Certifying Off-the-Shelf Software Components , 1998, Computer.

[24]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[25]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[26]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[27]  Mihalis Yannakakis,et al.  Black Box Checking , 1999, FORTE.

[28]  Thomas A. Henzinger,et al.  MOCHA: Modularity in Model Checking , 1998, CAV.

[29]  Andrea Polini,et al.  A framework for component deployment testing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[30]  Clemens A. Szyperski,et al.  Component technology - what, where, and how? , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[31]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[32]  Jeffrey M. Voas Developing a Usage-Based Software Certification Process , 2000, Computer.

[33]  Thomas A. Henzinger,et al.  You Assume, We Guarantee: Methodology and Case Studies , 1998, CAV.

[34]  John R. Callahan,et al.  Automated Software Testing Using Model-Checking , 1996 .

[35]  Alan W. Brown,et al.  The Current State , 2016 .

[36]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[37]  Loe M. G. Feijs,et al.  Test Generation for Intelligent Networks Using Model Checking , 1997, TACAS.