Skip to main content

Generating Test Data Using Symbolic Execution: Challenges with Floating Point Data Types

  • Conference paper
Information and Software Technologies (ICIST 2012)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 319))

Included in the following conference series:

  • 971 Accesses

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.

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. Anand, S., Godefroid, P., Tillmann, N.: Demand-driven compositional symbolic execution, pp. 367–381. Springer (2008)

    Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Arcuri, A.: Full theoretical runtime analysis of alternating variable method on the triangle classification problem, pp. 113–121. IEEE (2009)

    Google Scholar 

  4. Bareiša, E., Jusas, V., Motiejūnas, K., Šeinauskas, R.: Defining Random Search Termination Conditions. Electronics and Electrical Engineering 2(66), 26–31

    Google Scholar 

  5. 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

    Google Scholar 

  6. Godefroid, P.: Compositional dynamic test generation. In: 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 47–54. ACM (2007)

    Google Scholar 

  7. Goldberg, D.: What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys (CSUR) 23(1), 5–48

    Google Scholar 

  8. Kahan, W.: IEEE standard 754 for binary floating-point arithmetic. Lecture Notes on the Status of IEEE 754. 94720-91776

    Google Scholar 

  9. King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. Misevičius, A.: Generation of grey patterns using an improved genetic evolutionary algorithm: some new results. Information Technology and Control 40(4), 330–343

    Google Scholar 

  12. Moré, J.J., Garbow, B.S., Hillstrom, K.E.: Testing unconstrained optimization software. ACM Transactions on Mathematical Software (TOMS) 7(1), 17–41

    Google Scholar 

  13. Sen, K., Marinov, D., Agha, G.: CUTE: A concolic unit testing engine for C, pp. 263–272. ACM (2005)

    Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. Tillmann, N., De Halleux, J.: Pex–white box test generation for .net. Tests and Proofs, 134–153

    Google Scholar 

  16. Vanoverberghe, D., Piessens, F.: Theoretical aspects of compositional symbolic execution. In: Fundamental Approaches to Software Engineering, pp. 247–261

    Google Scholar 

  17. Wegener, J., Baresel, A., Sthamer, H.: Evolutionary test environment for automatic structural testing. Information and Software Technology 43(14), 841–854

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics