Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ASE.2008.69guideproceedingsArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article
Free access

Heuristics for Scalable Dynamic Test Generation

Published: 15 September 2008 Publication History

Abstract

Recently there has been great success in using symbolic execution to automatically generate test inputs for small software systems. A primary challenge in scaling such approaches to larger programs is the combinatorial explosion of the path space. It is likely that sophisticated strategies for searching this path space are needed to generate inputs that effectively test large programs (by, e.g., achieving significant branch coverage). We present several such heuristic search strategies, including a novel strategy guided by the control flow graph of the program under test. We have implemented these strategies in CREST, our open source concolic testing tool for C, and evaluated them on two widely-used software tools, grep 2.2 (15 K lines of code) and Vim 5.7 (150 K lines). On these benchmarks, the presented heuristics achieve significantly greater branch coverage on the same testing budget than concolic testing with a traditional depth-first search strategy.

References

[1]
D. Bird and C. Munoz, "Automatic Generation of Random Self-Checking Test Cases," IBM Systems Journal, vol. 22, no. 3, pp. 229-245, 1983.
[2]
J. E. Forrester and B. P. Miller, "An Empirical Study of the Robustness of Windows NT Applications Using Random Testing," in Proceedings of the 4th USENIX Windows System Symposium, 2000.
[3]
C. Csallner and Y. Smaragdakis, "JCrasher: an automatic robustness tester for Java," Software: Practice and Experience, vol. 34, pp. 1025- 1050, 2004.
[4]
C. Pacheco and M. D. Ernst, "Eclat: Automatic generation and classification of test inputs," in 19th European Conference Object-Oriented Programming, 2005.
[5]
J. C. King, "Symbolic Execution and Program Testing," Communications of the ACM, vol. 19, no. 7, pp. 385-394, 1976.
[6]
L. Clarke, "A system to generate test data and symbolically execute programs," IEEE Trans. Software Eng., vol. 2, pp. 215-222, 1976.
[7]
P. Godefroid, N. Klarlund, and K. Sen, "DART: Directed automated random testing," in Proc. of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (PLDI), 2005.
[8]
K. Sen, D. Marinov, and G. Agha, "CUTE: A concolic unit testing engine for C," in 5th joint meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE'05). ACM, 2005.
[9]
C. Cadar, V. Ganesh, P. Pawlowski, D. Dill, and D. Engler, "EXE: Automatically generating inputs of death," in ACM Conference on Computer and Communications Security (CCS 2006), 2006.
[10]
G. Necula, S. McPeak, S. Rahul, and W. Weimer, "CIL: Intermediate language and tools for analysis and transformation of C programs," in Proceedings of Conference on Compiler Construction, 2002.
[11]
B. Dutertre and L. M. de Moura, "A fast linear-arithmetic solver for DPLL(T)," in Computer Aided Verification, ser. LNCS, vol. 4144, 2006, pp. 81-94.
[12]
J. Harrold and G. Rothermel, "Siemens programs, HR variants," http: //www.cc.gatech.edu/aristotle/Tools/subjects/.

Cited By

View all
  • (2024)Path Exploration Strategy for Symbolic Execution based on Multi-strategy Active LearningProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3671403(165-168)Online publication date: 24-Jul-2024
  • (2024)FeatMaker: Automated Feature Engineering for Search Strategy of Symbolic ExecutionProceedings of the ACM on Software Engineering10.1145/36608151:FSE(2447-2468)Online publication date: 12-Jul-2024
  • (2024)Marco: A Stochastic Asynchronous Concolic ExplorerProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3623301(1-12)Online publication date: 20-May-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
ASE '08: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering
September 2008
538 pages
ISBN:9781424421879

Publisher

IEEE Computer Society

United States

Publication History

Published: 15 September 2008

Author Tags

  1. control flow graph
  2. depth-first search strategy
  3. open source concolic testing tool
  4. path space
  5. scalable dynamic test generation
  6. software systems
  7. software tools
  8. symbolic execution

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)35
  • Downloads (Last 6 weeks)6
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Path Exploration Strategy for Symbolic Execution based on Multi-strategy Active LearningProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3671403(165-168)Online publication date: 24-Jul-2024
  • (2024)FeatMaker: Automated Feature Engineering for Search Strategy of Symbolic ExecutionProceedings of the ACM on Software Engineering10.1145/36608151:FSE(2447-2468)Online publication date: 12-Jul-2024
  • (2024)Marco: A Stochastic Asynchronous Concolic ExplorerProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3623301(1-12)Online publication date: 20-May-2024
  • (2024)Automated test data generation and stubbing method for C/C++ embedded projectsAutomated Software Engineering10.1007/s10515-024-00449-631:2Online publication date: 10-Jun-2024
  • (2024)Exchanging information in cooperative software validationSoftware and Systems Modeling (SoSyM)10.1007/s10270-024-01155-323:3(695-719)Online publication date: 1-Jun-2024
  • (2024)KLEEF: Symbolic Execution Engine (Competition Contribution)Fundamental Approaches to Software Engineering10.1007/978-3-031-57259-3_18(314-319)Online publication date: 6-Apr-2024
  • (2023)Rare Path Guided FuzzingProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598136(1295-1306)Online publication date: 12-Jul-2023
  • (2023)DIVER: Oracle-Guided SMT Solver Testing with Unrestricted Random MutationsProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00187(2224-2236)Online publication date: 14-May-2023
  • (2022)SymFusion: Hybrid Instrumentation for Concolic ExecutionProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556928(1-12)Online publication date: 10-Oct-2022
  • (2022)TAG: Tagged Architecture GuideACM Computing Surveys10.1145/353370455:6(1-34)Online publication date: 7-Dec-2022
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media