Live briefing
Everything about Concolic testing
Software verification technique
Concolic testing is a hybrid software verification technique that performs symbolic execution, a classical technique that treats program variables as symbolic variables, along a concrete execution path. Symbolic execution is used in conjunction with an automated theorem prover or constraint solver based on constraint logic programming to generate new concrete inputs with the aim of maximizing code coverage. Its main focus is finding bugs in real-world software, rather than demonstrating program correctness. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Concolic testingA 5-minute orientation
- Skim a recent paper: Baton: symphony of random testing and concolic testing through machine learning and taint analysisInfluential work since 2022
- Pick up a classic book: Programming Languages and SystemsThe most-reprinted book on the subject
- Read the landmark paper: Automatically performing weak mutation with the aid of symbolic execution, concolic testing and search-based testingCited 60 times
- Go sideways: Symbolic executionA closely related topic
- Go sideways: Differential testingA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Automatically performing weak mutation with the aid of symbolic execution, concolic testing and search-based testing
Scalable Concolic Testing of RTL Models
RTL-ConTest: Concolic Testing on RTL for Detecting Security Vulnerabilities
Concolic testing of the multi-sector read operation for flash storage platform software
An improved distributed concolic testing approach
Scaling modified condition/decision coverage using distributed concolic testing for Java programs
SymEx-VP: An open source virtual prototype for OS-agnostic concolic testing of IoT firmware
Quantum Concolic Testing
🆕 Influential since 2022
Baton: symphony of random testing and concolic testing through machine learning and taint analysis
Incremental Concolic Testing of Register-Transfer Level Designs
State merging for concolic testing of event-driven applications
Testing concolic execution through consistency checks
Towards Quantification and Visualization of the Effects of Concretization During Concolic Testing
📚 Books worth reading
Programming Languages and SystemsRanjit Jhala · 2012
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Symbolic execution In computer science, symbolic execution (also symbolic evaluation or symbex) is a means of analyzing a program to determine what inputs cause each part…
- Differential testing Differential testing, also known as differential fuzzing, is a software testing technique that detect bugs, by providing the same input to a series of…
- Model-based testing In computing, model-based testing is an approach to testing that leverages model-based design for designing and possibly executing tests. As shown in the…
- Dynamic program analysis Dynamic program analysis is the act of analyzing software that involves executing a program – as opposed to static program analysis, which does not execute…
- Fuzzing In programming and software development, fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected…
- Satisfiability modulo theories In computer science and mathematical logic, satisfiability modulo theories (SMT) is the problem of determining whether a mathematical formula is satisfiable…
- Formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and…
- Abstract interpretation In computer science, abstract interpretation is a theory of sound approximation of the semantics of computer programs, based on monotonic functions over…