Abstract
This paper illustrates the theoretical basis of an approach to apply data flow testing techniques to abstract state machines (ASMs). In particular, we focus on multi-agent ASMs extended with the seq construct for turbo ASMs. We explain why traditional data flow analysis can not simply be applied to ASMs: data flow coverage criteria are strictly based on the mapping between a program and its flow graph whereas in this context we are interested in tracing the flow of data between states in ASM runs as opposed to between nodes in a program’s flow graph. We revise the classical concepts in data flow analysis taking into account the specific, parallel nature of ASMs, and define them on two levels: the syntactic (rule) level, and the computational (run) level. In particular, we analyze the role played by different types of terms in ASMs and deal with the problem of terms that are monitored by a given agent but controlled by another one, terms that are shared between several agents, and derived terms. We also discuss what consequences the use of the turbo ASM construct seq has on our analysis and revise the approach accordingly. Finally, we specify a family of ad hoc data flow coverage criteria for this class of ASMs and introduce a model checking-based approach to generate automatically test cases satisfying a given set of coverage criteria from ASM models.
Similar content being viewed by others
References
ASMETA: a tool set for the ASM. http://sourceforge.net/projects/asmeta
Börger E, Cavarra A, Riccobene E (2000) Modeling the dynamics of UML state machines. In: Abstract state machines. Lecture notes in computer science, vol 1912. Springer, Berlin, pp 223–241
Briand LC, Labiche Y, Lin Q (2005) Improving statechart testing criteria using data flow information. In: ISSRE, pp 95–104
Borger E, Mearelli L (1997) Integrating ASMs into the software development life cycle. J UCS 3: 603–665
Börger E, Schmid J (2000) Composition and submachine concepts for sequential asms. In: CSL. Lecture notes in computer science, vol 1862. Springer, Berlin, pp 41–60
Börger E, Stärk RF (2003) Abstract state machines. A method for high-level system design and analysis. Springer, Berlin
Castillo GD (2001) The ASM Workbench—a tool environment for computer-aided analysis and validation of abstract state machine models tool demonstration. In: TACAS, pp 578–581
Cavarra A (2008) Data flow analysis and testing of abstract state machines. In: ABZ. LNCS, vol 5238. Springer, Berlin, pp 85–97
Cavarra A (2009) Inter-agent data flow analysis of abstract state machines. In: Australian software engineering conference (ASWEC). IEEE Computer Society, Los Alamitos
Clarke EM, Emerson EA, Sistla AP (1986) Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans Program Lang Syst 8(2): 244–263
Clarke EM, Grumberg O, McMillan KL, Zhao X (1995) Efficient generation of counterexamples and witnesses in symbolic model checking. In: DAC, pp 427–443
Coverlipse. http://coverlipse.sourceforge.net/index.php
Castillo GD, Winter K (2000) Model checking support for the ASM high-level language. In: TACAS, pp 331–346
Farahbod R, Gervasi V, Glässer U (2007) CoreASM: an extensible ASM execution engine. Fundam Inform 77(1–2): 71–103
Farahbod R, Glèsser U, Ma G (2007) Model checking CoreASM specifications. In: Proceedings of 14th international workshop on abstract state machines. Faculty of Engineering and Science, Agder University College, Grimstad, Norway. ISBN 978-82-7117-627-3
Frankl PG, Weyuker EJ (1988) An applicable family of data flow testing criteria. IEEE Trans Softw Eng 14(10): 1483–1498
Frankl PG, Weyuker EJ (1993) A formal analysis of the fault-detecting ability of testing methods. IEEE Trans Softw Eng 19(3): 202–213
Gargantini A, Riccobene E (2001) ASM-based testing: coverage criteria and automatic test sequence. J UCS 7(11): 1050–1067
Gargantini A, Riccobene E, Rinzivillo S (2003) Using spin to generate tests from ASM specifications. In: Abstract state machines, pp 263–277
Gurevich Y (1995) Specification and validation methods. In: Evolving algebras 1993: Lipari guide. Oxford University Press, New York
Hong HS, Cha SD, Lee I, Sokolsky O, Ural H (2003) Data flow testing as model checking. In: ICSE, pp 232–243
Holzmann GJ (1997) The model checker SPIN. Softw Eng 23(5): 279–295
Harrold MJ, Rothermel G (1994) Performing data flow testing on classes. In: SIGSOFT ’94: Proceedings of the 2nd ACM SIGSOFT symposium on foundations of software engineering. ACM Press, London, pp 154–163
Harrold MJ, Soffa ML (1989) Interprocedual data flow testing. In: TAV3: Proceedings of the ACM SIGSOFT ’89 third symposium on Software testing, analysis, and verification. ACM Press, London, pp 158–167
ITU-T SDL formal semantics definition (2000) ITU-T Recommendation Z.100 Annex F, International Telecommunication Union, November 2000
Laski JW, Korel B (1983) A data flow oriented program testing strategy. IEEE Trans Softw Eng 9(3): 347–354
McMillan KL (1993) Symbolic model checking. Kluwer, Dordrecht
Mei L, Chan WK, Tse TH (2008) Data flow testing of service-oriented workflow applications. In: International conference on software engineering (ICSE 2008). ACM Press, Leipzig, pp 371–380
Ntafos SC (1984) On required element testing. IEEE Trans Softw Eng 10(6): 795–803
Rapps S, Weyuker EJ (1985) Selecting software test data using data flow information. IEEE Trans Softw Eng 11(4): 367–375
Stärk RF, Schmid J, Börger E (2001) Java and the Java virtual machine: definition, verification, validation. Springer, Berlin
Utting M, Pretschner A, Legeard B (2006) A taxonomy of model-based testing. In: Working paper series. Department of Computer Science, University of Waikato, New Zealand, No. 04/2006.
Weyuker EJ (1993) More experience with data flow testing. IEEE Trans Softw Eng 19(9): 912–919
Winter K (2001) Model checking for abstract state machines. Ph.D. thesis, Technischen Universitaet Berlin
Winter K (1997) Model checking for abstract state machines. J UCS 3(5): 689–701
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Egon Börger and Michael Butler
Rights and permissions
About this article
Cite this article
Cavarra, A. A data-flow approach to test multi-agent ASMs. Form Asp Comp 23, 21–41 (2011). https://doi.org/10.1007/s00165-009-0134-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-009-0134-7