Skip to main content

Modbat: A Model-Based API Tester for Event-Driven Systems

  • Conference paper
Hardware and Software: Verification and Testing (HVC 2013)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8244))

Included in the following conference series:

Abstract

Model-based testing derives test executions from an abstract model that describes the system behavior. However, existing approaches are not tailored to event-driven or input/output-driven systems. In particular, there is a need to support non-blocking I/O operations, or operations throwing exceptions when communication is disrupted.

Our new tool “Modbat” is specialized for testing systems where these issues are common. Modbat uses extended finite-state machines to model system behavior. Unlike most existing tools, Modbat offers a domain-specific language that supports state machines and exceptions as first-class constructs. Our model notation also handles non-determinism in the system under test, and supports alternative continuations of test cases depending on the outcome of non-deterministic operations.

These features allow us to model a number of interesting libraries succinctly. Our experiments show the flexibility of Modbat and how language support for model features benefits their correct use.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ammann, P., Offutt, J.: Introduction to Software Testing, 1st edn. Cambridge University Press, New York (2008)

    Book  MATH  Google Scholar 

  2. Artho, C.: Separation of transitions, actions, and exceptions in model-based testing. In: Moreno-Díaz, R., Pichler, F., Quesada-Arencibia, A. (eds.) EUROCAST 2009. LNCS, vol. 5717, pp. 279–286. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  3. Artho, C., Biere, A., Seidl, M.: Model-based testing for verification back-ends. In: Veanes, M., Viganò, L. (eds.) TAP 2013. LNCS, vol. 7942, pp. 39–55. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  4. Artho, C., Hagiya, M., Potter, R., Tanabe, Y., Weitl, F., Yamamoto, M.: Software model checking for distributed systems with selector-based, non-blocking communication. In: Proc. 28th Int. Conf. on Automated Software Engineering (ASE 2013), Palo Alto, USA. IEEE Computer Society (to be published, 2013)

    Google Scholar 

  5. Artho, C., Leungwattanakit, W., Hagiya, M., Tanabe, Y.: Efficient model checking of networked application. In: Paige, R.F., Meyer, B. (ed.) TOOLS EUROPE 2008. LNBIP, vol. 11, pp. 22–40. Springer, Heidelberg (1974)

    Google Scholar 

  6. Beck, K.: Extreme programming explained: embrace change. Addison-Wesley Longman Publishing Co., Inc. (2000)

    Google Scholar 

  7. Beck, K.: Test driven development: By example (2002)

    Google Scholar 

  8. Cheng, K., Krishnakumar, A.: Automatic functional test generation using the extended finite state machine model. In: Proc. 30th Int. Design Automation Conference, DAC 1993, pp. 86–91. ACM, New York (1993)

    Chapter  Google Scholar 

  9. Claessen, K., Hughes, J.: QuickCheck: A lightweight tool for random testing of Haskell programs. SIGPLAN Not. 35(9), 268–279 (2000)

    Article  Google Scholar 

  10. Forrester, J., Miller, B.: An empirical study of the robustness of Windows NT applications using random testing. In: 4th USENIX Windows System Symposium, Seattle, USA, pp. 59–68 (2000)

    Google Scholar 

  11. Fraser, G., Arcuri, A.: Whole test suite generation. IEEE Transactions on Software Engineering 39(2), 276–291 (2013)

    Article  Google Scholar 

  12. Gansner, E., North, S.: An open graph visualization system and its applications to software engineering. Software—Practice and Experience 30(11), 1203–1233 (2000)

    Article  MATH  Google Scholar 

  13. Godefroid, P., Klarlund, N., Sen, K.: Dart: directed automated random testing. SIGPLAN Not. 40(6), 213–223 (2005)

    Article  Google Scholar 

  14. Holzmann, G.: The SPIN Model Checker. Addison-Wesley (2004)

    Google Scholar 

  15. Jacky, J., Veanes, M., Campbell, C., Schulte, W.: Model-Based Software Testing and Analysis with C#, 1st edn. Cambridge University Press (2007)

    Google Scholar 

  16. Kanstrén, T., Puolitaival, O.: Using built-in domain-specific modeling support to guide model-based test generation. In: Proc. 7th Workshop on Model-Based Testing (MBT 2012). EPTCS, vol. 80, pp. 58–72 (2012)

    Google Scholar 

  17. Kitamura, T., Do, N.T.B., Ohsaki, H., Fang, L., Yatabe, S.: Test-case design by feature trees. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 458–473. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  18. Kramer, J.: Is abstraction the key to computing? Commun. ACM 50(4), 36–42 (2007)

    Article  Google Scholar 

  19. Link, J., Fröhlich, P.: Unit Testing in Java: How Tests Drive the Code. Morgan Kaufmann Publishers, Inc. (2003)

    Google Scholar 

  20. Myers, G.: Art of Software Testing. John Wiley & Sons, Inc. (1979)

    Google Scholar 

  21. Nils, R.: ScalaCheck, A powerful tool for automatic unit testing (2013), https://github.com/rickynils/scalacheck

  22. Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide, 2nd edn. Artima Inc., USA (2010)

    Google Scholar 

  23. Oracle. Java Platform Standard Edition 7 API Specification (2013), http://docs.oracle.com/javase/7/docs/api/

  24. Pacheco, C., Ernst, M.: Randoop: feedback-directed random testing for Java. In: OOPSLA 2007 Companion, Montreal, Canada. ACM (2007)

    Google Scholar 

  25. Ramler, R., Winkler, D., Schmidt, M.: Random test case generation and manual unit testing: Substitute or complement in retrofitting tests for legacy code? In: 36th Conf. on Software Engineering and Advanced Applications, pp. 286–293. IEEE Computer Society (2012)

    Google Scholar 

  26. Reese, W.: Nginx: the high-performance web server and reverse proxy. Linux Journal 173 (2008)

    Google Scholar 

  27. Sen, K., Marinov, D., Agha, G.: CUTE: A concolic unit testing engine for C. SIGSOFT Softw. Eng. Notes 30(5), 263–272 (2005)

    Article  Google Scholar 

  28. Utting, M., Legeard, B.: Practical Model-Based Testing: A Tools Approach. Morgan Kaufmann Publishers, Inc., San Francisco (2006)

    Google Scholar 

  29. Veanes, M., Campbell, C., Grieskamp, W., Schulte, W., Tillmann, N., Nachmanson, L.: Model-based testing of object-oriented reactive systems with Spec Explorer. In: Hierons, R.M., Bowen, J.P., Harman, M. (eds.) FORTEST. LNCS, vol. 4949, pp. 39–76. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  30. Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model checking programs. Automated Software Engineering Journal 10(2), 203–232 (2003)

    Article  Google Scholar 

  31. Wampler, D., Payne, A.: Programming Scala. O’Reilly Series. O’Reilly Media (2009)

    Google Scholar 

  32. Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. Software Engineering 28(2), 183–200 (2002)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer International Publishing Switzerland

About this paper

Cite this paper

Artho, C.V. et al. (2013). Modbat: A Model-Based API Tester for Event-Driven Systems. In: Bertacco, V., Legay, A. (eds) Hardware and Software: Verification and Testing. HVC 2013. Lecture Notes in Computer Science, vol 8244. Springer, Cham. https://doi.org/10.1007/978-3-319-03077-7_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-03077-7_8

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-03076-0

  • Online ISBN: 978-3-319-03077-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics