The main purpose of Statement Coverage is to ensure that each statement has been tested atleast once. It measures the percentage of statements executed.
An Example of Statement Coverage
A vending machine dispenses either hot or cold drinks. If you choose a hot drink (e.g. tea or coffee), it asks if you want milk (and adds milk if required), then it asks if you want sugar (and adds sugar if required), then your drink is dispensed.
a. Draw a control flow diagram for this example. (Hint: regard the selection of the type of drink as one statement.)
b. Given the following tests, what is the statement coverage achieved? What is the decision coverage achieved?
Test 1: Cold drink
Test 2: Hot drink with milk and sugar
c. What additional tests would be needed to achieve 100% statement coverage? What additional tests would be needed to achieve 100% decision coverage?
The control flow diagram is shown in Figure 4.8. Note that drawing a control diagram here illustrates that structural testing can also be applied to the structure of general processes, not just to computer algorithms. Flowcharts are generally easier to understand than text when you are trying to describe the results of decisions taken on later events.
On Figure 4.9, we can see the route that Tests 1 and 2 have taken through our control flow graph. Test 1 has gone straight down the left-hand side to select a cold drink. Test 2 has gone to the right at each opportunity, adding both milk and sugar to a hot drink.
Every statement (represented by a box on the diagram) has been covered by our two tests, so we have 100% statement coverage.
We have not taken the No exit from either the 'milk?' or 'sugar?' decisions, so there are two decision outcomes that we have not tested yet. We did test both of the outcomes from the 'hot or cold?' decision, so we have covered four out of six decision outcomes. Decision coverage is 4/6 or 67% with the two tests.
No additional tests are needed to achieve statement coverage, as we already have 100% coverage of the statements.
One additional test is needed to achieve 100% decision coverage:
Test 3: Hot drink, no milk, no sugar
This test will cover both of the 'No' decision outcomes from the milk and sugar decisions, so we will now have 100% decision coverage. [Source of example]
Few interesting resources on Statement Coverage
Examples of Statement, Branch and Path coverages
Coverage Examples
Below PDF includes - Legitimate Uses of Statement Coverage Analysis, Pitfalls of Using a Coverage Analyzer and much more.
Coverage Analysis
What is wrong with Statement Coverage - drawbacks of Statement Coverage
Statement Coverage
Nice Explanation of Statement Coverage
Statement Coverage
Statement Coverage and its strengths and weaknesses
Statement Coverage
Also See:
Decision Coverage
Branch Testing
Path Testing
Basis Path Testing