Wednesday, May 5, 2010

Statement, Branch/Decision and Path Coverage testing technique with example

How to calculate Statement, Branch/Decision and Path Coverage

Statement Coverage:

In this the test case is executed in such a way that every statement of the code is

executed at least once.

Branch/Decision Coverage:

Test coverage criteria requires enough test cases such that each condition in a decision

takes on all possible outcomes at least once, and each point of entry to a program or

subroutine is invoked at least once. That is, every branch (decision) taken each way,

true and false. It helps in validating all the branches in the code making sure that no

branch leads to abnormal behavior of the application.

Path Coverage:

In this the test case is executed in such a way that every path is executed at least once.

All possible control paths taken, including all loop paths taken zero, once, and multiple

(ideally, maximum) items in path coverage technique, the test cases are prepared based

on the logical complexity measure of a procedural design. In this type of testing every

statement in the program is guaranteed to be executed at least one time. Flow Graph,

Cyclomatic Complexity and Graph Metrics are used to arrive at basis path

How to calculate Statement Coverage, Branch Coverage and Path Coverage?

Draw the flow in the following way-

· Nodes represent entries, exits, decisions and each statement of code.

· Edges represent non-branching and branching links between nodes.

Example:

Read P

Read Q

IF P+Q > 100 THEN

Print “Large”

ENDIF

If P > 50 THEN

Print “P Large”

ENDIF

Calculate statement coverage, branch coverage and path coverage.

Solution:

The flow chart is-

Statement Coverage (SC):

To calculate Statement Coverage, find out the shortest number of paths following

which all the nodes will be covered. Here by traversing through path 1A-2C-3D-E-4G-5H all

the nodes are covered. So by traveling through only one path all the nodes 12345 are covered,

so the Statement coverage in this case is 1.

Branch Coverage (BC):

To calculate Branch Coverage, find out the minimum number of paths which will

ensure covering of all the edges. In this case there is no single path which will ensure coverage

of all the edges at one go. By following paths 1A-2C-3D-E-4G-5H, maximum numbers of

edges (A, C, D, E, G and H) are covered but edges B and F are left. To covers these edges we can follow 1A-2B-E-4F. By the combining the above two paths we can ensure of traveling

through all the paths. Hence Branch Coverage is 2. The aim is to cover all possible true/false

decisions.

Path Coverage (PC):

Path Coverage ensures covering of all the paths from start to end.

All possible paths are-

1A-2B-E-4F

1A-2B-E-4G-5H

1A-2C-3D-E-4G-5H

1A-2C-3D-E-4F

So path coverage is 4.

Thus for the above example SC=1, BC=2 and PC=4.

Memorize these….

100% LCSAJ coverage will imply 100% Branch/Decision coverage

100% Path coverage will imply 100% Statement coverage

100% Branch/Decision coverage will imply 100% Statement coverage

100% Path coverage will imply 100% Branch/Decision coverage

Branch coverage and Decision coverage are same.

*LCSAJ = Linear Code Sequence and Jump.

6 comments:

  1. good content...
    well explained...
    Thanks..

    ReplyDelete
  2. thank u mam ,it is very helpful for freshers.

    ReplyDelete
  3. Astonishing oracle training in chennai outlines!!! Never got a clarity on these considerations till oracle dba training in chennai now. Much appreciated!!!thank u hadoop training in chennai mam ,it is amazingly profitable for freshers.

    ReplyDelete
  4. Thank you for the nice article here. Really nice and keep update to explore more gaming tips and ideas.

    AR/VR Game Testing

    Gameplay Testing Services

    Video Game Testing Company

    ReplyDelete

  5. thanks for sharing the content, it helped me a lot oracle training in chennai

    ReplyDelete