Quantifying the Quality to assure Quality (QQQ)

Quantifying the Quality to assure Quality (QQQ) is methodology wherein we assure the test plans are of high quality, using quantitative methods which indirectly is measure of quality product. Here the quantitative measure used to assure the quality of test plans is the code coverage analysis. QQQ methodolgy can be very useful if implemented properly, some of the advantages of this methodology are:

  • Helps the executive team to analyze the quality of the test cases in terms of amount of code covered by their test cases.

  • Helps the testing team in understanding which parts of the code is not properly tested.

  • Helps the development team in identifying those parts of code which is functionally un-reachable and cleaning up unused parts of the code.

  • Helps the testing team in identifying when they are done with testing and are ready to release the product.

Code coverage analysis assures the quality of test cases and not the quality of the actual product being tested. Coverage tools gives code coverage to different levels of abstraction, some give it to the level of functions, some to level of code and some to the level of assembly instructions. Functional level of abstraction is too coarse and assembly instructions level is too fine for tester to understand. Person doing code coverage analysis should be having a good understanding of the code. The code coverage analysis is a continous iterative process.It begins with executing the test plans and generating the reports. The generated reports are then analysed for those parts of code which are not executed and new test cases are added. After that the process is repeated and the objective is to bring the code coverage to nearly 100% by adding least number of test cases.

Main objectives of the code coverage are:

  • Finding those areas of program which is not executed by the test cases.

  • Creating additional test cases to increase code coverage.

  • Determining a quantitative measure of code coverage.

  • Identifying the redundant test cases.

100% test coverage need not mean that all the possible cases have been covered. For instance consider the following example

.......
if (a > 0)
printf ("Code Coverage Analysis")
.......

In the example testcase a=1 would have given us 100% test coverage but still we are missing the test case of a<0

For full version of this mail Me

2 comments:

  1. Anonymous6:23 PM

    How this will be helpful one product use more than 1 components like I have product which build using C#, which in turns call C function, Perl script or shell script.

    Other place it will be helipful one use tool like this with the development of new software.It will be a chllenge to test the old monolithic code with this.

    This is of good use for component Testing. Just to prove the efficasy of the functional test cases. But other thing is, these tools helps to build the confidence in higher management in the testing team.

    ReplyDelete
  2. Anonymous8:57 PM

    Mallik I have read all your blogs and your stand on the importance of testing engineers is very correct and apt

    ReplyDelete