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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
Ammann, P., Offutt, J.: Introduction to Software Testing, 1st edn. Cambridge University Press, New York (2008)
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)
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)
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)
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)
Beck, K.: Extreme programming explained: embrace change. Addison-Wesley Longman Publishing Co., Inc. (2000)
Beck, K.: Test driven development: By example (2002)
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)
Claessen, K., Hughes, J.: QuickCheck: A lightweight tool for random testing of Haskell programs. SIGPLAN Not. 35(9), 268–279 (2000)
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)
Fraser, G., Arcuri, A.: Whole test suite generation. IEEE Transactions on Software Engineering 39(2), 276–291 (2013)
Gansner, E., North, S.: An open graph visualization system and its applications to software engineering. Software—Practice and Experience 30(11), 1203–1233 (2000)
Godefroid, P., Klarlund, N., Sen, K.: Dart: directed automated random testing. SIGPLAN Not. 40(6), 213–223 (2005)
Holzmann, G.: The SPIN Model Checker. Addison-Wesley (2004)
Jacky, J., Veanes, M., Campbell, C., Schulte, W.: Model-Based Software Testing and Analysis with C#, 1st edn. Cambridge University Press (2007)
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)
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)
Kramer, J.: Is abstraction the key to computing? Commun. ACM 50(4), 36–42 (2007)
Link, J., Fröhlich, P.: Unit Testing in Java: How Tests Drive the Code. Morgan Kaufmann Publishers, Inc. (2003)
Myers, G.: Art of Software Testing. John Wiley & Sons, Inc. (1979)
Nils, R.: ScalaCheck, A powerful tool for automatic unit testing (2013), https://github.com/rickynils/scalacheck
Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide, 2nd edn. Artima Inc., USA (2010)
Oracle. Java Platform Standard Edition 7 API Specification (2013), http://docs.oracle.com/javase/7/docs/api/
Pacheco, C., Ernst, M.: Randoop: feedback-directed random testing for Java. In: OOPSLA 2007 Companion, Montreal, Canada. ACM (2007)
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)
Reese, W.: Nginx: the high-performance web server and reverse proxy. Linux Journal 173 (2008)
Sen, K., Marinov, D., Agha, G.: CUTE: A concolic unit testing engine for C. SIGSOFT Softw. Eng. Notes 30(5), 263–272 (2005)
Utting, M., Legeard, B.: Practical Model-Based Testing: A Tools Approach. Morgan Kaufmann Publishers, Inc., San Francisco (2006)
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)
Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model checking programs. Automated Software Engineering Journal 10(2), 203–232 (2003)
Wampler, D., Payne, A.: Programming Scala. O’Reilly Series. O’Reilly Media (2009)
Zeller, A., Hildebrandt, R.: Simplifying and isolating failure-inducing input. Software Engineering 28(2), 183–200 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)