Global Information Lookup Global Information

Concolic testing information


Concolic testing (a portmanteau of concrete and symbolic, also known as dynamic symbolic execution) is a hybrid software verification technique that performs symbolic execution, a classical technique that treats program variables as symbolic variables, along a concrete execution (testing on particular inputs) 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 (test cases) with the aim of maximizing code coverage. Its main focus is finding bugs in real-world software, rather than demonstrating program correctness.

A description and discussion of the concept was introduced in "DART: Directed Automated Random Testing" by Patrice Godefroid, Nils Klarlund, and Koushik Sen.[1] The paper "CUTE: A concolic unit testing engine for C",[2] by Koushik Sen, Darko Marinov, and Gul Agha, further extended the idea to data structures, and first coined the term concolic testing. Another tool, called EGT (renamed to EXE and later improved and renamed to KLEE), based on similar ideas was independently developed by Cristian Cadar and Dawson Engler in 2005, and published in 2005 and 2006.[3] PathCrawler[4][5] first proposed to perform symbolic execution along a concrete execution path, but unlike concolic testing PathCrawler does not simplify complex symbolic constraints using concrete values. These tools (DART and CUTE, EXE) applied concolic testing to unit testing of C programs and concolic testing was originally conceived as a white box improvement upon established random testing methodologies. The technique was later generalized to testing multithreaded Java programs with jCUTE,[6] and unit testing programs from their executable codes (tool OSMOSE).[7] It was also combined with fuzz testing and extended to detect exploitable security issues in large-scale x86 binaries by Microsoft Research's SAGE.[8][9]

The concolic approach is also applicable to model checking. In a concolic model checker, the model checker traverses states of the model representing the software being checked, while storing both a concrete state and a symbolic state. The symbolic state is used for checking properties on the software, while the concrete state is used to avoid reaching unreachable state. One such tool is ExpliSAT by Sharon Barner, Cindy Eisner, Ziv Glazberg, Daniel Kroening and Ishai Rabinovitz[10]

  1. ^ Patrice Godefroid; Nils Klarlund; Koushik Sen (2005). "DART: Directed Automated Random Testing" (PDF). Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation. New York, NY: ACM. pp. 213–223. ISSN 0362-1340. Archived from the original (PDF) on 2008-08-29. Retrieved 2009-11-09.
  2. ^ Koushik Sen; Darko Marinov; Gul Agha (2005). "CUTE: a concolic unit testing engine for C" (PDF). Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering. New York, NY: ACM. pp. 263–272. ISBN 1-59593-014-0. Archived from the original (PDF) on 2010-06-29. Retrieved 2009-11-09.
  3. ^ Cristian Cadar; Vijay Ganesh; Peter Pawloski; David L. Dill; Dawson Engler (2006). "EXE: Automatically Generating Inputs of Death" (PDF). Proceedings of the 13th International Conference on Computer and Communications Security (CCS 2006). Alexandria, VA, USA: ACM.
  4. ^ Nicky Williams; Bruno Marre; Patricia Mouy (2004). "On-the-Fly Generation of K-Path Tests for C Functions". Proceedings of the 19th IEEE International Conference on Automated Software Engineering (ASE 2004), 20–25 September 2004, Linz, Austria. IEEE Computer Society. pp. 290–293. ISBN 0-7695-2131-2.
  5. ^ Nicky Williams; Bruno Marre; Patricia Mouy; Muriel Roger (2005). "PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis". Dependable Computing - EDCC-5, 5th European Dependable Computing Conference, Budapest, Hungary, April 20–22, 2005, Proceedings. Springer. pp. 281–292. ISBN 3-540-25723-3.
  6. ^ Koushik Sen; Gul Agha (August 2006). "CUTE and jCUTE : Concolic Unit Testing and Explicit Path Model-Checking Tools". Computer Aided Verification: 18th International Conference, CAV 2006, Seattle, WA, USA, August 17–20, 2006, Proceedings. Springer. pp. 419–423. ISBN 978-3-540-37406-0. Archived from the original on 2010-06-29. Retrieved 2009-11-09.
  7. ^ Sébastien Bardin; Philippe Herrmann (April 2008). "Structural Testing of Executables" (PDF). Proceedings of the 1st IEEE International Conference on Software Testing, Verification, and Validation (ICST 2008), Lillehammer, Norway. IEEE Computer Society. pp. 22–31. ISBN 978-0-7695-3127-4.,
  8. ^ Patrice Godefroid; Michael Y. Levin; David Molnar (2007). Automated Whitebox Fuzz Testing (PDF) (Technical report). Microsoft Research. TR-2007-58.
  9. ^ Patrice Godefroid (2007). "Random testing for security: blackbox vs. whitebox fuzzing" (PDF). Proceedings of the 2nd international workshop on Random testing: co-located with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007). New York, NY: ACM. p. 1. ISBN 978-1-59593-881-7. Retrieved 2009-11-09.
  10. ^ Sharon Barner, Cindy Eisner, Ziv Glazberg, Daniel Kroening, Ishai Rabinovitz: ExpliSAT: Guiding SAT-Based Software Verification with Explicit States. Haifa Verification Conference 2006: 138-154

and 21 Related for: Concolic testing information

Request time (Page generated in 0.8281 seconds.)

Concolic testing

Last Update:

Concolic testing (a portmanteau of concrete and symbolic, also known as dynamic symbolic execution) is a hybrid software verification technique that performs...

Word Count : 1949

Fuzzing

Last Update:

(fuzzer) Concolic testing Glitch Glitching Monkey testing Random testing Coordinated vulnerability disclosure Runtime error detection Security testing Smoke...

Word Count : 4886

Symbolic execution

Last Update:

Abstract interpretation Symbolic simulation Symbolic computation Concolic testing Control-flow graph Dynamic recompilation Anand, Saswat; Patrice Godefroid;...

Word Count : 1549

Random testing

Last Update:

Random testing is a black-box software testing technique where programs are tested by generating random, independent inputs. Results of the output are...

Word Count : 1386

Satisfiability modulo theories

Last Update:

of SMT solvers is symbolic execution for analysis and testing of programs (e.g., concolic testing), aimed particularly at finding security vulnerabilities...

Word Count : 4370

Dynamic program analysis

Last Update:

unit testing, integration testing and system testing. Computing the code coverage of a test identifies code that is not tested; not covered by a test. Although...

Word Count : 1074

Static program analysis

Last Update:

the application security industry the name static application security testing (SAST) is also used. SAST is an important part of Security Development...

Word Count : 1864

SAT solver

Last Update:

(2019). "Backing Backtracking". Theory and Applications of Satisfiability Testing – SAT 2019 (PDF). Lecture Notes in Computer Science. Vol. 11628. pp. 250–266...

Word Count : 3558

Separation logic

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 3607

Hyperproperty

Last Update:

represented as a "property" in the formal sense because there's no inclusion-test that could be applied to a single program trace; non-interference is an assertion...

Word Count : 958

Program analysis

Last Update:

These vulnerabilities are easier to correct than the ones found during the testing phase since static analysis leads to the root of the vulnerability. Due...

Word Count : 1310

Model checking

Last Update:

framework ECLAIR: a platform for the automatic analysis, verification, testing, and transformation of C and C++ programs FDR2: a model checker for verifying...

Word Count : 2717

Path explosion

Last Update:

Rehof, Jakob (eds.). "RWset: Attacking Path Explosion in Constraint-Based Test Generation". Tools and Algorithms for the Construction and Analysis of Systems...

Word Count : 303

Safety and liveness properties

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 1738

Typestate analysis

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 1834

Dependence analysis

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 543

Program slicing

Last Update:

related to other parts of the system. It will also provide an inexpensive test to determine if a full, more expensive, analysis of the system is warranted...

Word Count : 1417

Polyvariance

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 215

Hoare logic

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 3643

Runtime verification

Last Update:

combination of concrete and symbolic execution is also referred to as concolic execution. Dynamic program analysis Profiling (computer programming) Runtime...

Word Count : 4411

Abstract interpretation

Last Update:

Symbolic execution Termination Type systems Typestate Dynamic Data-flow Taint tracking Concolic execution Fuzzing Invariant inference Program slicing Testing...

Word Count : 2924

PDF Search Engine © AllGlobal.net