Quality Measures and Indicators Prescribed by the Software Testing Experts
Software development & testing experts rightly declare “We cannot control what we cannot measure”. Thus in order to successfully measure quality of any software application, first of all we need to understand the key differences between the elements of chain of three interconnected quality terms like; measures, metrics & indicators.
|Quality Measure||Quality Metric||Quality Indicator|
|A measure is to ascertain or appraise by comparing to a standard.|
A metric is a quantitative measure of the degree to which a system, component, or process possesses a given attribute.
|An indicator is a device or variable, which can be set to a prescribed state, based on the results of a process or the occurrence of a specified condition.|
|A standard or unit of measurement covers:
# The extent, dimensions, capacity of anything, especially as determined by a standard.
# An act or process of measuring; a result of measurement.
|It is a calculated or composite indicator based upon two or more measures.||An indicator usually compares a metric with a baseline or expected result.|
|A measure gives very little or no information in the absence of a trend to follow or an expected value to compare against.||A metric is a comparison of two or more measures like defects per thousand source lines of code.||Indicator help the decision-makers to make a quick comparison that can provide a perspective as to the “health” of a particular aspect of the project.|
|Measure does not provide enough information to make meaningful decisions.||Software quality metrics is used to assess throughout the development cycle whether the software quality requirements are being met or not||Software quality indicators act as a set of tools to improve the management capabilities of personnel responsible for monitoring software development projects.|
The software quality indicators address management concerns, take advantage of data that is already being collected, are independent of the software development methodology being used, are specific to phases in the development cycle, and provide information on the status of a project.
Software Testing experts like ISTQB advanced certified Test Managers prescribe following quality indicators for use during the software testing & development life cycle.
1) Progress: Measures the amount of work accomplished by the developer in each phase. This measure flows through the development life cycle with a number of requirements defined and baselined, then the amount of preliminary and detailed designed completed, then the amount of code completed, and various levels of tests completed.
2) Stability: Assesses whether the products of each phase are sufficiently stable to allow the next phase to proceed. This measures the number of changes to requirements, design, and implementation.
3) Process compliance: Measures the developer’s compliance with the development procedures approved at the beginning of the project. Captures the number of procedures identified for use on the project versus those complied with on the project.
4) Quality evaluation effort: Measures the percentage of the developer’s effort that is being spent on internal quality evaluation activities. Percent of time developers are required to deal with quality evaluations and related corrective actions.
5) Test coverage: Measures the amount of the software system covered by the developer’s testing process. For module testing, this counts the number of basis paths executed/covered, & for system testing it measures the percentage of functions tested.
6) Defect detection efficiency: Measures how many of the defects detectable in a phase were actually discovered during that phase. Starts at 100% and is reduced as defects are uncovered at a later development phase.
7) Defect removal rate: Measures the number of defects detected and resolved over a period of time. Number of opened and closed system problem reports (SPR) reported through the development phases.
8) Defect age profile: Measures the number of defects that have remained unresolved for a long period of time. Monthly reporting of SPRs remaining open for more than a month’s time.
9) Defect density: Detects defect-prone components of the system. Provides measure of SPRs / Computer Software Component (CSC) to determine which is the most defect-prone CSC.
10) Complexity: Measures the complexity of the code. Collects basis path counts (cyclomatic complexity) of code modules to determine how complex each module is.
Following table illustrates the software quality indicators used during the development phase.
Conclusion: The quality indicators discussed above have certain characteristics related to quality measures. Accordingly software testing experts like Test Managers have made few conclusions like.
1) Quality measures must be oriented toward management goals. One need not have extensive familiarity with technical details of the project.
2) Quality measures should reveal problems as they develop and suggest corrective actions that could be taken.
3) Quality measures must be easy to use. They must not be excessively time consuming, nor depend heavily on extensive software training or experience. Measures that are clearly specified, easy to calculate, and straightforward to interpret are needed.
4) Quality measures must be adequately flexible.
5) We must not use quality measurement just for the purpose of quality assurance & software testing managers & engineers must come out of the narrow notions they happen to have about the constituents of the quality.