Property-Based Testing - The ProTest Project

  • John Derrick
  • Neil Walkinshaw
  • Thomas Arts
  • Clara Benac Earle
  • Francesco Cesarini
  • Lars-Ake Fredlund
  • Victor Gulias
  • John Hughes
  • Simon Thompson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6286)


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.


Linear Temporal Logic Race Condition Linear Temporal Logic Formula Model Check Algorithm Property Discovery 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [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
  2. [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
  3. [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
  4. [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
  5. [AVWW96]
    Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang, 2nd edn. Prentice-Hall, Englewood Cliffs (1996)zbMATHGoogle Scholar
  6. [CH00]
    Claessen, K., Hughes, J.: QuickCheck: a lightweight tool for random testing of Haskell programs. In: ICFP, pp. 268–279 (2000)Google Scholar
  7. [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
  8. [EF09]
    Earle, C.B., Fredlund, L.-Å.: Recent improvements to the McErlang model checker. In: Erlang Workshop, pp. 93–100 (2009)Google Scholar
  9. [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
  10. [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
  11. [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
  12. [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
  13. [Hug08]
    Hughes, J.: Formal Specification for Free!. In: Erlang Workshop (2008)Google Scholar
  14. [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
  15. [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
  16. [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
  17. [ST08]
    Sultana, N., Thompson, S.J.: Mechanical verification of refactorings. In: pepm, pp. 51–60 (2008)Google Scholar
  18. [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
  19. [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
  20. [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
  21. [WD09]
    Walkinshaw, N., Derrrick, J.: Incrementally discovering testable specifications from program executions. In: FMCO (2009)Google Scholar
  22. [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
  23. [ZH02]
    Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. IEEE Trans. Software Eng. 28(2), 183–200 (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • John Derrick
    • 1
  • Neil Walkinshaw
    • 1
  • Thomas Arts
    • 2
  • Clara Benac Earle
    • 4
  • Francesco Cesarini
    • 3
  • Lars-Ake Fredlund
    • 4
  • Victor Gulias
    • 5
  • John Hughes
    • 6
  • Simon Thompson
    • 7
  1. 1.Department of ComputingUniversity of SheffieldSheffieldUK
  2. 2.Goteborgs UniversitetGoetebougSweden
  3. 3.Erlang Solutions LtdLondonUK
  4. 4.Universidad Politecnica de MadridMadridSpain
  5. 5.Lambdastream Servicios Interactivos SLA CorunaSpain
  6. 6.Quviq ABSavedalenSweden
  7. 7.University of CanterburyCanterburyUK

Personalised recommendations