Software Quality Metrics I
Software Quality Metrics I
6
Categories of Software Metrics
Product metrics are those that describe the
characteristics of the product
Process metrics are those that can be used for
improving the software development and maintenance
process
Project metrics are those that describe the project
characteristics and execution
7
Product Process Project
Metrics Metrics Metrics
• size, • effectiveness • number of
• complexity, of defect software
• design removal developers,
features, during • staffing
• performance, development, pattern over
• quality level • pattern of the life cycle
testing defect of the
arrival, software,
• response time • cost,
of the fix • schedule,
process • productivity
Software Quality Metrics
Software quality metrics are a subset of software
metrics that focus on quality aspects of the
product, process, and project
In general, software metrics are more closely
associated with process and product metrics than
with project metrics
Nonetheless, the project parameters such as
number of developers and their skill levels, the
schedule, the size, and the organization structure
certainly affect the quality of the product
9
Common Measurements - 1
Requirements
Size of the document (# of words, pages,
functions)
Number of changes to the original requirements,
which were developed later in the life cycle but
not specified in the original requirements
document.
Consistency measures to ensure that the
requirements are consistent with interfaces from
other systems
Testability measures to evaluate if the requirements
are written in such a way that the test cases can be
developed and traced to the requirements
10
Common Measurements - 2
The system must be user friendly. (What does user
friendly mean?)
The system must give speedy response time (What is
speedy response time? 10 seconds, 13 seconds?)
The system must have state-of-the-art technology
(What is considered state-of-the-art?)
The system must have clear management reports (What
should these reports look like? What is the definition of
clear?)
11
Common Measurements - 3
Code/Design
No of external data items from which a module reads
No of external data items to which a module writes
No of modules specified at a later phase and not in the
original design
No of modules which the given module calls
12
Common Measurements - 4
Design/Code
No of lines of code
Data usage, measured in terms of the number of
primitive data items
Entries/exits per module which predict the completion
time of the system
13
Common Measurements - 5
Testing
No of planned test cases in the test plan that ran
successfully
Success/effectiveness of test cases against the original
test plan
No of new unplanned test cases which are developed at a
later time
14
Seven Commonly Tracked Measures
Number of defects
Work effort
Schedule
Number of changes to the requirements
Size
Documentation defects
Complexity
15
Number of Defects
Defect count can be kept at three different stages
During white box testing to evaluate the quality of
original code
During black box testing to evaluate the number of
errors that escaped white box
After the product is released to the customer to evaluate
the number of errors not found during both the unit and
black box tests
16
Work Effort
Work effort constitutes the number of hours spent
on development of a new system, system
enhancement, or the support and maintenance of
an existing system
The hours are collected throughout the project life
cycle, across all the development phases
Can provide early warnings regarding budget over-
runs and project delays
17
Schedule
The purpose of schedule measurements is to track the
performance of the project team toward meeting the
committed schedule
Planned start date versus actual date
Planned completion date versus actual date
18
Number of Changes to the Requirements
The number of additions, changes, and deletions to
requirements should be measured as soon as the
requirements document is checked into the formal
configuration management
This measure reflects the quality of requirements
and the need to change the process of either
collecting the requirements or documenting them
Once the software is released, enhancement requests
resulting from customer calls or updates due to
problem fixes are also counted as changes are made
19
Size - 1
The size measures are important because the amount
of effort required to perform most tasks is directly
related to the size of the program involved
The size is usually measured in
Lines of code
Function Points
20
Size - 2
When the size grows larger than expected, the cost of
the project as well as the estimated time for
completion also grow
The size of the software is also used for estimating the
number of resources required
The measure used to estimate program size should be
easy to use early in the project life cycle
21
Size – 3 – Lines of Code
Empty lines
Comments/statements
Source lines
Reused lines
Lines used from other programs
22
Size – 4 – Function Points - 1
It is a method of quantifying the size and complexity of
a software system based on a weighted user view of the
number of external inputs to the application;
number of outputs from the application;
inquiries end users can make;
interface files;
and internal logical files updated by an application
These five items are counted and multiplied by weight
factors that adjust them for complexity
23
Size – 5 – Function Points - 2
Function points are independent of languages, can
be used to measure productivity and number of
defects, are available early during functional
design, and the entire product can be counted in a
short time
They can be used for a number of productivity and
quality metrics, including defects, schedules, and
resource utilization
24
Documentation Defects
The documentation defects are counted throughout
project life cycle
Defects of the following nature are tracked
Missing functionality
Unclear explanation
Spellings
Not user friendly
25
Complexity - 1
This metric gives data on the complexity of the
software code
As the complexity of the software increases, the
required development effort increases and the
probability of defects increases
Complexity can be measured at as many successive
levels as possible beginning at the individual software
module level
26
Complexity - 2
The complexity of a module can be evaluated by
Number of files
Program size
Number of verbs, if statements, paragraphs, total lines,
and loops
Design complexity which is measured by
Modularity (how well as design is decomposed into small,
manageable modules)
Coupling (the interfaces between units)
27
Process Metrics
Defect removal effectiveness
Defect arrival rate
Test effectiveness
Defects by phase
29
Defect Removal Effectiveness
(DRE)
This metrics may be applied on phase-by-phase basis to measure
the relative effectiveness of defect removal.
Will indicate the effectiveness of the defect identification and
removal.
Weak areas in the process may be identified for improvement
Design Review 5 29 - 34
Code Review 1 3 54 58
Unit Testing 0 4 32 36
Integration testing 1 3 13 17
System Testing 2 0 6 8
Operations 1 2 7 10
Total(Injected) 25 41 112
Exercise:
From the above table it is clear that for the requirements phase,
15 requirement type defects were found and fixed during that
phase. 10 requirement type defects were found in later phases for
a total of 25 requirement type defects.
For design phase, 29 design type defects were found and fixed
during that phase and 12 design type defects were found in later
phases for a total of 41 design type defects and so on.
Requirements Review
Effectiveness
Defects removed at requirement review phase: 15
Defects existing on step entry: 0
Defects injected : 10
(15/0+25)*100= 60%
Design Review Effectiveness
Defects Removed at Design Review phase: 34
Defects existing on step entry (escapes from Requirements phase):
25 – 15(these 15 already removed in requirements phase) = 10
Defects injected in the current phase:41
(34/(41+10)) x 100 = 67%
Code Review Effectiveness
Defects Removed at Code Review phase: 58
Defects existing on step entry (escapes from Requirements & Design
phase):
25 +41-34-15=17
Defects injected in the current phase: 112
(58/17+112) x 100 = 45%
Testing Effectiveness
For testing phases, the defect injection is usually a smaller
number, in such cases efficiency is calculated by a different
method:
Effectiveness = Defects removed at current phase /
Defects removed at current phase + Defects removed
at subsequent phases
38
Defect Arrival Rate – 3
For example, it could be that test effectiveness is
declining over time. In other words, the tests may
only be effective at uncovering certain types of
problems. Once those problems have been found,
the tests are no longer effective
39
Defect Arrival Rate – 4
Another possibility is that the test organization
is understaffed and consequently is unable to
adequately test the product between
measurement intervals.
They focus their efforts during the first interval
on performing stress tests that expose many
problems, followed by executing system tests
during the next interval where fewer problems
are uncovered
40
Test Effectiveness
Test effectiveness (TE) is measured as
TE = Dn / Tn
Dn is the number of defects found by formal tests
Tn is the total number of formal tests
42
Defects by Phase - 2
If the graph appears to be rising, you might
infer that the methods used for defect detection
and removal during the earlier phases are not
effective since the rate at which new defects are
being discovered is increasing
On the other hand, if the graph appears to be
falling, you might conclude that early defect
detection and removal is effective
43