Skip to main content
Log in

A data-flow approach to test multi-agent ASMs

  • Original Article
  • Published:
Formal Aspects of Computing

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. ASMETA: a tool set for the ASM. http://sourceforge.net/projects/asmeta

  2. 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

  3. Briand LC, Labiche Y, Lin Q (2005) Improving statechart testing criteria using data flow information. In: ISSRE, pp 95–104

  4. Borger E, Mearelli L (1997) Integrating ASMs into the software development life cycle. J UCS 3: 603–665

    Google Scholar 

  5. 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

  6. Börger E, Stärk RF (2003) Abstract state machines. A method for high-level system design and analysis. Springer, Berlin

    MATH  Google Scholar 

  7. 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

  8. Cavarra A (2008) Data flow analysis and testing of abstract state machines. In: ABZ. LNCS, vol 5238. Springer, Berlin, pp 85–97

  9. Cavarra A (2009) Inter-agent data flow analysis of abstract state machines. In: Australian software engineering conference (ASWEC). IEEE Computer Society, Los Alamitos

  10. 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

    Article  MATH  Google Scholar 

  11. Clarke EM, Grumberg O, McMillan KL, Zhao X (1995) Efficient generation of counterexamples and witnesses in symbolic model checking. In: DAC, pp 427–443

  12. Coverlipse. http://coverlipse.sourceforge.net/index.php

  13. Castillo GD, Winter K (2000) Model checking support for the ASM high-level language. In: TACAS, pp 331–346

  14. Farahbod R, Gervasi V, Glässer U (2007) CoreASM: an extensible ASM execution engine. Fundam Inform 77(1–2): 71–103

    MATH  Google Scholar 

  15. 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

  16. Frankl PG, Weyuker EJ (1988) An applicable family of data flow testing criteria. IEEE Trans Softw Eng 14(10): 1483–1498

    Article  MathSciNet  Google Scholar 

  17. Frankl PG, Weyuker EJ (1993) A formal analysis of the fault-detecting ability of testing methods. IEEE Trans Softw Eng 19(3): 202–213

    Article  Google Scholar 

  18. Gargantini A, Riccobene E (2001) ASM-based testing: coverage criteria and automatic test sequence. J UCS 7(11): 1050–1067

    Google Scholar 

  19. Gargantini A, Riccobene E, Rinzivillo S (2003) Using spin to generate tests from ASM specifications. In: Abstract state machines, pp 263–277

  20. Gurevich Y (1995) Specification and validation methods. In: Evolving algebras 1993: Lipari guide. Oxford University Press, New York

  21. Hong HS, Cha SD, Lee I, Sokolsky O, Ural H (2003) Data flow testing as model checking. In: ICSE, pp 232–243

  22. Holzmann GJ (1997) The model checker SPIN. Softw Eng 23(5): 279–295

    Article  MathSciNet  Google Scholar 

  23. 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

  24. 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

  25. ITU-T SDL formal semantics definition (2000) ITU-T Recommendation Z.100 Annex F, International Telecommunication Union, November 2000

  26. Laski JW, Korel B (1983) A data flow oriented program testing strategy. IEEE Trans Softw Eng 9(3): 347–354

    Article  Google Scholar 

  27. McMillan KL (1993) Symbolic model checking. Kluwer, Dordrecht

    MATH  Google Scholar 

  28. 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

  29. Ntafos SC (1984) On required element testing. IEEE Trans Softw Eng 10(6): 795–803

    Article  Google Scholar 

  30. Rapps S, Weyuker EJ (1985) Selecting software test data using data flow information. IEEE Trans Softw Eng 11(4): 367–375

    Article  Google Scholar 

  31. Stärk RF, Schmid J, Börger E (2001) Java and the Java virtual machine: definition, verification, validation. Springer, Berlin

    MATH  Google Scholar 

  32. 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.

  33. Weyuker EJ (1993) More experience with data flow testing. IEEE Trans Softw Eng 19(9): 912–919

    Article  MathSciNet  Google Scholar 

  34. Winter K (2001) Model checking for abstract state machines. Ph.D. thesis, Technischen Universitaet Berlin

  35. Winter K (1997) Model checking for abstract state machines. J UCS 3(5): 689–701

    MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alessandra Cavarra.

Additional information

Communicated by Egon Börger and Michael Butler

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-009-0134-7

Keywords

Navigation