Testing with Functional Reference Implementations

  • Pieter Koopman
  • Rinus Plasmeijer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6546)


This paper discusses our approach to test programs that determine which candidates are elected in the Scottish Single Transferable Vote (STV) elections. Due to the lack of properties suited for model-based testing, we have implemented a reference implementation in a pure functional programming language. Our tests revealed issues in the law regulating these elections as well as the programs implementing the rules that are offered for certification. Hence, certification by testing with a reference implementation is able to reveal problems in the software to be certified. Functional programming languages appeared to be an excellent tool to implement reference implementations. The reference implementation was developed quickly and none of the differences found was due to an error in the reference implementation.


Test Suite Election Result Reference Implementation Election Rule Election Algorithm 
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. 1.
    Aslaksen, H., Mcguire, G.: Mathematical aspects of irish elections. Irish Mathematics Teachers Association Newsletter 105, 40–59 (2006)Google Scholar
  2. 2.
    Fishburn, P.C., Brams, S.J.: Paradoxes of preferential voting. Mathematics Magazine 56(4), 207–214 (1983)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
    Droop, H.: On methods of electing representatives. Journal of the Statistical Society of London 44(2), 141–202 (1881)CrossRefGoogle Scholar
  4. 4.
    Farrell, D.M.: Comparing electoral systems. Prentice Hall/Harvester Wheatsheaf, London, New York (1997)CrossRefGoogle Scholar
  5. 5.
    Koopman, P., Alimarine, A., Tretmans, J., Plasmeijer, R.: Gast: generic automated software testing. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, pp. 84–100. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Koopman, P., Plasmeijer, R.: Fully automatic testing with functions as specifications. In: Horváth, Z. (ed.) CEFP 2005. LNCS, vol. 4164, pp. 35–61. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Koopman, P., Plasmeijer, R.: Generic generation of elements of types. In: Proceedings of the 6th Symposium on Trends in Functional Programming, TFP 2005, Tallin, Estonia, September 23-24, pp. 163–178. Intellect Books (2005) ISBN 978-1-84150-176-5Google Scholar
  8. 8.
    Plasmeijer, R., van Eekelen, M.: Concurrent Clean language report (version 2.0) (December 2001),
  9. 9.
    The Electoral Commission. Vote Scotland,
  10. 10.
    The Scottish Ministers. Scottish local government elections order 2007. Rule 45–52 (2006)Google Scholar
  11. 11.
    Wikipedia. Single transferable vote,

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Pieter Koopman
    • 1
  • Rinus Plasmeijer
    • 1
  1. 1.Institute for Computing and Information Sciences (ICIS)Radboud University NijmegenThe Netherlands

Personalised recommendations