Abstract
This paper introduces a new approach for the verification of systems with unspecified components. In our approach, some model-checking problems concerning a component-based system are first reduced to the emptiness problem of an oracle finite automaton, which is then solved by testing the unspecified components on-the-fly with test-cases generated automatically from the oracle finite automaton. The generated test-cases are of bounded length, and with a properly chosen bound, a complete and sound solution is immediate. Particularly, the whole verification process can be carried out in an automatic way. In the paper, a symbolic algorithm is given for generating test-cases and performing the testings, and an example is drawn from an TinyOS application to illustrate our approach.
The research was supported in part by NSF Grant CCF-0430531.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Alur, R., Henzinger, T.A., Mang, F.Y.C., Qadeer, S., Rajamani, S.K., Tasiran, S.: MOCHA: Modularity in model checking. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol. 1427, pp. 521–525. Springer, Heidelberg (1998)
Ammann, P., Black, P.E., Ding, W.: Model checkers in software testing. NIST-IR 6777, National Institute of Standards and Technology (2002)
Ammann, P., Black, P.E., Majurski, W.: Using model checking to generate tests from specifications. In: ICFEM 1998, p. 46 (1998)
UC Berkeley: Tinyos 1.1.0 (September 2003), http://webs.cs.berkeley.edu/tos/download.html
Black, P.E., Okun, V., Yesha, Y.: Mutation operators for specifications. In: ASE 2000, p. 81 (2000)
Brown, A.W., Wallnau, K.C.: The current state of CBSE. IEEE Software 15(5), 37–46 (1998)
Bryant, R.E.: Symbolic Boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys 24(3), 293–318 (1992)
Callahan, J., Schneider, F., Easterbrook, S.: Automated software testing using model checking. In: Proceedings 1996 SPIN Workshop (1996)
Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1981)
Emerson, E.A.: Temporal and modal logic. In: Handbook of Theoretical Computer Science, pp. 997–1072. Elsevier, Amsterdam (1990)
Engels, A., Feijs, L.M.G., Mauw, S.: Test generation for intelligent networks using model checking. In: Brinksma, E. (ed.) TACAS 1997. LNCS, vol. 1217, pp. 384–398. Springer, Heidelberg (1997)
Fisler, K., Krishnamurthi, S.: Modular verification of collaboration-based software designs. In: ESEC/FSE 2001, pp. 152–163. ACM Press, New York (2001)
Gargantini, A., Heitmeyer, C.: Using model checking to generate tests from requirements specifications. In: Nierstrasz, O., Lemoine, M. (eds.) ESEC 1999 and ESEC-FSE 1999. LNCS, vol. 1687, pp. 146–163. Springer, Heidelberg (1999)
Giannakopoulou, D., Pasareanu, C., Barringer, H.: Assumption generation for software component verification. In: ASE 2002, p. 3. IEEE Computer Society Press, Los Alamitos (2002)
Gorton, I., Liu, A.: Software component quality assessment in practice: successes and practical impediments. In: ICSE 2002, pp. 555–558. ACM Press, New York (2002)
Groce, A., Peled, D., Yannakakis, M.: Amc: An adaptive model checker. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 521–525. Springer, Heidelberg (2002)
Henzinger, T.A., Qadeer, S., Rajamani, S.K.: You assume, we guarantee: Methodology and case studies. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol. 1427, pp. 440–451. Springer, Heidelberg (1998)
Hill, J., Szewczyk, R., Woo, A., Hollar, S., Culler, D.E., Pister, K.S.J.: System architecture directions for networked sensors. In: Architectural Support for Programming Languages and Operating Systems, pp. 93–104 (2000)
Holzmann, G.J.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997); Special Issue: Formal Methods in Software Practice
Kozaczynski, W., Booch, G.: Component-based software engineering. IEEE Software 15(5), 34–36 (1998)
Lamport, L.: Specifying concurrent program modules. ACM Transactions on Programming Languages and Systems (TOPLAS) 5(2), 190–222 (1983)
Li, H., Krishnamurthi, S., Fisler, K.: Verifying cross-cutting features as open systems. ACM SIGSOFT Software Engineering Notes 27(6), 89–98 (2002)
Lynch, N., Tuttle, M.: Hierarchical correctness proofs for distributed algorithms. In: Proc. 6th ACM Symp. on Principles of Distributed Computing, pp. 137–151 (1987)
Orso, A., Harrold, M.J., Rosenblum, D.: Component metadata for software engineering tasks. In: Emmerich, W., Tai, S. (eds.) EDO 2000. LNCS, vol. 1999, pp. 129–144. Springer, Heidelberg (2001)
Peled, D.: Algorithmic testing methods. In: CAV 2003. LNCS, vol. 2725. Springer, Heidelberg (2003)
Peled, D., Vardi, M.Y., Yannakakis, M.: Black box checking. In: Wu, J., Chanson, S.T., Gao, Q. (eds.) FORTE/PSTV 1999, pp. 225–240. Kluwer, Dordrecht (1999)
Pnueli, A.: In transition from global to modular temporal reasoning about programs. In: Apt, K.R. (ed.) Logics and Models of Concurrent Systems, sub-series F: Computer and System Science (1985)
Somenzi, F.: Cudd: Cu decision diagram package release (1998)
Stafford, J., Wolf, A.: Annotating components to support component-based static analyses of software systems. In: Grace Hopper Celebration of Women in Computing, Hyannis, Massachusetts (September 2000)
Szyperski, C.: Component technology: what, where, and how? In: ICSE 2003, pp. 684–693. IEEE Computer Society Press, Los Alamitos (2003)
Trakhtenbrot, B.A., Barzdin, Y.M.: Finite automata; behavior and synthesis. North-Holland Pub. Co., Amsterdam (1973)
Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification (preliminary report). In: LICS 1986, pp. 332–344. IEEE Computer Society Press, Los Alamitos (1986)
Voas, J.: Developing a usage-based software certification process. IEEE Computer 33(8), 32–37 (2000)
Whaley, J., Martin, M.C., Lam, M.S.: Automatic extraction of object-oriented component interfaces. In: ISSTA 2002 (July 2002)
Xie, G., Li, C., Dang, Z.: Testability of oracle automata. In: Domaratzki, M., Okhotin, A., Salomaa, K., Yu, S. (eds.) CIAA 2004. LNCS, vol. 3317, pp. 331–332. Springer, Heidelberg (2004) (to appear)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 IFIP International Federation for Information Processing
About this paper
Cite this paper
Xie, G., Dang, Z. (2005). An Automata-Theoretic Approach for Model-Checking Systems with Unspecified Components. In: Grabowski, J., Nielsen, B. (eds) Formal Approaches to Software Testing. FATES 2004. Lecture Notes in Computer Science, vol 3395. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31848-4_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-31848-4_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25109-5
Online ISBN: 978-3-540-31848-4
eBook Packages: Computer ScienceComputer Science (R0)