7 Software Quality Engineering Video
7 Software Quality Engineering Video
QUALITY ASSURANCE
1 11/04/2024
Summary of Previous Lecture
Quality Models
ISO 9126
McCall’s
FURPS
Boehm’s
GQM
Cost of Quality
Prevention Cost
Appraisal Cost
Failure Cost
Quality Cost Conformance Model
2 11/04/2024
Quality Cost Conformance
Model
The quality cost conformance model provides an
example of a constrained optimization approach.
In this model the economic conformance level
(ECL) is obtained where prevention and appraisal
costs are equal to external and internal failure
costs.
Prevention and appraisal costs increase as the
level of conformance of quality increases.
Failure costs are expected to decrease as the level
of conformance of quality increases. Therefore,
the total costs associated with conformance of
quality will be U-shaped as indicated in the figure.
3 11/04/2024
The Quality Cost Conformance Model
4
Repair Cost of Defects
5 11/04/2024
Topics to Cover - Today
Quality Assurance
Qualification Scheme for Quality Assurance
Defect prevention
Defect Reduction
Defect Containment
6 11/04/2024
Quality Assurance
Quality assurance can be defined as, „the establishment of
framework of organizational procedures and standards that lead to
a high quality software‟
Quality assurance is the function responsible for managing quality.
The word “assurance” means that if the processes are followed,
management can be assured of product quality.
About quality assurance:
The first formal quality assurance and control function was introduced at
Bell Labs in 1916 in the manufacturing world.
During the 1950s and 1960s, the programmers controls their product
quality.
During the 1970s, quality assurance standards were introduced first in
military contract software development.
7 11/04/2024
Classification Scheme for QA as Dealing with
Defects
Defect Prevention
Defect Reduction
(Defect Detection and Removal)
Defect Containment
8 11/04/2024
Defect Prevention
Prevent faults from being injected into the software through error
blocking or error source removal
Eliminating certain error sources, such as correcting human
misconceptions
We can analyze the reasons behind the missing or incorrect
human actions and deal with the root causes or the error sources
instead. This generic approach is called error source removal.
The focus of these activities is typically on the people and their
conceptual mistakes, which may lead to the selection and use of
inappropriate development methodologies, languages,
algorithms, QA strategies, etc. Such inappropriate selection may
lead to numerous fault injections.
9 11/04/2024
Defect Prevention Techniques
Education and training
10 11/04/2024
Education and Training
Education and training of software professionals can help
them control, manage, and improve the way they work.
Such activities helps to ensure that they have few if any
misconceptions related to the product and the product
development.
11 11/04/2024
Education and Training
The education and training effort for error source elimination should
focus on the following areas:
Product and domain specific knowledge
If the people involved are not familiar with the product type or
application domain, there is a good chance that wrong solutions
will be implemented
Knowledge about the specific development/testing tools used
by the organization
Also plays an important role in developing high- quality software
products.
General Software Development Knowledge and expertise
It plays an important role in developing high quality software products.
For example lack of expertise with requirements analysis and product
specification usually leads to many problems and rework in design,
coding
and testing phases
Development Process Knowledge used by the organization
For example if the people involved in incremental software development
do not know how the individual development efforts for different
increments fit together, the uncoordinated development may lead to
many interface or interaction problems.
12 11/04/2024
Tools/Technologies and Techniques
Appropriate use of software methodologies
can also help reduce the chances of fault
injections. Many of the problems with low
quality “fat software” could be addressed by
disciplined methodologies and return to
essentials for high quality “Lean software”
14 11/04/2024
Static Testing
Inspection
Software Inspections are critical examinations of software
artifacts (code/design/test-cases/etc.) by human inspectors
aimed at discovering and fixing faults in the software system
The basic idea of inspections are listed below:
Inspections are critical reading and analysis of software code or other
software artifacts, such as requirements, designs, test plans, etc.
Inspections are typically conducted by multiple human inspectors,
through some coordination process.
Faults are detected directly in inspection by human inspectors, either
during their individual inspection or various types of group sessions.
15 11/04/2024
Static Testing
Identified faults need to be removed as a result of the
inspection process, and their removal also needs to be
verified.
16 11/04/2024
Static Testing
Walkthroughs
The code walkthrough, like the inspection, is a set of procedures and
error detection techniques for group code reading. It shares much in
common with the inspection process, but the procedures are slightly
different, and a different error-detection technique is employed.
Desk Checking
A desk check can be viewed as a one-person inspection or
walkthrough: A person reads a program, checks it with respect to an
error list, and/or walks test data through it.
17 11/04/2024
Dynamic Testing
Testing is one of the most important parts of QA and the
most commonly performed QA activity
18 11/04/2024
Dynamic Testing
black-box/functional testing
verifies the correct handling of the external functions provided by the software or
whether the observed behavior conforms to user expectations or product
specifications
The emphasis is on reducing the chances of encountering functional problems by
target customers.
white/clear-box/structural testing
verifies the correct implementation of internal units, structures and relations
among them
When white box testing is performed ,failures related to internal implementations
can be observed, leading to corresponding faults being detected and removed.
19 11/04/2024
Defect Containment
20 11/04/2024
Defect Containment
Defect containment through failure prevention and
containment
Containing the failures to local areas
Limiting the damage
21 11/04/2024