Skip to main content

Fully Automatic Testing with Functions as Specifications

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4164))

Abstract

Although computer systems penetrate all facets of society, the software running those systems may contain many errors. Producing high quality software appears to be difficult and very expensive. Even determining the quality of software is not easy. Testing is by far the most used way to estimate the quality of software. Testing itself is not easy and time consuming.

In order to reduce the costs and increase the quality and speed of testing, testing should be automated itself. An automatical specification based test tool generates test data, executes the associated tests, and makes a fully automatically verdict based on a formal specification. Advantages of this approach are that one specifies properties instead of instances of these properties, test data are derived automatically instead of manually, the tests performed are always up to date with the current specification, and automatic testing is fast and accurate.

We will show that functions in a functional programming language can be used very well to model properties. One branch of the automatic test system Gast handles logical properties relating function arguments and results of a single function call. The other branch of Gast handles specifications of systems with an internal state.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. See, http://www.junit.org

  2. Bernot, G., Gaudel, M.C., Marre, B.: Software testing based on formal specifications: a theory and a tool. Software Engineering Journal, 387–405 (November 1991)

    Google Scholar 

  3. 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)

    Chapter  Google Scholar 

  4. Koopman, P., Plasmeijer, R.: Testing reactive systems with GAST. In: Gilmore, S. (ed.) Trends in Functional Programming, vol. 4, pp. 111–129 (2004)

    Google Scholar 

  5. van Weelden, A., et al.: On-the-Fly Formal Testing of a Smart Card Applet. SEC 2005. Or technical report NIII-R0403, at: http://www.cs.ru.nl/research/reports

  6. Claessen, K., Hughes, J.: QuickCheck: A lightweight Tool for Random Testing of Haskell Programs. In: ICFP, pp. 268–279. ACM, New York (2000), www.cs.chalmers.se/~rjmh/QuickCheck

    Chapter  Google Scholar 

  7. Plasmeijer, R., van Eekelen, M.: Clean language report version 2.1, http://www.cs.ru.nl/~clean

  8. 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)

    Chapter  Google Scholar 

  9. Núñez, M., Roderíguez, I.: Encoding PARM into (Timed) EFSMs. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 1–16. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  10. Lee, D., Yannakakis, M.: Principles and methods of testing finite state machines – a survey. Proc. IEEE 84(8), 1090–1126 (1996)

    Article  Google Scholar 

  11. ISO/IEC, 13568:2002 standard, See also: http://www.vl.zuser.org

  12. Koopman, P., Plasmeijer, R.: Generic Generation of Elements of Types. In: Sixth Symposium on Trends in Functional Programming (TFP 2005), Tallin, Estonia, September 23-24 (2005)

    Google Scholar 

  13. Alimarine, A., Plasmeijer, R.: A Generic Programming Extension for Clean. In: Arts, T., Mohnen, M. (eds.) IFL 2002. LNCS, vol. 2312, pp. 168–185. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  14. de Mol, M., van Eekelen, M., Plasmeijer, R.: Theorem Proving for Functional Programmers. In: Arts, T., Mohnen, M. (eds.) IFL 2002. LNCS, vol. 2312, pp. 55–71. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. Holzmann, G.: The SPIN Model Checker (2004) ISBN 0-321-22862-6

    Google Scholar 

  16. Behrmann, G., David, A., Larsen, K.: A Tutorial on Uppaal. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 200–236. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  17. Beyer, D., Chlipala, A., Henzinger, T., Jhala, R., Majumdar, R.: The Blast query language for software verification. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 2–18. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  18. Chen, H., Dean, D., Wagner, D.: Model checking one million lines of C code. In: Proceedings 11th Annual NDSS, San Diego, CA (February 2004)

    Google Scholar 

  19. Dart, K.P., Stirling, L., Winikoff, M.: Kazmierczak Dart, Stirling, Winikoff: Verifying requirements through mathematical modelling and animation. Int. J. Softw. Eng. Know. Eng. 10(2), 251–273 (2000)

    Article  Google Scholar 

  20. Kemmerer, R.: Testing formal specifications to detect design errors. IEEE Tr. on Soft. Eng. 11(1), 32–43 (1985)

    Article  Google Scholar 

  21. Liu, S.: Verifying Consistency and Validity of Formal Specifications by Testing. In: Wing, J.M., Woodcock, J.C.P., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 896–914. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  22. Miller, T., Strooper, P.: A framework and tool support for the systematic testing of model-based specifications ACM Tr. Soft. Eng. and Meth., pp. 409–439 (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Koopman, P., Plasmeijer, R. (2006). Fully Automatic Testing with Functions as Specifications. In: Horváth, Z. (eds) Central European Functional Programming School. CEFP 2005. Lecture Notes in Computer Science, vol 4164. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11894100_2

Download citation

  • DOI: https://doi.org/10.1007/11894100_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-46843-1

  • Online ISBN: 978-3-540-46845-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics