Model-Checking Plus Testing: From Software Architecture Analysis to Code Testing

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3236)


Software Model-Checking and Testing are some of the most used techniques to analyze software systems and identify hidden faults. While software model-checking allows for an exhaustive and automatic analysis of the system expressed through a model, software testing is based on a clever selection of “relevant” test cases, which may be manually or automatically run over the system.

In this paper we analyze how those two analysis techniques may be integrated in a specific context, where a Software Architecture (SA) specification of the system is available, model-checking techniques are used to validate the SA model conformance with respect to selected properties, while testing techniques are used to validate the implementation conformance to the SA model.

The results of this research are applied to an SDH Telecommunication system architecture designed by Siemens CNX.


Model Check Software Architecture Atomic Function Architectural Model Implementation Under Test 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ammann, P., Black, P.: Abstracting formal specifications to generate software tests via model checking. In: Proceedings of the 18th Digital Avionics Systems Conference (DASC 1999), October 1999, vol. 2, p. 10.A.6. IEEE, Los Alamitos (1999)Google Scholar
  2. 2.
    Bertolino, A., Inverardi, P.: Architecture-based software testing. In: Proc. ISAW 1996 (October 1996)Google Scholar
  3. 3.
    Bertolino, A.: Software Testing. In: SWEBOK: Guide to the Software Engineering Body of Knowledge, IEEEGoogle Scholar
  4. 4.
    Buchi, R.: On a decision method in restricted second order arithmetic. In: Proc. of the International Congress of Logic, Methodology and Philosophy of Science, pp. 1–11. Standford University Press, Stanford (1960)Google Scholar
  5. 5.
    Callahan, J., Schneider, F., Easterbrook, S.: Automated software testing using modelchecking. In: Proceedings 1996 SPIN Workshop (August 1996)Google Scholar
  6. 6.
    Charmy Project. Charmy web site (March 2004),
  7. 7.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking, 2nd edn. The MIT Press, Cambridge (2000)Google Scholar
  8. 8.
    Compare, D., Inverardi, P., Pelliccione, P., Sebastiani, A.: Integrating modelchecking architectural analysis and validation in a real software life-cycle. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 114–132. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Păsăreanu, C.S., Robby, Zheng, H.: Bandera: extracting finite-state models from java source code. In: International Conference on Software Engineering, pp. 439–448 (2000)Google Scholar
  10. 10.
    DeMillo, R.A., Lipton, R.J., Sayward, F.G.: Hints on test data selection: Help for the practicing programmer. IEEE Comp. 11(4), 34–41 (1978)CrossRefGoogle Scholar
  11. 11.
    Formal Methods for Software Architectures. Tutorial book on Software Architectures and formal methods. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804 (2003)Google Scholar
  12. 12.
    Gargantini, A., Heitmeyer, C.L.: Using model checking to generate tests from requirements specifications. In: ESEC / SIGSOFT FSE, pp. 146–162 (1999)Google Scholar
  13. 13.
    Garlan, D.: Software Architecture. Encyclopedia of Software Engineering. John Wiley & Sons, Inc., Chichester (2001)Google Scholar
  14. 14.
    Heimdahl, M.P., Rayadurgam, S., Visser, W., Devaraj, G., Gao, J.: Autogenerating test sequences using model checkers: A case study. In: FATES 2003 (2003)Google Scholar
  15. 15.
    Holzmann, J.G.: The logic of bugs. In: Proc. Foundations of Software Engineering (SIGSOFT 2002/FSE-10) (2002)Google Scholar
  16. 16.
    Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual, September 2003. Addison-Wesley, Reading (2003)Google Scholar
  17. 17.
    Inverardi, P., Muccini, H., Pelliccione, P.: Charmy: A framework for model based consistency checking. TR., Dept. of Comp. Science, Univ. of L’Aquila (May 2004)Google Scholar
  18. 18.
    Peterson, I.: Fatal Defect: Chasing Killer Computer Bugs. Random House Publisher (1995)Google Scholar
  19. 19.
    Muccini, H.: Software Architecture for Testing, Coordination Models and Views Model Checking. PhD thesis, University of L’Aquila, year (2002), On-line at:
  20. 20.
    Muccini, H., Bertolino, A., Inverardi, P.: Using Software Architecture for Code Testing. IEEE Transactions on Software Engineering 30(3), 160–171 (2004)CrossRefGoogle Scholar
  21. 21.
    Pnueli, A.: The temporal logic of programs. In: Proc. 18th IEEE Symposium on Foundation of Computer Science, pp. 46–57 (1977)Google Scholar
  22. 22.
    Rayadurgam, S., Heimdahl, M.P.E.: Coverage based test-case generation using model checkers. In: 8th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS) (April 2001)Google Scholar
  23. 23.
    Richardson, D.J., Wolf, A.L.: Software testing at the architectural level. In: ISAW-2 in Joint Proc. of the ACM SIGSOFT 1996 Workshops, pp. 68–71 (1996)Google Scholar
  24. 24.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  1. 1.Siemens C.N.X. S.p.A., R. & DL’AquilaItaly
  2. 2.Dipartimento di InformaticaUniversità dell’AquilaL’AquilaItaly

Personalised recommendations