Abstract
Dynamic compositional symbolic execution is a well-known white-box method for generating unit test data. However there exists certain issues when applying this method for software that heavily depends on floating point data types. In this paper we present these issues and suggest our solution. Our presented method would integrate two techniques: symbolic execution and search-based testing to increase code coverage of software under test. We have implemented it as an extension to tool PEX, that is being developed at Microsoft Research. Our extension implements search-based testing as an optimization technique using AVM method. We present coverage comparison for several benchmark functions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Anand, S., Godefroid, P., Tillmann, N.: Demand-driven compositional symbolic execution, pp. 367–381. Springer (2008)
Anand, S., Păsăreanu, C.S., Visser, W.: JPF–SE: A Symbolic Execution Extension to Java PathFinder. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 134–138. Springer, Heidelberg (2007)
Arcuri, A.: Full theoretical runtime analysis of alternating variable method on the triangle classification problem, pp. 113–121. IEEE (2009)
Bareiša, E., Jusas, V., Motiejūnas, K., Šeinauskas, R.: Defining Random Search Termination Conditions. Electronics and Electrical Engineering 2(66), 26–31
Cadar, C., Ganesh, V., Pawlowski, P.M., Dill, D.L., Engler, D.R.: EXE: automatically generating inputs of death. ACM Transactions on Information and System Security (TISSEC) 12(2), 10
Godefroid, P.: Compositional dynamic test generation. In: 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 47–54. ACM (2007)
Goldberg, D.: What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys (CSUR) 23(1), 5–48
Kahan, W.: IEEE standard 754 for binary floating-point arithmetic. Lecture Notes on the Status of IEEE 754. 94720-91776
King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394
Lakhotia, K., Tillmann, N., Harman, M., de Halleux, J.: FloPSy - Search-Based Floating Point Constraint Solving for Symbolic Execution. In: Petrenko, A., Simão, A., Maldonado, J.C. (eds.) ICTSS 2010. LNCS, vol. 6435, pp. 142–157. Springer, Heidelberg (2010)
Misevičius, A.: Generation of grey patterns using an improved genetic evolutionary algorithm: some new results. Information Technology and Control 40(4), 330–343
Moré, J.J., Garbow, B.S., Hillstrom, K.E.: Testing unconstrained optimization software. ACM Transactions on Mathematical Software (TOMS) 7(1), 17–41
Sen, K., Marinov, D., Agha, G.: CUTE: A concolic unit testing engine for C, pp. 263–272. ACM (2005)
Souza, M., Borges, M., d’Amorim, M., Păsăreanu, C.S.: CORAL: Solving Complex Constraints for Symbolic PathFinder. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 359–374. Springer, Heidelberg (2011)
Tillmann, N., De Halleux, J.: Pex–white box test generation for .net. Tests and Proofs, 134–153
Vanoverberghe, D., Piessens, F.: Theoretical aspects of compositional symbolic execution. In: Fundamental Approaches to Software Engineering, pp. 247–261
Wegener, J., Baresel, A., Sthamer, H.: Evolutionary test environment for automatic structural testing. Information and Software Technology 43(14), 841–854
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Prelgauskas, J., Bareisa, E. (2012). Generating Test Data Using Symbolic Execution: Challenges with Floating Point Data Types. In: Skersys, T., Butleris, R., Butkiene, R. (eds) Information and Software Technologies. ICIST 2012. Communications in Computer and Information Science, vol 319. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33308-8_22
Download citation
DOI: https://doi.org/10.1007/978-3-642-33308-8_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33307-1
Online ISBN: 978-3-642-33308-8
eBook Packages: Computer ScienceComputer Science (R0)