0% found this document useful (0 votes)
3K views5 pages

Path Sensitizing

This document discusses techniques for path sensitizing to achieve test coverage of all paths in code. It describes identifying predicates that control program flow, classifying them as correlated or uncorrelated, and extending test cases to cover dependent predicate combinations. It also discusses path instrumentation methods like link markers and counters to confirm the intended path was executed and check points were reached as expected. Lastly, it mentions applying path testing to integration, new code, maintenance, and rehosting.

Uploaded by

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

Path Sensitizing

This document discusses techniques for path sensitizing to achieve test coverage of all paths in code. It describes identifying predicates that control program flow, classifying them as correlated or uncorrelated, and extending test cases to cover dependent predicate combinations. It also discusses path instrumentation methods like link markers and counters to confirm the intended path was executed and check points were reached as expected. Lastly, it mentions applying path testing to integration, new code, maintenance, and rehosting.

Uploaded by

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

Path Sensitizing

Review: Achievable and Unachievable Paths


Pragmatic Observations
Heuristic Procedures for Sensitizing Paths
Identify
Classify
Start Path

The predicates are correlated


The predicates are incorrectly classified
Your path tracing is faulty
There is a bug

If coverage hasnt been achieved using independent


uncorrelated.
If coverage hasnt been achieved,extend the cases to
those that involve dependent predicates.
Last, use correlated, dependent predicates.
Each path will yield a set of inequalities, which must be
simultaneously satisfied to force the path.

Path Instrumentation
Coincidental Correctness.
Path instrumentation is what we have to do to
confirm that the outcome was achieved by the
intended path.
General Strategy
An interpretive trace program, you will recall is one that
executes every statement in order and records the
intermediate values of all calculations, the statement labels
traversed, etc.

Link Markers
A simple and effective form of instrumentation is called a
traversal marker or link marker.

Link Counter
The unique link name to be pushed into a string when the
link is traversed, we simply increment a link counter.

The checkout procedure then consists of answering the following


questions.
Do the begin link counter values equal the end link counter values for
all links?
Do the input link count of every decision equal the sum of the link
counts of the output links from that decisions?
Do the sum of the input link counts for a junction equal the output link
count for that junctions?
Do the counts match the values you predicted when you designed that
test?

Other instrumentation methods


Mark each link by a unique prime number and multiply the link name
into a central register.
Use a bit map with a single bit per link and set that bit when the link is
traversed.
Use a hash coding scheme over the link names, or calculate an error
detecting code over the link names, such as a check sum.
Use your symbolic debugger or trace to give you a trace only of
subroutine calls and return.
Set a variable value at the beginning of the link to unique number for
that link.

Implementation

Implementation and Application of Path


Testing

Integration, Coverage and Paths in


Called Components
New Code
Maintenance
Rehosting

You might also like