Professional Documents
Culture Documents
Introduction To Quality Assurance and Control
Introduction To Quality Assurance and Control
Introduction To Quality Assurance and Control
Assurance
Software Testing Principles and Concepts
1
INSTRUCTIONS
• Program will be conducted in SLIIT Metro Campus.
3
Definitions of Quality
1. Conformance to requirements (Philip Crosby) –
Producer view: characterized by:
• Doing the right thing
• Doing it the right way
• Doing it right the first time
• Doing it on time without exceeding cost
5
Quality Attributes
6
Quality Management KA
7
Why Do We Test Software?
8
Developers are not Good
Testers
• Misunderstandings will not be detected
• Improper use of the development process may
not be detected
• The individual may be “blinded” into accepting
erroneous system specifications
• Information services people are optimistic in
their ability to do defect-free work
• an individual may be tempted to improve the
system structure and documentation
9
What is a Defect?
10
What is Quality Software?
11
Why Does a Development
Process Produce Defects?
• Ideally, the software development process should
produce the same results each time the process is
executed.
• If its NOT, there is “variability” in the software development
process
• Variability is the “enemy” of quality
• The concept of measuring and reducing variability is
commonly called statistical process control
• Testers need to understand process variability,
• because the more variance in the process the greater the need
for software testing.
12
Examining Variation
A Stable Process has the same
normal distribution at all times.
A stable process is In Control
13
Examining Variation
Common Causes
14
Examining Variation
Special Causes
Anything that causes variations that are not part of the stable
process is called a special cause, assignable cause, or
unnatural cause.
15
Reducing Variation
Reducing Variation in an
Unstable Process
Do not ignore special causes.
Do quickly detect special cause variations.
Do stop production until the process is fixed. (Reactive)
Do identify and permanently eliminate special causes.
(Preventive)
16
Reducing Variation
Improving an Unstable Process
Four Step Process
Detect the special cause variation.
Identify the special cause.
Fix the process
•Remove the special cause, or
•Compensate for the special cause.
Prevent the special cause from occurring again
17
Detecting Variation
Control Chart for Detecting Variation
Observe
Variation
Common Detect
Cause Control Special Cause
19
Level 1- Ad-hoc
20
Level 2- Control
• Once the core competencies are determined, then the processes defined at Level 2
must be reengineered to drive the core competencies.
• In addition, the tasks are analyzed to determine what skills are needed to perform
those processes.
• Next, a staff must be retrained, recruited, motivated, and supported to perform those
core competencies in an effective and efficient manner.
• It is the integration of people and processes, coupled with managers with people
management skills, which are needed to maintain and improve those core
competencies.
• Lots of mentoring occurs at this level, with the more experienced people building
skills in the less experienced.
• It is also a level that is truly customer focused
22
Level 4 – Predictable
23
Level 5 – Innovative
• At Level 5, the information organization wants to be a
true leader in the industry.
• At this level, the organization is looking to measure
itself against the industry through benchmarking,
• and then define innovative ways to achieve higher
levels of performance.
• Innovative approaches can be achieved through
benchmarking other industries, applying new
technology in an innovative way, reengineering the
way work is done, and by constantly studying the
literature and using experts to identify potential
innovations.
• This level is one in which continuous learning occurs,
both in individuals and the organization.
24
The Multiple Roles of the
Software Tester
• The roles established for software testers vary
from organization to organization. Many
factors affect the tester’s role. The major factors
are:
• People relationships
• Scope of testing
• When should testing occur
• How should testing be performed
• Testing constraints
25
People Relationships
26
People Relationships
27
Scope of Testing
28
When Should Testing Occur?
• When testing is constrained to a single phase and confined to
the later stages of development, severe consequences can
develop.
• An error discovered in the latter parts of the life cycle must be
paid for four different times.
• The first cost is developing the program erroneously
• Second, the system must be tested to detect the error.
• Third, the wrong specifications and coding must be removed and the
proper specifications, coding, and documentation added.
• Fourth, the system must be retested to determine that it is now correct.
• Verification must not be isolated to a single phase in the
development process, but rather, incorporated into each phase
of development.
29
When Should Testing Occur?
• The recommended test process involves testing in every phase of
the life cycle.
• During the requirements phase, the emphasis is upon validation
to determine that the defined requirements meet the needs of the
organization.
• During the design and program phases, the emphasis is on
verification to ensure that the design and programs accomplish
the defined requirements.
• During the test and installation phases, the emphasis is on
inspection to determine that the implemented system meets the
system specification.
• During the maintenance phases, the system will be retested to
determine that the changes work and that the unchanged
portion continues to work.
30
When Should Testing Occur?
31
How the Test Plan Should be
Developed
Four steps must be followed to develop a customized test plan:
• Select and rank test objectives.
• Identify the system development phases.
• Identify the business risks
• Place risks in the matrix
32
Testing Constraints
33
Concept
The Waterfall Model
Exploration
Process
System
Allocation
Process
Requirements
Process
Design
Process
Implementation
Process
Verification
& Validation
Process
Installation
adapted from [Royce 1970] Process
Operation &
Support Process
From the Waterfall Model to the V
Model
Acceptance
Requirements
Engineering
System
Requirements
Testing
Analysis
Integration
System Design Testing
Unit
Object Design Testing
Implementation
Unit
Testing
Integration
Testing
System
Testing
Activity Diagram of a V Model
Is validated by
System
Requirements Operation
Analysis
precedes
Software Client
Requirements Acceptance
Elicitation
Requirements System
Analysis Integration
& Test
Preliminary Component
Design Integration
& Test
Detailed Unit
Design Test
Implementation
Ways to Improve Quality
• Prevention of Defects
◼ Process Improvement
◼ Complexity Reduction
◼ Risk Management
• Verification
“Are we building the product right?”
• Validation
“Are we building the right product?”
• Walkthroughs
◼ Code verification
◼ Document
• ConOps, SRS validation
• STEP, SAD, SDD verification
• Inspections
◼ Code verification
◼ Document Audits verification
• Program Reviews
◼ Customer involved validation
◼ No customer verification
Effectiveness of Static Verification
◼ Code inspection
◼ Self - The default choice.
◼ Subtle errors and micro-flaws may be overlooked.
◼ Wrong conceptions propagate to review…
◼ Code review by others - Very efficient!
Dynamic: Testing (Verification)
Execute Unit
White-Box &
Code Black-Box
Tests
Testing
Verification or… Validation?
• Reviews Either
• Unit testing Verification
• Integration Testing Verification
• System testing Either
• Acceptance testing Validation
The Test Plan
55
Software Inspections (code reviews)
• Why are reviews more effective for finding defects
in systems/subsystems (i.e., before acceptance
testing)?
• Bugs are often masked by other bugs
• Leverage domain/programming knowledge
• inspectors are skilled programmers
64