0% found this document useful (0 votes)
9 views6 pages

Symbolicexecution in Software Testing

Symbolic Execution is a software testing technique that tracks symbolic values to detect bugs, generate test cases, and verify programs. It uses path conditions and constraint solvers to analyze program behavior, while model checking ensures system models satisfy properties. Together, these techniques enhance software quality and reliability.

Uploaded by

agdhivya2005
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views6 pages

Symbolicexecution in Software Testing

Symbolic Execution is a software testing technique that tracks symbolic values to detect bugs, generate test cases, and verify programs. It uses path conditions and constraint solvers to analyze program behavior, while model checking ensures system models satisfy properties. Together, these techniques enhance software quality and reliability.

Uploaded by

agdhivya2005
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

SYMBOLIC EXECUTION

IN SOFTWARE TESTING
PRESENTED BY
DHIVYA G
513322104003

Introduction To Symbolic Execution


• Symbolic Execution is a software testing technique.

• It tracks symbolic values instead of actual inputs.

• Useful for detecting bugs, generating test cases, and


verifying programs.
Why Use Symbolic Execution?
• Bug Detection: Identify edge cases and vulnerabilities.

• Test Case Generation: Efficient test input generation.

• Program Verification: Mathematically prove


correctness.

Key Concepts
• Symbolic Values: Abstract representations of inputs.

• Path Conditions (PC): Logical expressions representing


decision paths.

• Constraint Solver: SMT solvers like Z3 check the


feasibility of path conditions.
How Symbolic Execution Works
• Initialize inputs as symbolic values.

• Track symbolic variables through the code.

• Generate path conditions at each decision point.

• Use a solver to check for bugs or generate test cases.

Example of Symbolic Execution

Path Conditions:
• PC1: x > 0 and y > 0

• PC2: x > 0 and y <= 0

• PC3: x <= 0
Case Study - Banking Application
Results:
• Detects invalid amounts.
• Ensures proper error handling.

• Generates test cases for each


condition.

Model Checking Overview

• Model Checking ensures a system model satisfies properties.

• Explore all possible states and transitions.

• Useful in safety-critical applications.


Symbolic Execution vs Model
Checking
ASPECT SYMBOLIC EXECUTION MODEL CHECKING
Explores system state
Approach Tracks symbolic paths
transitions
Bug detection & test case
Goal Property verification
generation
Problem Path explosion State explosion

Use Case Software debugging Safety-critical verification

Tools KLEE, S2E, Z3 Solver SPIN, NuSMV, UPPAAL

Conclusion
• Symbolic Execution is a powerful technique for
analyzing program behavior.

• Model Checking complements it for verifying


system properties.

• Together, they enhance software quality and


reliability.
THANK
YOU

You might also like