"There's always room for Improvement". The said quote is applicable to each and everything that exists in the world. Software testing is a very large field, similar to the development. It needs constant improvement to provide the best quality of application to its end users in a less time period. However, to measure the degree of the improvement brought or required to be done, it needs some sort of defined parameters or attributes to measure the efficiency of the process. Thus, the concept of key performance indicator(KPI) is being introduced to evaluate the productivity of the software testing process.
In software testing, key performance indicator(s) may be seen as some of the parameters present in the testing process, which are used to assess and analyze the performance, productivity and efficiency of the complete testing process, based on which decisions may be taken to improve the process, accordingly.
Further, it is pertinent to mention that equipping the testing team with the tools and the technologies, along with the bulk of testers may increase the resources for the testing activities but does not optimizes the process efficiency. Thus, KPI show its usefulness and importance in measuring the process efficiency and accordingly bringing improvement to optimize the process.
There are various key performance indicator, which may be considered for the purpose of process improvement and here we are listing out some of them:
KPI measured in the terms of active or live defects is one of the simple and convenient indicators to assess the process performance. Here active defects are referred to those defects on which correction work is being carried out or yet to be carried out, i.e. defects with the status of 'New' and 'Open'. In addition, it also includes defects with the status of fixed, as they need to be re-evaluated.
The tests designed and developed by the test engineers with the help of Business Analyst team is one of the KPIs, which reflects the productivity of the testing phase. The tests are designed and prepared with respect to the specified requirements, such that one or more than one test fulfills a particular requirement. Thus, these tests may work as a KPI to reflect the coverage requirement and its threshold limit may be set to identify and measure the requirement coverage through tests for each iteration/sprint.
During testing process, some tests are designed to execute manually, while some tests are prepared for the automation purpose. Although, automating the tests is a very complex and hectic job, and requires a good amount of time and money for its operation and maintenance, but it usefulness may be seen in catching the severe and the critical defects in a short period of time. Thus, automated tests may be considered as one of the KPIs to measure the testing efficiency, where tests to be automated is identified and to be measured through the set up threshold limit.
It is one of the mostly used and preferred KPIs by the QA Managers, where performance is measured in terms of the requirement coverage. Each requirement may be covered and fulfilled by one or more than one test. Each and every designed or existing test should be in adherence to one or more than one requirement, and no tests should exist, which are not fulfilling any of the requirements and no requirements should be left which are not covered under any test. This KPI may help in tracking the abandoned or orphaned test(s) and requirement(s).
No. of defects fixed/day by the development team gives the insight about how seriously and attentively the reported defects are considered and corrected by the development team. Further, it also imparts the progress made in the build or in the module on daily-basis.
The gap between the number of tests executed and the number of tests passed also reflects the performance and the quality of the testing process. It is considered that more the tests passed by a software product, the better is the testing process and the product quality. However, sometimes poorly designed tests also get passed through poor quality software application. Therefore, this KPI may proved to be dangerous, if the level of tests, which are being passed are not assessed well.
The defects reported by the testing team may be rejected by the development team on the basis that the reported defect is not an actual defect, but pertains to the design or structure feature or any other aspect of the application. It shows the lack of inefficiency and incapability in studying and analysing the design, requirement, functionalities and other important aspect of the product. Thus, rejected defects may be seen as a KPI, where it's higher value shows process low productivity and vice-versa.
If the requirements are misunderstood or misinterpreted, it can lead to defective designing and development, and subsequently produces defects and deviation in the developed product. Therefore, most of the defects and deviation may be identified and traced by reviewing and analysing the requirements. Thus, reviewing the requirements by the business and the testing team along with the help of the requirement domain expert may be considered as a KPI, to measure the testing efficiency.
How severe is the defect and what immediate action is required for it as per the client’s need may also be considered as a KPI. This KPI may be used to bring changes and improvement in the testing process.
Number of test executed whether manual or automated may also be taken up a KPI, to assess the speed of the testing process.
Apart from the above stated KPIs, a tester may also go through the following performance indicator:
- Budget Expense.
- Time Schedule and Constraint.
- Efforts Applied.
- Defects Closure Rate.
A software testing process needs to be constantly monitored, assessed and improved accordingly, to ensure the release of best quality product within the stipulated time and cost. The above stated KPIs may be considered by the testers to assess and weigh the quality of the process, carried by them and accordingly may bring necessary or certain changes to optimize the productivity of the process.