Advertisement

Simulation Testing and Model Checking: A Case Study Comparing these Approaches

Conference paper
  • 460 Downloads
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8785)

Abstract

One of the challenging problems in software development is the assuring of the correctness of the created software. During our previous research, we developed a framework for the simulation-based testing of software components SimCo that allows us to perform testing of component-based applications or its fragments. The SimCo was originally designed to perform the tests according to a given scenario in order to determine extra-functional properties of the components. However, it can be also used to test the correctness of the component behaviour. For this purpose, there are also other ways – the model checking tools, such as Java Pathfinder. We want to compare the strengths and weaknesses of the two approaches as represented by the SimCo and the Java Pathfinder. In this paper, the results of the comparison of these two testing methods on a case study using the implementation of the FTP protocol are discussed.

Keywords

software component simulation testing model checking Java Pathfinder SimCo defect discovery 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Runeson, P.: A Survey of Unit Testing Practices. IEEE Software 23(4), 22–29 (2006) ISSN: 0740-7459/06Google Scholar
  2. 2.
    Stephens, M., Rosenberg, D.: Design Driven Testing: Test Smarter, Not Harder. Apress, Berkely (2010) ISBN: 978-1430229438Google Scholar
  3. 3.
    Cockburn, A.: Writing Effective Use Cases. Addison-Wesley, Boston (2000)Google Scholar
  4. 4.
    Becker, S., Koziolek, H., Reussner, R.: Model-Based Performance Prediction with the Palladio Component Model. In: Proceedings of the 6th International Workshop on Software and Performance, pp. 54–66. ACM, New York (2007)Google Scholar
  5. 5.
    Szyperski, C., Gruntz, D., Murer, S.: Component Software – Beyond Object-Oriented Programming. ACM Press, New York (2000)Google Scholar
  6. 6.
    Lipka, R., Potužák, T., Brada, P., Herout, P.: SimCo – Hybrid Simulator for Testing of Component Based Applications. In: van Emde Boas, P., Groen, F.C.A., Italiano, G.F., Nawrocki, J., Sack, H. (eds.) SOFSEM 2013. LNCS, vol. 7741, pp. 420–431. Springer, Heidelberg (2013)Google Scholar
  7. 7.
    Fujimoto, R.M.: Parallel and Distributed Simulation Systems. John Wiley & Sons, New York (2000)Google Scholar
  8. 8.
    Binder, R.: Testing Object-Oriented Systems. Addison-Wesley, Boston (2000)Google Scholar
  9. 9.
    Kim, Y., Honh, H., Cho, S., Bae, D., Cha, S.: Test Cases Generation from UML State Diagrams. IEE Proc. Software 146(4), 187–192 (1999)CrossRefGoogle Scholar
  10. 10.
    Offutt, J., Abdurazik, A.: Generating Tests from UML Specifications. In: France, R.B. (ed.) UML 1999. LNCS, vol. 1723, pp. 416–429. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  11. 11.
    Riebisch, M., Philippow, I., Götze, M.: UML-Based Statistical Test Case Generation. In: Akşit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 394–411. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  12. 12.
    Briand, L., Labiche, Y.: A UML-Based Approach to System Testing. Journal of Software and System Modeling 1(1), 10–42 (2002)CrossRefGoogle Scholar
  13. 13.
    Lipka, R., Potuzak, T., Brada, P., Herout, P.: Verification of SimCo – Simulation Tool for Testing of Component-based Application. In: EUROCON 2013, Zagreb, pp. 467–474 (2013)Google Scholar
  14. 14.
    Kačer, J.: Testing Java software for embedded devices using J-Sim and serialization of threads. In: Proc. of Electronic Computers and Informatics, pp. 382–387. VIENALA Press (2004)Google Scholar
  15. 15.
    Havelund, K., Pressburger, T.: Model Checking Java Programs Using Java Pathfinder. International Journal on Software Tools for Technology Transfer 2(4) (2000)Google Scholar
  16. 16.
    Mukund, M.: Finite-state Automata on Infinite Inputs, tutorial talk, Sixth National Seminar on Theoretical Computer Science, Banasthali Vidyapith, Banasthali Rajasthan (1996)Google Scholar
  17. 17.
    Giannakopoulou, D., Lerda, F.: From States to Transitions: Improving translation of LTL formulae to Büchi automata. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 308–326. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  18. 18.
    Corbett, J., Dwyer, M.B., Hatcliff, J., Laubach, S., Pasareanu, C.S., Zheng, H.: Bandera: Extracting Finite-state Models from Java Source Code. In: Proc. of 22nd International Conference on Software Engineering, Limerick, Poland, pp. 439–448 (2000)Google Scholar
  19. 19.
    Paška, M.: An Approach to Generating C Code with Proven LTL-based Properties. In: Proc. of International Conference on Computer as a Tool EUROCON, pp. 27–29 (2011)Google Scholar
  20. 20.
    Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model Checking Programs. Automated Software Engineering 10(2), 203–232 (2003)CrossRefGoogle Scholar
  21. 21.
    Lerda, F., Visser, W.: Addressing Dynamic Issues of Program Model Checking. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 80–102. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  22. 22.
    Avrunin, G.S., Cobert, J.C., Dwyer, M.B., Pasarenau, C.S., Siegel, S.F.: Comparing finite-state verification techniques for concurrent software, Technical report UM-CS-1999-069, Department of Computer Science, Universitz of Massachusetts at Amherst, USA (1999)Google Scholar
  23. 23.
    Corbett, J.C.: Evaluating deadlock detection methods for concurrent software. IEEE Transactions on Software Engineering 22(3), 161–179 (1996)CrossRefGoogle Scholar
  24. 24.
    Widmaier, J.C., Smidts, C., Huang, X.: Producing more reliable software: Mature software engineering process vs. state-of-the-art technology. In: Proc. of 22nd International Conference on Software Engineering, Limerick, Ireland, pp. 87–94. ACM Press (2000)Google Scholar
  25. 25.
    Brat, G., Drusinsky, D., Giannakopoulou, D., Goldberg, A., Havelund, K., Lowry, M., Pasareanu, C., Venet, A., Visser, W., Washington, R.: Experimental Evaluation of Verification and Validation Tools on Martian Rover Software. Journal of Formal Methods in System Design 25(2-3), 167–198 (2004)CrossRefzbMATHGoogle Scholar
  26. 26.
    Cotroneo, D., Natella, R., Russo, S., Scippacercola, F.: State-Driven Testing of Distributed Systems. In: Baldoni, R., Nisse, N., van Steen, M. (eds.) OPODIS 2013. LNCS, vol. 8304, pp. 114–128. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  27. 27.
    Artho, C., Biere, A.: Combined Static and Dynamic Analysis. Electronic Notes in Theoretical Computer Science 131, 3–14 (2005)CrossRefGoogle Scholar
  28. 28.
    Vorobyov, K., Padmanabhan, K.: Comparing model checking and static program analysis: A case study in error detection approaches. In: Proc. of 5th international Wokshop in System Software Verification, Vancouver, Canada, pp. 1–7 (2010)Google Scholar
  29. 29.
    Engler, D., Musuvathi, M.: Static Analysis versus Software Model Checking for Bug Finding. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 191–210. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  1. 1.NTISUniversity of West BohemiaPlzenCzech Republic
  2. 2.Department of Computer Science and Engineering, Faculty of Applied SciencesUniversity of West BohemiaPlzenCzech Republic

Personalised recommendations