Simulation Testing and Model Checking: A Case Study Comparing these Approaches
- 460 Downloads
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 discoveryPreview
Unable to display preview. Download preview PDF.
References
- 1.Runeson, P.: A Survey of Unit Testing Practices. IEEE Software 23(4), 22–29 (2006) ISSN: 0740-7459/06Google Scholar
- 2.Stephens, M., Rosenberg, D.: Design Driven Testing: Test Smarter, Not Harder. Apress, Berkely (2010) ISBN: 978-1430229438Google Scholar
- 3.Cockburn, A.: Writing Effective Use Cases. Addison-Wesley, Boston (2000)Google Scholar
- 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.Szyperski, C., Gruntz, D., Murer, S.: Component Software – Beyond Object-Oriented Programming. ACM Press, New York (2000)Google Scholar
- 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.Fujimoto, R.M.: Parallel and Distributed Simulation Systems. John Wiley & Sons, New York (2000)Google Scholar
- 8.Binder, R.: Testing Object-Oriented Systems. Addison-Wesley, Boston (2000)Google Scholar
- 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.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.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.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.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.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.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.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.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.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.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.Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model Checking Programs. Automated Software Engineering 10(2), 203–232 (2003)CrossRefGoogle Scholar
- 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.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.Corbett, J.C.: Evaluating deadlock detection methods for concurrent software. IEEE Transactions on Software Engineering 22(3), 161–179 (1996)CrossRefGoogle Scholar
- 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.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.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.Artho, C., Biere, A.: Combined Static and Dynamic Analysis. Electronic Notes in Theoretical Computer Science 131, 3–14 (2005)CrossRefGoogle Scholar
- 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.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