Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Bertolino, A., Inverardi, P.: Architecture-based software testing. In: Proc. ISAW 1996 (October 1996)
Bertolino, A.: Software Testing. In: SWEBOK: Guide to the Software Engineering Body of Knowledge, IEEE
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)
Callahan, J., Schneider, F., Easterbrook, S.: Automated software testing using modelchecking. In: Proceedings 1996 SPIN Workshop (August 1996)
Charmy Project. Charmy web site (March 2004), http://www.di.univaq.it/charmy
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking, 2nd edn. The MIT Press, Cambridge (2000)
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)
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)
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)
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)
Gargantini, A., Heitmeyer, C.L.: Using model checking to generate tests from requirements specifications. In: ESEC / SIGSOFT FSE, pp. 146–162 (1999)
Garlan, D.: Software Architecture. Encyclopedia of Software Engineering. John Wiley & Sons, Inc., Chichester (2001)
Heimdahl, M.P., Rayadurgam, S., Visser, W., Devaraj, G., Gao, J.: Autogenerating test sequences using model checkers: A case study. In: FATES 2003 (2003)
Holzmann, J.G.: The logic of bugs. In: Proc. Foundations of Software Engineering (SIGSOFT 2002/FSE-10) (2002)
Holzmann, G.J.: The SPIN Model Checker: Primer and Reference Manual, September 2003. Addison-Wesley, Reading (2003)
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)
Peterson, I.: Fatal Defect: Chasing Killer Computer Bugs. Random House Publisher (1995)
Muccini, H.: Software Architecture for Testing, Coordination Models and Views Model Checking. PhD thesis, University of L’Aquila, year (2002), On-line at: http://www.HenryMuccini.com/publications.htm
Muccini, H., Bertolino, A., Inverardi, P.: Using Software Architecture for Code Testing. IEEE Transactions on Software Engineering 30(3), 160–171 (2004)
Pnueli, A.: The temporal logic of programs. In: Proc. 18th IEEE Symposium on Foundation of Computer Science, pp. 46–57 (1977)
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)
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)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bucchiarone, A., Muccini, H., Pelliccione, P., Pierini, P. (2004). Model-Checking Plus Testing: From Software Architecture Analysis to Code Testing. In: Núñez, M., Maamar, Z., Pelayo, F.L., Pousttchi, K., Rubio, F. (eds) Applying Formal Methods: Testing, Performance, and M/E-Commerce. FORTE 2004. Lecture Notes in Computer Science, vol 3236. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30233-9_26
Download citation
DOI: https://doi.org/10.1007/978-3-540-30233-9_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23169-1
Online ISBN: 978-3-540-30233-9
eBook Packages: Springer Book Archive