Abstract
Model-based testing of event systems can take advantage of considering abstractions rather than explicit models, for controlling their size. When abstracting still a test has to be a concrete connected and reachable event sequence. This paper presents a test generation method based on computing a reachable and connected under-approximation of the abstraction of an event system. We compute the under-approximation with concrete instances of the abstract transitions, that cover all the states and transitions of the predicatebased abstraction. We propose an algorithmic method that instantiates each of the abstract transitions, and maintains for widening it a frontier of concretely reached states. We present heuristics to favour the instances connectivity. The idea is to prolong whenever possible the already reached sequences of concrete transitions, and to parameterize the order in which the states and actions occur. This concrete under-approximation ends up covering partially (at best totally) the reachable abstract transitions. The computed tests are paths of the under-approximation. The paper also reports on an implementation, which permits to provide experimental results confirming the interest of the approach with related heuristics.
Similar content being viewed by others
References
Graf, S. and Saidi, H., Construction of abstract state graphs with PVS, in CAV’97, vol. 1254 of LNCS, Springer, 1997, pp. 72–83.
Godefroid, P. and Jagadeesan, R., On the expressiveness of 3-valued models, in VMCAI’O3, vol. 2575 of LNCS, Springer, 2003, pp. 206–222.
Abrial, J.-R., Modeling in Event-B: System and Software Design, Cambridge Univ. Press, 2010.
Dijkstra, E.W., Guarded commands, nondeterminacy, and formal derivation of programs, Commun. ACM, 1975, vol. 18, no. 8, pp. 453–457.
Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, 1976.
Clarke, E., Grumberg, O., Jha, S., Lu, Y., and Veith, H., Counterexample-guided abstraction refinement for symbolic model checking, J. ACM, 2003, vol. 50, no. 5, pp. 752–794.
Veanes, M. and Yavorsky, R., Combined algorithm for approximating a finite state abstraction of a large system, in ICSE’03/Scenarios Workshop, 2003, pp. 86–91.
Abrial, J.-R., The B Book, Cambridge Univ. Press, 1996.
Gurevich, Y., Sequential abstract-state machines capture sequential algorithms, ACM Trans. Computational Logic, 2000, vol. 1, no. 1, pp. 77–111.
Abstract State Machines, Gurevich, Y., Kutter, P.W., Odersky, M., and Thiele, L., Eds., Theory and Applications, vol. 1912 of LNCS, Springer, 2000.
Bert, D. and Cave, F., Construction of finite labeled transition systems from B abstract systems, in IFM’00, vol. 1945 of LNCS, Springer, 2000, pp. 235–254.
Bride, H., Julliand, J., and Masson, P.-A., Tri-modal under-approximation for test generation, Sci. Comput. Program., 2016, vol. 132, no. P2, pp. 190–208.
Cousot, P. and Cousot, R., Abstract interpretation frameworks, J. Logic Computation, 1992, vol. 2, no. 4, pp. 511–547.
Ball, T., A theory of predicate-complete test coverage and generation, in FMCO, vol. 3657 of LNCS, Springer, 2004, pp. 1–22.
Godefroid, P., Huth, M., and Jagadeesan, R., Abstraction-based model checking using modal transition systems, in CONCUR’01, Springer, 2001, pp. 426–440.
Larsen, K.G. and Thomsen, B., A modal process logic, in LICS’08, 1988, pp. 203–210.
Grieskamp, W., Gurevich, Y., Schulte, W., and Veanes, M., Generating finite state machines from abstract state machines, in ISSTA’02, 2002, pp. 112–122.
Broy, M., Jonsson, B., Katoen, J.-P., Leucker, M., and Pretschner, A., Model-Based Testing of Reactive Systems, vol. 3472 of LNCS, Springer, 2005.
Utting, M. and Legeard, B., Practical Model-Based Testing, Morgan Kaufmann, 2006.
Thimbleby, H.W., The directed Chinese postman problem, Software: Practice and Experience, 2003, vol. 33, no. 11, pp. 1081–1096.
Dwyer, M.B., Avrunin, G.S., and Corbett, J.C., Patterns in property specifications for finite-state verification, in ICSE’99, ACM, 1999, pp. 411–420.
de Moura, L. and Bjorner, N., An efficient SMT solver, in TACAS’08, vol. 4963 of LNCS, Springer, 2008, pp. 337–340.
Bué, P.-C., Julliand, J., and Masson, P.-A., Association of under-approximation techniques for generating tests from models, in TAP, vol. 6706 in LNCS, Springer, 2011, pp. 51–68.
Julliand, J., Kouchnarenko, O., Masson, P.-A., and Voiron, G., Two under-approximation techniques for 3-modal abstraction coverage of event systems: Joint effort?, in TASE 2017, 2017.
Aichernig, B.K., Brandl, H., Jöbstl, E., and Krenn, W., UML in action: A two-layered interpretation for testing, ACM SIGSOFT Software Eng. Notes, 2011, vol. 36, no. 1, pp. 1–8.
Microsoft Corporation, Abstract state machine language. https://asml.codeplex.com/.
FP7 Deploy Project, Industrial deployment of system engineering methods providing high dependability and productivity. http://www.deploy-project.eu/index.html.
Namjoshi, K.S. and Kurshan, R.P., Syntactic program transformations for automatic abstraction, in CAV’00, vol. 1855 of LNCS, Springer, 2000, pp. 435–449.
Pasareanu, C.S., Peláanek, R., and Visser, W., Predicate abstraction with under-approximation refinement, Logic Methods Comput. Sci., 2007, vol. 3, no. 1, pp. 1–22.
Gulavani, B.S., Henzinger, T.A., Kannan, Y., Nori, A.V., and Rajamani, S.K., SYNERGY: A new algorithm for property checking, in SIGSOFTFSE’ 06, 2006, pp. 117–127.
Beckman, N.E., Nori, A.V., Rajamani, S.K., Simmons, R.J., Tetali, S.D., and Thakur, A.V., Proofs from tests, IEEE Trans. Software Eng., 2010, vol. 36, no. 4, pp. 495–508.
Rapin, N., Gaston, C., Lapitre, A., and Gallois, J.-P., Behavioral unfolding of formal specifications based on communicating extended automata, in ATVA’03, 2003.
Godefroid, P., Klarlund, N., and Sen, K., DART: Directed automated random testing, in PLDI’05, 2005, pp. 213–223.
Sen, K., Marinov, D., and Agha, G., CUTE: a concolic unit testing engine for C, in ESEC/SIGSOFT FSE’05, 2005, pp. 263–272.
Cadar, C., Ganesh, V., Pawlowski, P.M., Dill, D.L., and Engler, D.R., EXE: Automatically generating inputs of death, in ACM CCS’06, 2006, pp. 322–335.
Tillmann, N. and de Halleux, J., Pex-white box test generation for NET, in TAP’08, Springer, vol. 4966 of LNCS, 2008, pp. 134–153.
Pasareanu, C.S. and Visser, W., A survey of new trends in symbolic execution for software testing and analysis, STTT, 2009, vol. 11, no. 4, pp. 339–353.
Author information
Authors and Affiliations
Corresponding author
Additional information
Original Russian Text © J. Julliand, O. Kouchnarenko, P.A. Masson, G. Voiron, 2018, published in Programmirovanie, 2018, Vol. 44, No. 1.
The article was translated by the authors.
Rights and permissions
About this article
Cite this article
Julliand, J., Kouchnarenko, O., Masson, P.A. et al. Test Generation from Event System Abstractions to Cover Their States and Transitions. Program Comput Soft 44, 1–14 (2018). https://doi.org/10.1134/S0361768818010085
Received:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768818010085