Subscribe by Email

Tuesday, July 10, 2012

What is meant by code coverage? What are different types of code coverage?

Code coverage is one of the important measures that comes across while carrying out the software testing. 

What is Code Coverage?

- Code coverage is the measure that gives the degree up to which the source of a software system or application has been tested. 
- Code coverage earlier was recognized as one of the methods that were developed for carrying out a systematic software testing. 
- The term code coverage was first referenced under the “communications of the ACM” in the year of 1963 by Maloney and miller.
- Code coverage is measured using a specialized tool called code coverage analyzer for instrumenting the binaries in order to add all the tracing calls and run all the automated test cases against the software system or application under question. 
- A good code coverage analyzer will not only give you the degree of the coverage but will also allow you to dig deeper in to the data and check out for the lines of the code that are executed during a particular test. 
- Today we have a large number of code coverage criteria that amount to the total code coverage. 

Types of Code Coverage

- The software system or application that is under testing is adorned with certain options that run under a particular environment. 
- Each and every function of the program that is executed is traced back to the function calls in the source code which allows the easy checking of the rarely accessed, never accessed parts of the program under normal conditions. 
- This gives the software testers an assurance that the most important conditions of the source code have been tested. 
- The outcome is then subjected to analyzation for sorting out of the code that has been analyzed. 
- The process is a combination of several code coverage methods that aim to provide a manageable and rigorous set of regression tests. 
- The output of the code coverage analyzation can be used by the engineers for devising the test cases and configuration sets that in turn will increase the code coverage relating to the vital functions. 
- Mostly two common forms of the code coverage are used by the software testers namely:

1. Line coverage or statement coverage: 
- This type of the code coverage reports regarding the execution foot print of the software testing in terms of the lines of code which are executed for the completion of the test.
The statement coverage provides you with the benefit of the identification of the bugs that arise in the constructs of the control flow of the source code like consecutive switch labels and compound conditions. 
- The major setback of this code coverage type is that even though it seems like you have achieved 100 percent of the code coverage, there might be 100s of wicked and uncaught bugs.
- This disadvantage of the statement or line coverage is over-comed by a more advance form of code coverage called the branch coverage.

2. Edge or branch coverage: 
This type of code coverage reports regarding the branches or the code decisions that like statements are executed for the completion of the tests.

- Both of the above mentioned types of the code coverage provide the result in the form of code coverage metric in terms of percentages. 
- Out of the two, the branch code coverage is considered to be quite comprehensive that the equivalent percentage of the statement code coverage.
- It is also very easy to determine the number of branches that have to be tested since the Boolean decisions have only two outcomes i.e., either true or false. 

No comments:

Facebook activity