Chapter Two
Software Quality Assurance
Quality Assurance
QA is the process of defining how software quality can be
achieved and how the development organization knows that
the software has the required level of quality.
QA is a planned and systematic pattern of all actions
necessary to provide adequate confidence that an item or
product conforms to established technical requirements.
The goal of QA is to provide management with the data
necessary to be informed about product quality and
confidence that product quality is meeting its goals.
QA is an effective approach for producing high quality
product.
QA is a process-oriented activity and it is oriented to bug
prevention.
2
Software Quality Assurance
Is a process which assures that all software engineering
process, method , activities and work items are monitored
and comply against the defined standards.
Incorporate all software development process starting from
requirement to coding until release.
Software Quality Assurance(SQA) is an umbrella activity that
is applied throughout the software process.
SQA encompasses-
1) A software quality assurance process
2) Specific quality assurance and quality control tasks
3) Effective software engineering practice
4) Control of all software work products
5) Software development standards
6) Measurement and reporting mechanisms
3
The Purpose of SQA
Monitoring processes and products throughout the
software development lifecycle to ensure the quality of the
delivered product(s)
Monitoring the processes
Provides management with objective feedback regarding
process compliance to approved plans, procedures,
standards, and analyses
Monitoring the products
Focus on the quality of product within each phase of the
SDLC
e.g., requirements, test plan, architecture, etc.
4
Steps to Develop and Implement a Software Quality
Assurance Plan
Step 1: Document the Plan
Step 2: Obtain Management Acceptance
Step 3: Obtain Development Acceptance
Step 4: Plan for Implementation of the SQA Plan
Step 5: Execute the SQA Plan
5
Step 1: Document the Plan
The software quality assurance plan should include the following sections:
Purpose Section
Reference Document Section
Management Section
Documentation Section
Standards, Practices, Conventions, and Metrics Section
Reviews and Inspections Section
Software Configuration Management Section
Problem Reporting and Corrective Action Section
Tools, Techniques, and Methodologies Section
Code Control Section
Records Collection, Maintenance, and Retention Section
Testing Methodology
6
Step 2: Obtain Management Acceptance
Management participation is necessary for the successful
implementation of an SQA plan.
Management is responsible for both ensuring the quality of a
software project and for providing the resources needed for
software development.
In the management approval process, management
relinquishes tight control over software quality to the SQA
plan administrator in exchange for improved software quality.
Software quality is often left to software developers. Quality is
desirable, but management may express concern as to the cost
of a formal SQA plan.
7
Step 3: Obtain Development Acceptance
Because the software development and maintenance
personnel are the primary users of an SQA plan, their
approval and cooperation in implementing the plan are
essential.
The software project team members must adhere to the
project SQA plan; everyone must accept it and follow it.
No SQA plan is successfully implemented without the
involvement of the software team members and their
managers in the development of the plan.
8
Step 4: Plan for Implementation of the SQA Plan
The process of planning, formulating, and drafting an SQA plan
requires staff and word-processing resources. The individual
responsible for implementing an SQA plan must have access to
these resources.
In addition, the commitment of resources requires management
approval and, consequently, management support.
To facilitate resource allocation, management should be made
aware of any project risks that may impede the implementation
process (e.g., limited availability of staff or equipment).
A schedule for drafting, reviewing, and approving the SQA plan
should be developed.
9
Step 5: Execute the SQA Plan
The actual process of executing an SQA plan by the
software development and maintenance team involves
determining necessary audit points for monitoring it.
The auditing function must be scheduled during the
implementation phase of the software product so that
improper monitoring of the software project will not
hurt the SQA plan.
Audit points should occur either periodically during
development or at specific project milestones (e.g., at
major reviews or when part of the project is delivered).
10
SQA Group Activities
Participates in the development of the projects software process
description
Reviews software engineering activities to verify compliance
with the defined software process.
Audits designated software work products to verify compliance
with those defined as part of the software process.
Ensures that deviations in software work and work products are
documented and handled according to a document procedure.
Records any non-compliance and reports to senior management.
11
Software Quality Team
The major role of the Software Quality Team is to review
applications.
Reviewing Applications
It also includes the following:
1. Software reviews and inspections
2. Traceability of software deliverables
3. Testing
4. Auditing of selected key software items
5. Standards and Guidelines
12
1. Software Reviews and Inspections
A software review is an evaluation of a software element
to ascertain discrepancies from planned results and to
recommend improvements.
– e.g. Design Review, Code Review
Different types, e.g.:
Walkthrough
Software Inspection
Technical Review
13
2. Traceability
– Forwards Traceability
» each input to a phase must be matched to
an output of the same phase to show
completeness
– Backwards Traceability
» each output is traceable to an input of a
phase
14
3. Testing
Testing is the evaluation of a system or
component to:
• confirm that it satisfies requirements
• identify differences between actual and
expected results
Testing may be 50% of project costs;
so use cheaper methods before testing starts,
i.e., walkthroughs and inspections
15
4. Auditing
Audits are independent reviews that assess compliance with
specifications, standards and procedures
Perform an audit before software release:
• Physical audit
check that all items identified as part of the
configuration are present
• Functional audit
check that unit, integration and acceptance tests have
been carried out and that records show their success or
failure
16
5. Software Quality Standards
Standards and Guidelines
‘A standard is an approved, documented, and available set of
criteria used to determine the adequacy of an action (process
standard) or object (product standard).’
‘A guideline is a well-defined and documented set of criteria
that guides an activity or task.’ (Dorfman & Thayer, 1990)
• differ from standards - allows for judgement and flexibility
Categories of Standards and Assessment
– Product Standards
– Calibration/ adjustment and Measurement Standards
– Quality Management Systems Standards
17
SQA-Reviews
‘Filter’ for the software engineering process
‘Purify’ the software work products that occur as a
result of analysis, design, and coding.
Achieve technical work of more uniform, greater and
more predictable quality.
Detect errors and problems at the earliest possible
time.
18
Formal Technical Reviews
To uncover errors in function, logic, or
implementation for any representation of the
software.
To verify that software meets its requirements.
To ensure that software representation meets
predefined standards.
To achieve software development in a uniform
manner.
To make projects more manageable.
19
The Players
standards bearer/ carrier (SQA)
review
leader
producer
maintenance
oracle
recorder reviewer
user rep
20
Review Guidelines..
Review the product, not Limit the number of
producer participants and insist
Set an agenda and upon advance reparation
maintain it Develop a checklist for
Limit the debate each work product to be
Enunciate problem areas, reviewed
not to solve every Training for all
problem noted reviewer’s
Take written notes Reviewing earlier
Allocate resources and time reviews
schedule.
21
SQA- Audit
Software quality assurance involves-
planning and conducting audits;
reporting the results to the affected groups;
tracking the assigned audit actions to completion;
and conducting follow up audits, as appropriate.
22
SQA-Auditing Activities
S No. Activity Description
Select projects/areas to be audited during period.
Audit Agree audit dates with affected groups
1. planning Agree scope of Audit & advise what needs to be
brought to the meeting.
Book room & send invitation to the attendees.
Prepare/update the Audit Schedule
Audit Ask attendees as to their specific role in the
2. project, the activities performed & determine the
meeting
extent to which the process is followed.
Employ an Audit Checklist as an aid
Review agreed documentation.
Determine if processes are appropriately followed
23
SQA-Auditing Activities
S No. Activity Description
3. Audit Revise notes from the Audit Meeting and review
reporting any required additional documents.
Prepare draft audit report, detail audit actions,
and obtain feedback to ensure accuracy.
Agree closure dates of the audit actions.
Circulate approved report to
attendees/management.
4. Track Track audit actions to closure.
actions Record the audit action status
Escalation (as appropriate) to resolve open
actions
5. Audit Once all actions are resolved the audit is closed
closure
24
Thank you
25