Software Quality Engineering
Software Quality Engineering
Engineering
The Software Quality Challenge
Books…
• Software Quality Assurance from theory to implementation by Daniel
Galin.
• Software Engineering A practitioner’s Approach 3rd edition by Rogers
Pressman.
• Software Quality Engineering Testing, Quality Assurance, and
quantifiable improvement by JEEF TIAN.
1.1 The uniqueness of software quality
assurance
• No developer will declare that its software is free of defects, as major
manufacturers of computer hardware are wont to do.
• This refusal actually reflects the essential elemental differences
between software and other industrial products, such as automobiles,
washing machines or radios.
Continue…
These differences can be categorized as follows:
• Product complexity Product complexity can be measured by the
number of operational modes the product permits.
• Product visibility Whereas the industrial products are visible,
software products are invisible.
• Product development and production process. Let us now review
the phases at which the possibility of detecting defects in an industrial
product may arise: Product development, Product production planning
and Manufacturing.
Continue…
• Product development. In this phase the designers and quality
assurance (QA) staff check and test the product prototype, in order to
detect its defects.
• Product production planning. During this phase the production
process and tools are designed and prepared.
• Manufacturing. At this phase QA procedures are applied to detect
failures of products themselves.
Comparison to industrial products and software
products
• In comparison to industrial products, software products do not benefit
from the opportunities for detection of defects at all three phases of the
production process.
• The only phase when defects can be detected is the development
phase. Let us review what each phase contributes to the detection of
defects.
1.2 The environments for which SQA methods are
developed
The software developed by many individuals and in different situations
fulfills a variety of needs:
• Pupils and students develop software as part of their education.
• Software amateurs develop software as a hobby.
• Professionals in engineering, economics, management and other
fields.
• Software development professionals (systems analysts and
programmers) develop software products or firmware as a professional
career objective.
Continue…
The main characteristics of this environment are as follows:
• Contractual conditions
• Subjection to customer–supplier relationship
• Required teamwork
• Cooperation and coordination with other software teams
• Interfaces with other software systems
• The need to continue carrying out a project despite team member changes
• The need to continue carrying out software maintenance for an extended
period