Property-Based Testing - The ProTest Project
Abstract
The ProTest project is an FP7 STREP on property based testing. The purpose of the project is to develop software engineering approaches to improve reliability of service-oriented networks; support fault-finding and diagnosis based on specified properties of the system. And to do so we will build automated tools that will generate and run tests, monitor execution at run-time, and log events for analysis.
The Erlang / Open Telecom Platform has been chosen as our initial implementation vehicle due to its robustness and reliability within the telecoms sector. It is noted for its success in the ATM telecoms switches by Ericsson, one of the project partners, as well as for multiple other uses such as in facebook, yahoo etc. In this paper we provide an overview of the project goals, as well as detailing initial progress in developing property based testing techniques and tools for the concurrent functional programming language Erlang.
Keywords
Linear Temporal Logic Race Condition Linear Temporal Logic Formula Model Check Algorithm Property DiscoveryPreview
Unable to display preview. Download preview PDF.
References
- [ACH08]Arts, T., Castro, L.M., Hughes, J.: Testing Erlang data types with Quviq QuickCheck. In: Teoh and Horváth DBLP:conf/erlang/2008, pp. 1–8 (2008)Google Scholar
- [ACS04]Arts, T., Claessen, K., Svensson, H.: Semi-formal Development of a Fault-Tolerant Leader Election Protocol in Erlang. In: Grabowski, J., Nielsen, B. (eds.) FATES 2004. LNCS, vol. 3395, pp. 140–154. Springer, Heidelberg (2005)CrossRefGoogle Scholar
- [AF02]Arts, T., Fredlund, L.-Å.: Trace analysis of Erlang programs. In: Page, R.L., Hughes, J. (eds.) Erlang Workshop, pp. 16–23. ACM, New York (2002)Google Scholar
- [AHJW06]Arts, T., Hughes, J., Johansson, J., Wiger, U.: Testing Telecoms Software with Quviq Quickcheck. In: Feeley, M., Trinder, P.W. (eds.) Proceedings of the 2006 ACM SIGPLAN Workshop on Erlang (Erlang 2006), pp. 2–10. ACM Press, New York (2006)CrossRefGoogle Scholar
- [AVWW96]Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)MATHGoogle Scholar
- [CH00]Claessen, K., Hughes, J.: QuickCheck: a lightweight tool for random testing of Haskell programs. In: ICFP, pp. 268–279 (2000)Google Scholar
- [CPS+09]Claessen, K., Palka, M., Smallbone, N., Hughes, J., Svensson, H., Arts, T., Wiger, U.: Finding race conditions in Erlang with QuickCheck and PULSE. In: ICFP, pp. 149–160. ACM, New York (2009)CrossRefGoogle Scholar
- [EF09]Earle, C.B., Fredlund, L.-Å.: Recent improvements to the McErlang model checker. In: Erlang Workshop, pp. 93–100 (2009)Google Scholar
- [EFIL08]Earle, C.B., Fredlund, L.-Å., Iglesias, J.A., Ledezma, A.: Verifying robocup teams. In: Peled, D.A., Wooldridge, M.J. (eds.) MoChArt 2008. LNCS, vol. 5348, pp. 34–48. Springer, Heidelberg (2009)CrossRefGoogle Scholar
- [ET09]Earle, C.B., Thompson, S.J. (eds.): Proceedings of the 8th ACM SIGPLAN Workshop on Erlang, Edinburgh, Scotland, UK, September 5. ACM, New York (2009)Google Scholar
- [GdM08]Glück, R., de Moor, O. (eds.): Proceedings of the 2008 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM 2008, San Francisco, California, USA, January 7-8. ACM, New York (2008)Google Scholar
- [GHJ07]Groce, A., Holzmann, G.J.: Randomized differential testing as a prelude to formal verification. In: ICSE, pp. 621–631. IEEE Computer Society, Los Alamitos (2007)Google Scholar
- [Hug08]Hughes, J.: Formal Specification for Free!. In: Erlang Workshop (2008)Google Scholar
- [LT06]Li, H., Thompson, S.: Comparative Study of Refactoring Haskell and Erlang Programs. In: SCAM, pp. 197–206. IEEE Computer Society, Los Alamitos (2006)Google Scholar
- [LT08]Li, H., Thompson, S.J.: Tool support for refactoring functional programs. In: Glück and de Moor/pepm/2008, pp. 199–203 (2008)Google Scholar
- [LTR05]Li, H., Thompson, S., Reinke, C.: The Haskell Refactorer, HaRe, and its API. Electr. Notes Theor. Comput. Sci. 141(4), 29–34 (2005)CrossRefGoogle Scholar
- [ST08]Sultana, N., Thompson, S.J.: Mechanical verification of refactorings. In: pepm, pp. 51–60 (2008)Google Scholar
- [Sve09]Svensson, H.: Implementing an ltl-to-büchi translator in erlang: a protest experience report. In: Erlang Workshop, pp. 63–70 (2009)Google Scholar
- [TH08]Teoh, S.T., Horváth, Z. (eds.): Proceedings of the 7th ACM SIGPLAN workshop on ERLANG, Victoria, BC, Canada, Se ptember 27. ACM, New York (2008)Google Scholar
- [Tho04]Thompson, S.: Refactoring functional programs. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 331–357. Springer, Heidelberg (2005)CrossRefGoogle Scholar
- [WD09]Walkinshaw, N., Derrrick, J.: Incrementally discovering testable specifications from program executions. In: FMCO (2009)Google Scholar
- [WDG09]Walkinshaw, N., Derrick, J., Guo, Q.: Iterative refinement of reverse-engineered models by model-based testing. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 305–320. Springer, Heidelberg (2009)CrossRefGoogle Scholar
- [ZH02]Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. IEEE Trans. Software Eng. 28(2), 183–200 (2002)CrossRefGoogle Scholar