College of Engineering
Department of Computer Engineering
SWE 401 – Software Quality Assurance
Dr. Khaled Almakadmeh
1
Chapter 03
SQA System Components
2
The SQA System – SQA Architecture
An SQA system always combines a wide range of SQA components,
which are employed to challenge sources of software errors and to
achieve an acceptable level of software quality.
The environment in which software development and maintenance
is undertaken directly influences the SQA components:
o Pre-project quality components
o Project life cycle quality components
o Infrastructure error preventive and improvement components
o Software quality management components
o Standardization, certification and SQA assessment components
o Organizing for SQA – the human components
3
The SQA System – SQA Architecture
4
The SQA System – SQA Architecture
A. Pre-project components: assure that (a) the project commitments
have been adequately defined considering the resources required,
the schedule and budget; and (b) the development and quality
plans have been correctly determined.
B. Components of project life cycle activities assessment: project
life cycle is composed of two stages: development life cycle stage
and operation–maintenance stage.
✓ Development life cycle stage components detect design and
programming errors. Its components are divided into the following sub-
classes: reviews, expert opinions, software testing.
✓ SQA components used during the operation–maintenance phase
include specialized maintenance components.
5
The SQA System – SQA Architecture
C. Infrastructure components for error prevention and
improvement: these components are applied throughout the entire
organization, to eliminate or at least reduce rate of errors, based on
the organization’s accumulated SQA experience.
D. Software quality management components: aimed to control
development and maintenance activities and introduction of early
managerial support actions to prevent or minimize schedule and
budget failures and their outcomes.
6
The SQA System – SQA Architecture
E. Standardization, certification, and SQA system assessment
components: implement international professional and managerial
standards within organization
✓ Utilization of international professional knowledge
✓ Improvement of coordination of the organizational quality systems with
other organizations
✓ Assessment of quality systems achievements of according to a common
scale.
F. Organizing for SQA – the human components: managers,
testing personnel, SQA unit and practitioners in software quality
(SQA trustees, SQA committee and SQA forum members).
✓ They initiate and support implementation of SQA components, detect
deviations from SQA procedures and methodology, and suggest
improvements.
7
Pre-project Components
The SQA components belonging here are meant to improve the
preparatory steps taken prior to initiating work on the project itself:
o Contract review
o Development and quality plans
The contract review activities include a detailed examination of (a)
project proposal draft and (b) contract drafts including:
o Clarification of the customer’s requirements
o Review of the project’s schedule and resource requirement estimates
o Evaluation of professional staff’s capacity to carry out proposed project
o Evaluation of customer’s capacity to fulfill his obligations
o Evaluation of development risks
8
Development and Quality Plans
Once a software development contract is signed to undertake a
project, a plan is prepared of the project (“development plan”) and its
integrated quality assurance activities (“quality plan”).
The main issues treated in the project development plan are:
o Schedules
o Required manpower and hardware resources
o Risk evaluations
o Organizational issues: team members, subcontractors and partnerships
o Project methodology, development tools, etc.
o Software reuse plans.
9
Development and Quality Plans
The main issues treated in the project’s quality plan are:
o Quality goals, expressed in the appropriate measurable terms.
o Criteria for starting and ending each project stage.
o Lists of reviews, tests, and other scheduled verification and validation
activities.
10
Software Project Life Cycle Components
Several SQA components enter the software development project
life cycle at different points. Their use should be planned prior to the
project’s initiation. The main components are:
o Reviews
o Expert opinions
o Software testing
o Software maintenance
o Assurance of quality of subcontractors’ work and customer parts
11
Software Project Life Cycle Components:
Reviews
Formal reviews: development documents requires formal approval
of their quality as specified in development contract and demanded
by the procedures applied by the software developer. The developer
can continue to the next phase of the development process only on
receipt of formal approval of these documents.
Peer reviews: to detect as many design and programming faults as
possible. The output is a list of detected faults and, for inspections,
also a defect summary and statistics to be used as a database for
reviewing and improving development methods.
Expert opinions: support quality assessment efforts by introducing
external capabilities into organization’s development process.
12
Software Project Life Cycle Components:
Software Testing
Software tests are formal SQA components that are targeted toward
review of the actual running of the software. The tests are based on
a prepared list of test cases that represent a variety of expected
scenarios.
Software tests examine software modules, software integration, or
entire software packages (systems). Recurrent tests (usually termed
“regression tests”), carried out after correction of previous test
findings, are continued till satisfactory results are obtained.
Testing allow for formal approval of a module or integration setup so
that next programming phase can begin or completed software
system can be delivered and installed.
13
Software Project Life Cycle Components:
Software Maintenance Components
Software maintenance services are provided for extensive periods
and fall into the following categories:
o Corrective maintenance: user’s support services and correction of
software code and documentation failures.
o Adaptive maintenance: software adaptation to new circumstances and
customers without changing the basic software product. These
adaptations are usually required when the hardware system or its
components undergo modification.
o Functionality improvement maintenance: functional and performance
related improvement of existing software, carried out with respect to
limited issues.
14
Software Project Life Cycle Components:
Assurance of the quality of the external
participant’s work
The larger and more complex the project, the greater the likelihood
that external participants will be required, and the larger the
proportion of work transmitted to them (subcontractors, suppliers of
COTS software and customer).
If external participant’s work is performed using software assurance
standards below those of the supplier’s, risks of not meeting
schedule or other requirements are introduced into the project.
Software assurance efforts are required to establish controls over
external participant’s work to assure the quality of the hardware,
software, staff and training supplied by the customer.
15
Infrastructure Components for Error Prevention
and Improvement
The goals of SQA infrastructure are the prevention of software faults
or lowering of software fault rates with improvement of productivity,
including:
1. Procedures and work instructions
2. Templates and checklists
3. Staff training, retraining, and certification
4. Preventive and corrective actions
5. Configuration management
6. Documentation control
16
1. Procedures and work instructions
Procedures are planned to be generally applicable and to serve the
entire organization.
Work instructions provide detailed directions for the use of methods
that are applied in unique instances and employed by specialized
teams.
Procedures and work instructions are based on the organization’s
accumulated experience and knowledge; as such, they contribute to
the correct and effective performance of established technologies
and routines.
17
2. Templates and checklists
One way to combine higher quality with higher efficiency is to use
supporting quality devices, such as templates and checklists.
These devices, based as they are on the accumulated knowledge
and experience of the organization’s development and maintenance
professionals, contribute to meeting SQA goals.
18
3. Staff training, Instruction and Certification
Training new employees and retraining those employees who have
changed assignments.
Continuously updating staff with professional developments and the
in-house, hands-on experience acquired.
Certifying employees after their knowledge and ability have been
demonstrated.
19
4. Preventive and Corrective Actions
Implementation of changes that prevent similar failures in the future.
Correction of similar faults found in other projects and among the
activities performed by other teams.
Implementing proven successful methodologies to enhance the
probability of repeat successes.
20
5. Configuration Management
Configuration management deals with these hazards by introducing
procedures to control the change process.
These procedures relate to the approval of changes, the recording
of those changes performed, the issuing of new software versions
and releases, the recording of the version and release specifications
of the software installed in each site, and the prevention of any
changes in approved versions and releases once they are issued.
21
6. Documentation Control
The purpose of controlled document is to provide evidence of the
SQA system’s performance.
Documentation control functions refer to customer requirement
documents, contract documents, design reports, project plans, and
development standards. Documentation control activities entail:
o Definition of the types of controlled documents
o Specification of the formats, document identification methods
o Definition of review and approval processes for each document
o Definition of the archive storage methods
22
Management SQA Components
Managerial SQA components support the managerial control of
software development projects and maintenance services. Control
components include:
A. Project progress control (including maintenance contract control): to
detect the appearance of any situation that may induce deviations from
the project’s plans and maintenance service performance.
B. Software quality metrics: measurement of various aspects of software
quality is an effective tool to control and initiate process improvements
during the development and the maintenance phases.
C. Software quality costs: the costs of control (prevention costs, appraisal
costs, and managerial preparation and control costs) combined with
the costs of failure (internal failure costs, external failure costs, and
managerial failure costs).
23
SQA Standards, system certification, and
assessment components
Standards available may be classified into two main sub-classes:
quality management standards and project process standards. The
objectives of this components are:
o Utilization of international professional knowledge.
o Improvement of coordination with other organizations’ quality systems.
o Objective professional evaluation and measurement of achievements of
organization’s quality systems.
24
SQA Standards, system certification, and
assessment components
A proposed model based on IEEE Std. 730-2014 is composed of
three areas:
SQA area 1: SQA process implementation
SQA area 2: Product assurance activities for conformance
SQA area 3: Process assurance activities for conformance
25
SQA Unit - Tasks of SQA Area 1
SQA Process Implementation Activities
o Establish SQA process and the coordination
o Pre-project process – contract review
o Pre-project process - SQA plan and project plan
o Cost of software quality
o SQA records and documentation control
26
SQA Unit - Tasks of SQA Area 2
Product Assurance Activities for Conformance
o Evaluating the product for conformance
o Assuring software operation services quality conformance
o Software product quality metrics
27
SQA Unit - Tasks of SQA Area 3
Process Assurance Activities for Conformance
o Evaluation of process for conformance
o Evaluation of environment for conformance
o Improvement process – corrective and preventive actions
o Software process assurance activities for subcontractors
o Software process quality metrics
o Staff skills and knowledge – training and certification
28
SQA Trustees, Committees and Forums
The SQA unit: this unit and software testers are the only parts of the
SQA organizational base that devote themselves full-time to SQA
matters.
SQA trustees are members of development and maintenance teams
who have a special interest in software quality and are prepared to
devote part of their time to these issues.
SQA committee members are members of various software
development and maintenance units and are usually appointed for
term or ad hoc service.
SQA forums are composed of professionals and practitioners who
meet or maintain an internet site on a voluntary basis for discussion
of quality issues.
29
Organizing for SQA – The Human Components
30