Sqa Lecture 02 PDF
Sqa Lecture 02 PDF
Lecture # 2
Adnan Bashir
1
What is a Software Defect?
• A software defect is an error, flaw, mistake, failure, or fault in
software that prevents it from behaving as intended or
unusable or not as wanted by the user (e.g., producing an
incorrect or unexpected result or cosmetics thing which are
not like the user )
• Software defects are also known as software errors or
software bugs in Industry.
2
Effects of Software Defects
• Bugs can have a wide variety of effects, with varying levels of
inconvenience to the user of the software. Some bugs have
only a subtle effect on the program’s functionality, and may
thus lie undetected for a long time. More serious bugs may
cause the software to crash or freeze leading to a denial of
service
• Others qualify as security bugs and might for example enable
a malicious user to bypass access controls in order to obtain
unauthorized privileges
3
Effects of Software Defects
• The results of bugs may be extremely serious
• In 1996, the European Space Agency’s US $1 billion prototype
Arian 5 rocket was destroyed less than a minute after launch,
due a bug in the on-board guidance computer program
• Human side , hardware, professional side.
• In June 1994, a Royal Air Force Chinook crashed into the Mull
of Kintyre, killing 29 people. An investigation uncovered
sufficient evidence to convince that it may have been caused
by a software bug in the aircraft’s engine control computer
• Effect as well on: Financial, families, society
4
Effects of Software Defects
• In 2002, a study commissioned by the US Department of
Commerce’ National Institute of Standards and Technology
concluded that software bugs are so prevalent and
detrimental that they cost the US economy and estimated US
$59 billion annually, or about 0.6 percent of the gross
domestic product
5
Software Defects in Six
Application Size Ranges
6
Categories of Software Defects
• Errors of commission
• Errors of omission
• Errors of clarity and ambiguity
• Errors of speed or capacity
7
Errors of Commission
• Something wrong is done
• A classic example at the code level would be going through a
loop one time too many or branching on the wrong address
8
Errors of Omission
• Something left out by accident
• For example, omitting a parentheses in nested expressions
9
Errors of Clarity and Ambiguity
• Different interpretations of the same statement
• This kind of error is common with all natural language
requirements and specification documents and user manuals,
too.
10
Errors of Speed and Capacity
• Application works, but not fast enough
11
• Software defects can be found in any of the
documents and work products including very
serious ones in cost estimates and development
plans
• However, there are seven major classes of
software work products where defects have a
strong probability of triggering some kind of
request for warranty repair if they reach the field
12
Software Defect Origins
• Errors in Requirements
• Errors in Design
• Errors in Source code
• Errors in User Documentation
• Errors due to “Bad fixes”
• Errors in Data and Tables
• Errors in Test Cases
13
Defect Discovery
• Defects are discovered by developers & testers (usually)
before release
• Defects are discovered by customers and users (usually) after
release
• Defects discovered after release can be embarrassing for the
development team
14
Defect Discovery by Customers
• Rule 1: Defect discovery is directly related to the number of
users
• Rule 2: Defect discovery is inversely related to the number of
defects
15
Software Defect Elimination
Strategies
• Effective defect prevention
• High levels of defect removal efficiency
• Accurate defect prediction before the project begins
• Accurate defect tracking during development
• Useful quality measurements
• Ensuring high levels of user-satisfaction
16
Defect Prevention and Removal
• Both defect prevention and removal techniques are used by
the “best-in-the-class” companies.
• Defect prevention is very difficult to understand, study, and
quantify. We’ll talk about defect prevent in a later lecture
• Both non-test and testing defect removal techniques must be
applied
17
Typical Defect Removal
• Inspections / Reviews
• Direct fault detection and removal
• Testing
• Failure observation and fault removal
18
Inspections
• Inspections are critical examinations of software artifacts by
human inspectors aimed at discovering and fixing faults in the
software systems
• Inspections are critical reading and analysis of software code
or other software artifacts, such as designs, product
specifications, test plans, etc
• Inspections are typically conducted by multiple human
inspectors, through some coordination process. Multiple
inspection phases or sessions may be used
19
Inspections, Cont…
• Faults are detected directly in inspection by human inspectors,
either during their individual inspections or various types of
group sessions
• Identified faults need to be removed as a result of the
inspection process, and their removal also needs to be verified
20
Inspections, Cont…
• The inspection processes vary, but typically
include some planning and follow-up activities in
addition to the core inspection activity
• The formality and structure of inspections may
vary, from very informal reviews and
walkthroughs, to fairly formal variations of Fagan
inspection, to correctness inspections
approaching the rigor and formality of formal
methods
• Planning (M), overview meeting(A), 21
preparation(I) , inspection meeting, rework,
follow-up
Non-Test Defect Removal
Methods
• Requirement inspections
• Design inspections
• Code inspections
• Test plan reviews
• Test-case inspections
• User documentation editing or reviews
22
Testing Defect Removal
Methods
• Unit test by individual programmers
• New function testing
• Regression testing
• Performance testing
• Integration testing
• System testing
• Field test (external beta test)
23
Defect Removal
• Not all defects are equal when it comes to removal
• Requirements errors, design problems, and “bad fixes” are
particularly difficult
24
Software Defect Origins & Defect
Removal Effectiveness
Req. Design Code Document Perf.
Defects Defects Defects Defects Defects
Reviews /
Inspections Fair Excellent Excellent Good Fair
Testing (all
forms) Poor Poor Good Fair Excellent
Correctness
Proofs Poor Poor Good Fair Poor
25
Defect Removal Efficiency
• Accumulation of defect statistics for errors found prior to
delivery, and then for a predetermined period after
deployment (usually one year)
• US averages: 85%
• Best projects in best US companies: 99%
26