Anda di halaman 1dari 17

# When is testing sufficient?

## Agreeing presentation topics deadline is today

We will learn
Data flow coverage criteria

Comparison of criteria
Excercise

Last time
Control Flow criteria

Black box

Equivalence partitions Boundary values Statement coverage Branch coverage Path coverage Condition, multiple condition coverage

White box

## White box structural coverage

Based on program formalisation (~program)

Graph ~ FSM (Finite State Machine) ~ EFSM (Extended FSM) ~ State machine diagram, activity diagram ~ ...

## Assignment and comparison operators

Assignment

= Assignment (x = a + b)
== Equal (a == b) != Not Equal (a != b) >, <, >=, <=

Comparison

## Data flow coverage - definitions

Definition defining a variable: x=a+2;

## Use using the variable value

For computation a=x+2 (c-use, computation use) In the predicate x==0 (p-use, predicate use)
x=1 x=2 X!=1 x==1

## x++ (st x=x+1)

Y=x+1

Definitions
x is defined on the edge ed, used on the edge

eu On the path ed, e1, ... , en, eu x is not redefined on sub-path e1, ..., en. If the previous holds, then the sub-path e1, ..., en is definition-clear path for x In other words, x is not redefined on this subpath, x holds the same value

## All-defs (for x) coverage

If x is defined on the edge i, then all-defs

coverage is reached, when tests execute at least one path from i to some use of x In other words: all-defs criterion requires, that every definition of x has at least one use (predicate or computational)
x=1 k=x+2 x<3 k=k+2

x=2

k=x+1

y=0

y=y+1

2 6

## All-uses (for x) coverage

Also reach coverage or du-pairs coverage

## If variable x is defined on the edge i, then all-

uses criterion requires a test set, where tests excecute at least one path from every i to every edge, where the assigned value of x is used In other words: at least one path from each definition of x to every use of this definition

## All-uses (for x) coverage (2)

All-uses: {1, 3, 4}, {1,3,4,5}, {1, 2, 3}, {1, 2, 3,

4}, {1, 2, 3, 4, 5}
x=1
1 3

k=x+2
4

x<3 k=k+2
5

x=2

k=x+1

y=0

y=y+1

## All-p-uses/All-c-uses (for x) coverage

All-p-uses at least one path from defining x

to every use of this definition in a predicate All-c-uses at least one path from defining x to every use of this definition in computation

## NB! a=x-1, not x=a+1

x=1 k=x+2 3 4 x<3 k=k+2 5

1

x=2

k=x+1

y=0

y=y+1

## All-du-paths (for x) coverage

If x is defined on the edge i, then all-du-paths

criterion requires tests to excecute all paths from every definition of x to every use of each definition In other words: all possible paths form defininig x to its use
x=1 1 3 k=x+2 4 x<3 k=k+2 5

x=2

k=x+1

y=0

y=y+1

All-du-paths: {1, 3, 4}, {1,3,4,5}, {1,3,6,4,5}, {1, 2, 3}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 6, 4, 5}

Strength of criteria
All-paths Stronger All-du-pairs All-uses All-c-uses All-defs All-p-uses

Weaker

## All nodes (statement coverage)

Related issues
Which tests (paths) should be excecuted to

achieve certain coverage? (test sequence generation problem) Which paths (program statements) can not be excecuted? (problem of finding infeasible paths dead code) How to find data, that allows to excecute tests for certain coverage? (test data generation problem)

Exercise
Find paths for x that

max=x

3
x>y

x<y

4
max = y

## All-defs: All-uses: All-p-uses: All-c-uses: All-du-paths:

Exercise
Find paths for x that