Abstract
This paper presents a modular approach to testing concurrent programs that are modeled using labeled transition systems. Correctness is defined in terms of an implementation relation that is expected to hold between a model of the system and its implementation. The novelty of our approach is that the correctness of a concurrent software system is determined by testing the individual threads separately, without testing the system as a whole. We define a modular implementation relation on individual threads and show that modular relations can be tested separately in order to verify a (non-modular) implementation relation for the complete system. Empirical results indicate that our approach can significantly reduce the number of test sequences that are generated and executed during model-based testing.
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
Koppol, P.V., Carver, R.H., Tai, K.C.: Incremental Integration Testing of concurrent Programs. IEEE Transactions on Software Engineering 28(6) (2002)
Milner, R.: Communication and Concurrency. Prentice-Hall (1989)
Tai, K.C.: On testing concurrent programs. In: Proc. COMPSAC, vol. 85, pp. 310–317 (1985)
Tai, K.C., Carver, R.H.: Testing of distributed programs. In: Zoyama, A. (ed.) Handbook of Parallel and Dist. Computing, ch. 33, pp. 955–978. McGraw Hill (1996)
Lei, Y., Carver, R.H.: Reachability testing of concurrent programs. IEEE Transactions on Software Engineering 32(6), 382–403 (2006)
Chen, J., Carver, R.: Selecting and Mapping Test Sequences from Formal Specifications of Concurrent Programs. In: Proc. of the High-Assurance Systems Eng., pp. 112–119 (1996)
Brinksma, E.: A Theory for the Derivation of Tests. In: Aggarwal, S., Sabnani, K. (eds.) Protocol Specification, Testing and Verification, VIII, pp. 63–74 (1988)
Carver, R., Lei, Y.: A Modular Approach to Model-Based Testing of Concurrent Programs. Technical report GMU-CS-TR-2013-5, Dept. of Computer Science, George Mason University (2013)
Lamport, L.: Time, Clocks, and the Ordering of Events in a Dist. System. Comm. ACM, 558–565 (1978)
Cleaveland, R., Parrow, J., Steffen, B.: The Concurrency Workbench: A Semantics Tool for the Verification of Concurrent Systems. ACM Tran. Programming Languages and Systems 15(1), 36–72 (1993)
Information Technology, Open Systems Interconnection, Conformance Testing Methodology and Framework. International Standard IS-9646. ISO, Geneve (1991)
Feijs, L.M.G., Goga, N., Mauw, S., Tretmans, J.: Test Selection, Trace Distance and Heuristics. In: Proc. IFIP 14th Int. Conference on Testing Communicating Systems - TestCom, pp. 267–282 (2002)
Tretmans, J., Brinksma, E.: TorX: Automated Model-Based Testing. In: Proc. First European Conference on Model-Driven Software Engineering, pp. 31–43 (2003)
Ammann, P., Offutt, J.: Introduction to Software Testing. Cambridge Univ. Press (2008)
Tretmans, J.: Testing Concurrent Systems: A Formal Approach. In: Baeten, J.C.M., Mauw, S. (eds.) CONCUR 1999. LNCS, vol. 1664, pp. 46–65. Springer, Heidelberg (1999)
Carver, R., Tai, K.C.: Modern Multithreading: Wiley (2006), http://www.cs.gmu.edu/~rcarver/ModernMultithreading/
Ricart, G., Agrawala, A.K.: An optimal algorithm for mutual exclusion in computer networks. Communications of the ACM 24(1), 9–17 (1981)
Turner, K.J.: Using Formal Description Techniques: An Introduction to Estelle, Lotos, and SDL. John Wiley & Sons, Inc., New York (1993)
Suzuki, I., Kasami, T.: A distributed mutual exclusion algorithm. ACM Transactions on Computer Systems 3(4), 344–349 (1985)
Fernandez, J., Garavel, H., Kerbrat, A., Mateescu, R., Mounier, L., Sighireanu, M.: CADP: A Protocol Validation and Verification Toolbox. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 437–440. Springer, Heidelberg (1996)
Lang, F.: Compositional Verification using SVL Scripts. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, pp. 465–469. Springer, Heidelberg (2002)
Ma, Y.-S., Offutt, J., Kwon, Y.-R.: μJava: An Automated Class Mutation System. Journal of Soft. Testing, Verif. and Reliability 15(2), 97–133 (2005), http://ise.gmu.edu/~ofut/mujava/
van der Bijl, M., Rensink, A., Tretmans, J.: Compositional Testing with IOCO. In: Petrenko, A., Ulrich, A. (eds.) FATES 2003. LNCS, vol. 2931, pp. 86–100. Springer, Heidelberg (2004)
Gotzhein, R., Khendek, F.: Compositional Testing of Communication Systems. In: Uyar, M.Ü., Duale, A.Y., Fecko, M.A. (eds.) TestCom 2006. LNCS, vol. 3964, pp. 227–244. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Carver, R., Lei, Y. (2013). A Modular Approach to Model-Based Testing of Concurrent Programs. In: Lourenço, J.M., Farchi, E. (eds) Multicore Software Engineering, Performance, and Tools. MUSEPAT 2013. Lecture Notes in Computer Science, vol 8063. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39955-8_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-39955-8_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39954-1
Online ISBN: 978-3-642-39955-8
eBook Packages: Computer ScienceComputer Science (R0)