Abstract
The verification of a modular system composed of communicating components is a difficult problem, especially when the formal specifications, i.e. models of the components are not available. Conventional testing techniques are not efficient in detecting erroneous interactions of components because interleavings of internal events are difficult to reproduce in a modular asynchronous system. The problem of detecting intermittent errors and other compositional flaws in the absence of components’ models is addressed in this paper. A method for inferring a controllable approximation of communicating components through testing is elaborated. The inferred finite state models of components are used to detect compositional problems in the system through reachability analysis. To confirm a flaw in a particular component, a witness trace is used to construct a test applied to the component in isolation. The models are refined at each analysis step thus making the approach iterative. The proposed approach employs techniques for machine inference, testing and reachability analysis, and can reveal flaws due to the non-deterministic behaviour of a modular distributed system, such as unspecified receptions, livelocks, divergences, and races that would not be detected by testing alone. One key advantage of the approach is that by means of the inference parameter, it allows one to find a compromise between the co mplexity of testing the integrated system and the precision of the resulting models. The use of large tests is completely avoided in testing a component in isolation, since only single diagnostic test is executed in each iteration. Another advantage of the approach is that inferred models capture the functionalities of components used in the given system; unused behaviours of components are not modelled.























Similar content being viewed by others
Notes
A set of strings is prefix closed if for every string in the set, any of its prefixes are also in the set. Recall that a symbol of an FSM trace is a pair of an input from I and a sequence of outputs from O, so every prefix takes an FSM from its initial state into some state.
For the purpose of composition, each component FSM is unfolded into an IOTS preserving the traces. For details, see the report [40].
This is, of course, not a sufficient, but necessary condition for divergence.
One can use “a single message in transit” as a sufficient condition for their absence [41].
References
Godefroid P (1997) Model checking for programming languages using VeriSoft, In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL). ACM Press, New York, pp 174–186
Clarke EM, Grumberg O, Peled D (1999) Model checking. MIT Press, Cambridge
Kearns MJ, Vazirani UV (1994) An introduction to computational learning theory. MIT Press, Cambridge
Vasilevskii MP (1973) Failure diagnosis of automata. Cybern Syst Anal 9:653–665
Nerode A (1958) Linear automaton transformations. Proc Am Math Soc 9(4):541–544
Biermann A, Feldman J (1972) On the synthesis of finite state machines from samples of their behavior. IEEE Trans Comput 21(6):592–597
Groz R, Li K, Petrenko A verification of modular systems with unknown components combining testing and inference. Research Report RR-LIG-028. LIG laboratory. http://rr.liglab.fr/research_report/RR-LIG-028.pdf
Trakhtenbrot BA, Barzdin YM (1973) Finite automata, behaviour and synthesis. North-Holland
EU FP7 Project no. 257876, SPaCIoS: Secure Provision and Consumption in the Internet of Services (www.spacios.eu)
Hossen K, Richier J.-L, Oriat C, Groz R (2013) Automatic generation of test drivers for model inference of web applications, in SECTEST 2013 in association with ICST. IEEE
Peled D, Vardi MY, Yannakakis M (1999) Black Box Checking, In Proceedings of 12th IFIP International Conference on Formal Techniques for Networked and Distributed Systems (FORTE), pp 225–240
Balcazar JL, Diaz J, Gavalda R (1997) Algorithms for learning finite automata from queries: a unified view. In Advances in Algorithms, Languages, and Complexity, Kluwer, pp 53–72
de la Higuera C (2010) Grammatical inference: learning automata and grammars, Cambridge University Press
Angluin D (1987) Learning regular sets from queries and counterexamples. Inf Comput 2:87–106
Howar F, Steffen B, Merten M (2010) From ZULU to RERS, lessons learned in the ZULU challenge. ISoLA, pp 687–704
Rajiv Ranjan S, Rajib M, Srihari S, Manoranjan S (2010) Extracting state models for black-Box software components. J Object Technol 9(3):79–103
Howar F, Isberner M, Merten M, Steffen B (2012) LearnLib tutorial: from Finite Automata to Register Interface Programs. ISoLA, pp 587–590
PetrenkoA, Li K, Groz R, Hossen K, Oriat C (2014) Inferring approximated models for systems engineering, HASE, pp 249–253
Huo J, Petrenko A (2009) Transition covering tests for systems with queues. Softw Test Verification Reliab 19(1):55–83
Tretmans J (1996) Test generation with inputs outputs and repetitive quiescence. Softw Concepts Tools 17(3):103–120
Lynch N, Tuttle M (1989) An introduction to input/output automata. CWI-Q 2(3):219–246
Zafiropulo P, West C, Rudin H, Cowan D, Brand D (1980) Towards analyzing and synthesizing protocols. IEEE Trans Commun 28(4):651–661
Clarke E, Grumberg O, Jha S, Lu Y, Veith H (2000) Counterexample-guided abstraction refinement. In: CAV. Volume 1855 of LNCS, Springer, 154–169
Clarke E, Gupta A, Kukula J, Strichman O (2002) Sat based abstraction-refinement using ilp and machine learning techniques. In: CAV. LNCS, Springer
Grasselli A, Fabrizio L (1965) A method for minimizing the number of internal states in incompletely specified sequential networks. Electron Comput IEEE Trans 3:350–359
Kella J (1971) Sequential machine identification. Comput IEEE Trans 100(3):332–338
Petrenko A, Bochmann G v, Yao M (1996) On fault coverage of tests for finite state specifications. Comput Netw ISDN Syst 29(1):81–106
Oliveira Arlindo L, Stephen A (1995) Edwards. Inference of state machines from examples of behavior, UCB/ERL Tech. Rep. M 95
Holzmann GJ (1997) The model checker SPIN. IEEE Trans Software Eng 23(5):279–295
Andrews T, Qadeer S, Rajamani SK, Rehof J, Xie ZingY A model checker for concurrent software, MSR Technical Report: MSR-TR-2004-10
Elkind E, Genest B, Peled D, QuH (2006) Grey-box checking. In Proceedings of 26th IFIP International Conference on Formal Techniques for Networked and Distributed Systems (FORTE), pp 420–435
Cook JE, Wolf AL (1998) Discovering models of software processes from event-based data. ACM Trans Softw Eng Methodol 7(3):215–249
Pasareanu CS, Giannakopoulou D, Bobaru MG, Cobleigh JM, Barringer H (2008) Learning to divide and conquer: applying the L* algorithm to automate assume-guarantee reasoning. Form Methods Syst Des 32(3):175–205
Hallal HH, Boroday S, Petrenko A, Ulrich A (2006) A formal approach to testing properties in causally consistent distributed traces. Form Asp Comput 18(1):63–83
Mariani L, Pezzè M (2005) Behavior capture and test: automated analysis of component integration. In Proceedings of 10th International Conference on Engineering of Complex Computer Systems (ICECCS), pp 292–301
Bertolino A, Muccini H, Polini A (2006) Architectural verification of black-box component-based systems. In Proceedings of the 3rd International Workshop on Rapid Integration of Software Engineering Techniques (RISE), LNCS 4401, pp 98–113
Li K, Groz R, Shahbaz M (2006) Integration testing of components guided by incremental state machine learning. In Proceedings of Testing: Academia and Industry Conference—Practice and Research Techniques (TAIC PART), pp 231–247
Shahbaz M, Li K, Groz R (2007) learning and integration of parameterized components through testing. In Proceedings of 19th IFIP International Conference on Testing of Software and Communication Systems (TestCom), pages 319–334
Shahbaz M, Groz R (2013) Analysis and testing of black-box component-based systems by inferring partial models. J Softw Test Verification Reliab. doi:10.1002/stvr.1491
Groz R, Li K, Petrenko A, Shahbaz M (2008) modular system verification by inference, testing and reachability analysis, In Proceedings of 20th IFIP International Conference on Testing of Software and Communication Systems (TestCom), pp. 216–233
Petrenko A, Yevtushenko N (1998) Solving asynchronous equations. In Proceedings of 11th IFIP International Conference on Formal Techniques for Networked and Distributed Systems (FORTE), pp 231–247
Acknowledgments
This work was partially supported by the EU FP7 Project no. 257876, “SPaCIoS: Secure Provision and Consumption in the Internet of Services” (www.spacios.eu) [10]. The authors acknowledge the work of Laurent Anadon who provided the performance measurements for SIMPA and LearnLib, as reported in Section 3.3.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Groz, R., Li, K. & Petrenko, A. Integration testing of communicating systems with unknown components. Ann. Telecommun. 70, 107–125 (2015). https://doi.org/10.1007/s12243-014-0449-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12243-014-0449-0