unit-2
unit-2
Software quality metrics are a subset of software metrics that focus on the quality
aspects of the product, process, and project. These are more closely associated with
process and product metrics than with project metrics.
Software quality metrics can be further divided into three categories −
Product quality metrics
In-process quality metrics
Maintenance quality metrics
In-process quality metrics deals with the tracking of defect arrival during formal
machine testing for some organizations. This metric includes −
Defect density during machine testing
Defect arrival pattern during machine testing
Phase-based defect removal pattern
Defect removal effectiveness
Although much cannot be done to alter the quality of the product during this phase,
following are the fixes that can be carried out to eliminate the defects as soon as
possible with excellent fix quality.
Fix backlog and backlog management index
Fix response time and fix responsiveness
Percent delinquent fixes
Fix quality
Fix backlog and backlog management index
Fix backlog is related to the rate of defect arrivals and the rate at which fixes for
reported problems become available. It is a simple count of reported problems that
remain at the end of each month or each week. Using it in the format of a trend
chart, this metric can provide meaningful information for managing the
maintenance process.
Backlog Management Index (BMI) is used to manage the backlog of open and
unresolved problems.
BMI = Number of problems closed during the month /Number of problems arrived
during the month* 100%
If BMI is larger than 100, it means the backlog is reduced. If BMI is less than 100,
then the backlog increases.
Fix response time and fix responsiveness
The fix response time metric is usually calculated as the mean time of all problems
from open to close. Short fix response time leads to customer satisfaction.
The important elements of fixing responsiveness are customer expectations, the
agreed-upon fix time, and the ability to meet one's commitment to the customer.
Percent delinquent fixes
It is calculated as follows −
Percent Delinquent Fixes =Number of fixes that exceeded the response time
criteria by severity level/Number of fixes delivered in a specified time * 100%
Fix Quality
Fix quality or the number of defective fixes is another important quality metric for
the maintenance phase. A fix is defective if it did not fix the reported problem, or if
it fixed the original problem but injected a new defect. For mission-critical
software, defective fixes are detrimental to customer satisfaction. The metric of
percent defective fixes is the percentage of all fixes in a time interval that is
defective.
A defective fix can be recorded in two ways: Record it in the month it was
discovered or record it in the month the fix was delivered. The first is a customer
measure; the second is a process measure. The difference between the two dates is
the latent period of the defective fix.
Usually the longer the latency, the more will be the customers that get affected. If
the number of defects is large, then the small value of the percentage metric will
show an optimistic picture. The quality goal for the maintenance process, of
course, is zero defective fixes without delinquency.
Software quality indicator
The following quality indicators are used 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
design 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 a
measure of SPRs / Computer Software Component (CSC) to determine which CSC
is the most defect-prone.
10) Complexity: Measures the complexity of the code. Collects basis path counts
(cyclomatic complexity) of code modules to determine how complex each module
is.