Skip to main content

Solving Constraints for Generational Search

  • Conference paper
Tests and Proofs (TAP 2013)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7942))

Included in the following conference series:

  • 768 Accesses

Abstract

Concolic testing is an automated software testing method that combines concrete and symbolic execution to achieve high code coverage and expose bugs in the program under test. During an execution of the program, constraints over the input variables are collected. Then, by changing these constraints in a systematic manner and solving the thereby derived constraint systems, new inputs can be obtained that force the program to execute along yet undiscovered program paths. The performance of the constraint solving step is crucial for the scalability of such an approach. In this paper, we are specifically concerned with solving the constraint systems obtained when employing the concolic testing search strategy known as Generational Search. We implemented several methods for preprocessing and solving the systems using the SMT solvers MathSAT, STP, Yices, and Z3, and evaluated the methods and solvers on constraints generated by the concolic execution engine Crest.

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 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
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. SMT-COMP (2012), http://smtcomp.sourceforge.net/2012 , (accessed January 31, 2013)

  2. Burnim, J., Sen, K.: Heuristics for Scalable Dynamic Test Generation. In: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE 2008), Lā€™Aquila, Italy, September 15-19, pp. 443ā€“446. IEEE (2008)

    Google ScholarĀ 

  3. Cadar, C., Dunbar, D., Engler, D.R.: KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs. In: Draves, R., van Renesse, R. (eds.) Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2008, San Diego, California, USA, December 8-10, pp. 209ā€“224. USENIX Association (2008)

    Google ScholarĀ 

  4. Cadar, C., Ganesh, V., Pawlowski, P.M., Dill, D.L., Engler, D.R.: EXE: Automatically generating inputs of death. In: Juels, A., Wright, R.N., di Vimercati, S.D.C. (eds.) Proceedings of the 13th ACM Conference on Computer and Communications Security, CCS 2006, Alexandria, VA, USA, October 30-November 3, pp. 322ā€“335. ACM (2006)

    Google ScholarĀ 

  5. Cadar, C., Godefroid, P., Khurshid, S., Pasareanu, C.S., Sen, K., Tillmann, N., Visser, W.: Symbolic execution for software testing in practice: preliminary assessment. In: Taylor, R.N., Gall, H., Medvidovic, N. (eds.) Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu, HI, USA, May 21-28, pp. 1066ā€“1071. ACM (2011)

    Google ScholarĀ 

  6. Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 3rd edn. The MIT Press (2009)

    Google ScholarĀ 

  7. de Moura, L., BjĆørner, N.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol.Ā 4963, pp. 337ā€“340. Springer, Heidelberg (2008)

    ChapterĀ  Google ScholarĀ 

  8. Dutertre, B., De Moura, L.: The Yices SMT solverĀ 2, 2 (2006), Tool paper at: http://yices.csl.sri.com/tool-paper.pdf

  9. Ganesh, V., Dill, D.L.: A Decision Procedure for Bit-Vectors and Arrays. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol.Ā 4590, pp. 519ā€“531. Springer, Heidelberg (2007)

    ChapterĀ  Google ScholarĀ 

  10. Godefroid, P., Klarlund, N., Sen, K.: DART: Directed Automated Random Testing. In: Sarkar, V., Hall, M.W. (eds.) Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, IL, USA, June 12-15, pp. 213ā€“223. ACM (2005)

    Google ScholarĀ 

  11. Godefroid, P., Levin, M.Y., Molnar, D.A.: Automated Whitebox Fuzz Testing. In: Proceedings of the Network and Distributed System Security Symposium, NDSS 2008, San Diego, California, USA, February 10-13. The Internet Society (2008)

    Google ScholarĀ 

  12. Griggio, A.: A Practical Approach to Satisability Modulo Linear Integer Arithmetic. JSATĀ 8(1/2), 1ā€“27 (2012)

    MathSciNetĀ  Google ScholarĀ 

  13. Holzer, A., Schallhart, C., Tautschnig, M., Veith, H.: Query-Driven Program Testing. In: Jones, N.D., MĆ¼ller-Olm, M. (eds.) VMCAI 2009. LNCS, vol.Ā 5403, pp. 151ā€“166. Springer, Heidelberg (2009)

    ChapterĀ  Google ScholarĀ 

  14. Pƶtzl, D.: Achieving High Coverage and Finding Bugs in Sequential and Concurrent Software. Masterā€™s thesis, Vienna University of Technology (2012)

    Google ScholarĀ 

  15. Sen, K., Marinov, D., Agha, G.: CUTE: A concolic unit testing engine for C. In: Wermelinger, M., Gall, H. (eds.) Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Lisbon, Portugal, September 5-9, pp. 263ā€“272. ACM (2005)

    Google ScholarĀ 

  16. Williams, N., Marre, B., Mouy, P., Roger, M.: PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis. In: Dal Cin, M., KaĆ¢niche, M., Pataricza, A. (eds.) EDCC 2005. LNCS, vol.Ā 3463, pp. 281ā€“292. Springer, Heidelberg (2005)

    ChapterĀ  Google ScholarĀ 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pƶtzl, D., Holzer, A. (2013). Solving Constraints for Generational Search. In: Veanes, M., ViganĆ², L. (eds) Tests and Proofs. TAP 2013. Lecture Notes in Computer Science, vol 7942. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38916-0_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-38916-0_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-38915-3

  • Online ISBN: 978-3-642-38916-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics