Abstract
Testing is an established and integral part of the system design and development process, but incomplete coverage still leaves room for potential undiscovered bugs. Runtime verification addresses this issue by integrating verification oracles into the code, allowing for reparatory action to be taken in case of system failure after deployment. Despite the complementarity of the two approaches, the application of the two approaches at different stages in the development and deployment process results in much duplication of effort. In this paper we investigate the combination of the two approaches, by showing how one can use testing oracles to derive correct runtime verification monitors. We show how this can be achieved using QuickCheck and Larva, and apply the resulting framework to Riak, a fault-tolerant distributed database written in Erlang.
The research work disclosed in this publication is partially funded by the German Federal Ministry of Education and Research (BMBF) within EC-SPRIDE, and the Strategic Educational Pathways Scholarship Scheme (Malta), which is part financed by the European Union European Social Fund.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Broy, M., Jonsson, B., Katoen, J.-P., Leucker, M., Pretschner, A.: Model-based testing of reactive systems. LNCS, vol. 3472. Springer, Heidelberg (2005)
Quviq AB: QuickCheck Documentation Version 1.26.2 (June 2012)
Colombo, C., Pace, G.J., Schneider, G.: Dynamic event-based runtime monitoring of real-time and contextual properties. In: Cofer, D., Fantechi, A. (eds.) FMICS 2008. LNCS, vol. 5596, pp. 135–149. Springer, Heidelberg (2009)
Ericsson: Erlang reference manual user’s guide version 5.7.5 (February 2010), http://www.erlang.org/doc/reference_manual/users_guide.html (last accessed July 9, 2012)
Basho: The riak wiki (March 2011), http://wiki.basho.com/ (last accessed July 9, 2012)
Colin, S., Mariani, L.: 18 Run-Time Verification. In: Broy, M., Jonsson, B., Katoen, J.-P., Leucker, M., Pretschner, A. (eds.) Model-Based Testing of Reactive Systems. LNCS, vol. 3472, pp. 525–555. Springer, Heidelberg (2005)
Rusu, V., du Bousquet, L., Jéron, T.: An approach to symbolic test generation. In: Grieskamp, W., Santen, T., Stoddart, B. (eds.) IFM 2000. LNCS, vol. 1945, pp. 338–357. Springer, Heidelberg (2000)
Artho, C., Barringer, H., Goldberg, A., Havelund, K., Khurshid, S., Lowry, M., Pasareanu, C., Rosu, G., Sen, K., Visser, W., Washington, R.: Combining test case generation and runtime verification. Theoretical Computer Science 336, 209–234 (2005)
NASA: Java pathfinder (April 2012), http://babelfish.arc.nasa.gov/trac/jpf (last accessed July 9, 2012)
Derrick, J., Walkinshaw, N., Arts, T., Earle, C.B., Cesarini, F., Fredlund, L.-A., Gulias, V., Hughes, J., Thompson, S.: Property-based testing: the protest project. In: de Boer, F.S., Bonsangue, M.M., Hallerstede, S., Leuschel, M. (eds.) FMCO 2009. LNCS, vol. 6286, pp. 250–271. Springer, Heidelberg (2010)
Giannakopoulou, D., Havelund, K.: Automata-based verification of temporal properties on running programs. In: Proceedings of the 16th IEEE International Conference on Automated Software Engineering, ASE 2001, pp. 412–416. IEEE Computer Society, Washington, DC (2001)
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
Falzon, K., Pace, G.J. (2013). Combining Testing and Runtime Verification Techniques. In: Machado, R.J., Maciel, R.S.P., Rubin, J., Botterweck, G. (eds) Model-Based Methodologies for Pervasive and Embedded Software. MOMPES 2012. Lecture Notes in Computer Science, vol 7706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38209-3_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-38209-3_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38208-6
Online ISBN: 978-3-642-38209-3
eBook Packages: Computer ScienceComputer Science (R0)