You are on page 1of 128

Software Quality Assurance

Framework (SQA)

Yujuan Dou 窦玉娟


2008/11/28
Whole Course Plan

„ Software Quality Assurance Framework


„ Test Requirement
„ Test Planning
„ Test Case Design
„ Test Execution and Defect Management
„ Test Reporting
Home Work
„ Write Test Requirement
„ Write Test Plan (Group List)
„ Delivery the test cases
„ Summarize the test results and deliver a
test report
„ Home work delivery:
To: Ydou@statestreet.com,
Cc: douyujuan@163.com
Agenda
„ What Is Software Quality?
„ Software Quality Assurance
„ Components of Quality Assurance
…Software Testing
…Quality Control
…Software Configuration Management
Agenda-con.
„ Software Quality Assurance Plan
…Steps to Develop and Implement a
Software Quality Assurance Plan
„ Quality Standards.
„ Activities and responsibilities of SQA
team.
„ Responsibilities of testers.
„ Characteristics of Good SQA Engineer.
What Is Software
Quality?
What Is Software Quality?
Professional Views about Software Quality
… Conformance to requirements.
„ The first is that quality means “meeting
requirements.”
… Fitness for use.
„ Another definition of quality, the customer’s, is
the one we use. With this definition, the
customer defines quality as to whether the
product or service does what the customer
needs.
„ Software Quality is something everyone
wants. Managers know that they want high
quality, software developers know they
want to produce a quality product, and
users insist that software work consistently
and be reliable.
Quality Assurance
„ Quality Assurance [ISO 9000]:
„ All those planned and systematic actions
necessary to provide adequate confidence
that a product or service will satisfy
requirements for quality
Software quality assurance
[IEEE]:
„ 1. A planned and systematic pattern of all
actions necessary to provide adequate
confidence that an item or product
conforms to established technical
requirements.
„ 2. A set of activities designed to evaluate
the process by which the products are
developed or manufactured.
Role of Customer
„ Customers don’t buy products, they buy
assurances that their expectations with the
products would met.

„ You also, can only sell assurances – in


other words, Quality.

„ Customer is in absolute position to judge


the quality.
Software Quality Assurance
„ A formal definition of software quality
assurance is that it is the systematic
activities providing evidence of the fitness
for use of the total software product.
„ Software quality assurance is achieved
through the use of established guidelines
for quality control to ensure the integrity
and prolonged life of software.
Objectives of Software Quality
Assurance
„ Only Quality Control (testing) is not
enough:
… What would you do if your software does not
pass the QC test?
… QC is a reactive approach, not proactive one.

„ Quality Assurance includes Proactive as


well as Reactive approaches.
PPQA in CMMI
„ The purpose of Process and Product
Quality Assurance is to provide staff and
management with objective insight into
processes and associated work products.
Measuring Software Quality
„ Usually recognized in the form of bugs or defects.
… Defect rate (defect/KLOC or defects/FP)
… Reliability (Failure free operation)

„ IBM monitors CUPRIMDSO – Capability (Functionality),


Usability, Performance, Reliability, Installability,
Maintainability, Documentation, Service, & Overall.

„ HP monitors FURPS – Functionality, Usability, Reliability,


Performance & Service.
Purpose of SQA Activities
„ Practically, zero defect product is not possible to
achieve.
„ The purpose of quality assurance practices are
to minimize the number of defects.
„ How much efforts are needed to minimize the
number of defects?
… areyou developing a customized project or product?
… how critical your application is?
„ 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.
„ Quality assurance is a catalytic function that
should encourage quality attitudes and discipline
on the part of management and workers.
„ Successful quality assurance managers know
how to make people quality conscious and to
make them recognize the benefits of quality to
themselves and to the organization.
„ It is not the sole responsibility of the
software quality assurance group but is
determined by the consensus of the
project manager, project leader, project
personnel, and users.
Developer to Tester Ratio
„ There is no standard developer to tester
ratio in IT industry.
„ However, industry does have some norms:
… For customized projects, ratio must be at least
3:1
… For products, ratio can be as high as 1:3
Organizational Positioning of SQA
(Observed)

CEO
CEO

Development HR Admin
Development HR Admin
Manager Manager Manager
Manager Manager Manager

SQA Project
SQA Project
Manager Manager 1
Manager Manager 1

SCM Project
SCM Project
Manager Manager 2
Manager Manager 2
Organizational Positioning of SQA
(Recommended)

CEO
CEO

Admin Development SQA SCM Support


Admin Development SQA SCM Support
Manager Manager Manager Manager Manager
Manager Manager Manager Manager Manager

Project
Project
Manager 1
Manager 1

Project
Project
Manager 2
Manager 2
Top Management Support to SQA
Department
„ Proper staffing and hiring
„ Separate budget for payroll and running expenses
„ Separate capital budget
„ Test facilities and environment
„ Trust and confidence
„ Authority
• Don’t force to close defects
• Don’t force to sign acceptance
• Act as an arbitrator for the conflicts between QA/Dev.
Components of
Quality Assurance
Components of Quality Assurance
„ Most software quality assurance activities can
be categorized into software testing, that is,
verification and validation, software configuration
management, and quality control.
„ But the success of a software quality assurance
program also depends on a coherent collection
of standards, practices, conventions, and
specifications,
„ as shown in Exhibit 1.1.
Exhibit 1.1. Quality Assurance
Components
Software Testing
„ Software testing is a popular risk
management strategy. It is used to verify
that functional requirements were met.
The limitation of this approach,
„ however, is that by the time testing occurs,
it is too late to build quality into the product.
Software Testing
„ Tests are only as good as the test cases,
but they can be inspected to ensure that
all the requirements are tested across all
possible combinations of inputs and
system states.
„ However, not all defects are discovered
during testing.
Software Testing
„ Software testing includes the activities outlined
in this text, including verification and validation
activities.
„ In many organizations, these activities, or their
supervision, are included within the charter for
the software quality assurance function.
„ The extent to which personnel independent of
design and coding should participate in software
quality assurance activities is a matter of
institutional, organizational, and project policy.
Software Testing
„ The major purpose of verification and validation
activities is to ensure that software design, code,
and documentation meet all the requirements
imposed on them.
„ Examples of requirements include user
requirements; specifications derived from and
designed to meet user requirements; code
review and inspection criteria; test requirements
at the modular, subsystem, and integrated
software levels; and acceptance testing of the
code after it has been fully integrated with
hardware.
Software Testing
„ During software design and implementation,
verification helps determine whether the
products of one phase of the software
development life cycle fulfill the requirements
established during the previous phase.
„ The verification effort takes less time and is less
complex when conducted throughout the
development process.
Quality Control
„ Quality control is defined as the processes
and methods used to monitor work and
observe whether requirements are met. It
focuses on reviews and removal of defects
before shipment of products.
Quality Control
„ Quality control should be the responsibility
of the organizational unit producing the
product.
„ It is possible to have the same group that
builds the product perform the quality
control function, or to establish a quality
control group or department within the
organizational unit that develops the
product.
Quality Control
„ Quality control consists of well-defined
checks on a product that are specified in
the product quality assurance plan.
„ For software products, quality control
typically includes specification reviews,
inspections of code and documents, and
checks for user deliverables.
Quality Control
„ Usually, document and product inspections are
conducted at each life cycle milestone to
demonstrate that the items produced are within
the criteria specified by the software quality
assurance plan.
„ These criteria are normally provided in the
requirements specifications, conceptual and
detailed design documents, and test plans.
„ The documents given to users are the
requirement specifications, design
documentation, results from the user
acceptance test, the software code, user
guide, and the operations and
maintenance guide.
„ Additional documents are specified in the
software quality assurance plan.
„ Quality control can be provided by various
sources. For small projects, the project
personnel’s peer group or the department’s
software quality coordinator can inspect the
documents.
„ On large projects, a configuration control board
may be responsible for quality control. The
board may include the users or a user
representative, a member of the software quality
assurance department, and the project leader.
„ Inspections are traditional functions of quality control,
that is, independent examinations to assess compliance
with some stated criteria.
„ Peers and subject matter experts review specifications
and engineering work products to identify defects and
suggest improvements.
„ They are used to examine the software project for
adherence to the written project rules at a project’s
milestones and at other times during the project’s life
cycle as deemed necessary by the project leader or the
software quality assurance personnel.
„ An inspection may be a detailed checklist for assessing
compliance or a brief checklist to determine the
existence of such deliverables as documentation. A
report stating the purpose of the inspection and the
deficiencies found goes to the project supervisor, project
leader, and project personnel for action.
Quality Control
„ Responsibility for inspections is stated in the
software quality assurance plan.
„ For small projects, the project leader or the
department’s quality coordinator can perform the
inspections.
„ For large projects, a member of the software
quality assurance group may lead an inspection
performed by an audit team, which is similar to
the configuration control board mentioned
previously.
„ Following the inspection, project personnel are
assigned to correct the problems on a specific
schedule.
Quality Control
„ Quality control is designed to detect and correct
defects, whereas quality assurance is oriented
toward preventing them.
„ Detection implies flaws in the processes that are
supposed to produce defect-free products and
services.
„ Quality assurance is a managerial function that
prevents problems by heading them off, and by
advising restraint and redirection.
Software Configuration Management

„ Software configuration management is


concerned with labeling, tracking, and
controlling changes in the software
elements of a system.
„ It controls the evolution of a software
system by managing versions of its
software components and their
relationships.
Software Configuration Management
„ The purpose of software configuration management is to
identify all the interrelated components of software and
to control their evolution throughout the various life cycle
phases.
„ Software configuration management is a discipline that
can be applied to activities including software
development, document control, problem tracking,
change control, and maintenance.
„ It can provide a high cost savings in software reusability
because each software component and its relationship to
other software components have been defined.
Elements of Software
Configuration Management
Software Quality
Assurance Plan
„ The objectives of software quality are typically
achieved by following a software quality
assurance plan that states the methods the
project will employ to ensure the documents or
products produced and reviewed at each
milestone are of high quality.
„ Such an explicit approach ensures that all steps
have been taken to achieve software quality and
provides management with documentation of
those actions.
„ The plan states the criteria by which quality
activities can be monitored rather than setting
impossible goals, such as no software defects or
100 percent reliable software.
Software Quality Assurance Plan
„ The software quality assurance (SQA) plan is an
outline of quality measures to ensure quality
levels within a software development effort.
„ The plan is used as a baseline to compare the
actual levels of quality during development with
the planned levels of quality.
„ If the levels of quality are not within the planned
quality levels, management will respond
appropriately as documented within the plan.
Software Quality Assurance Plan
„ The plan provides the framework and guidelines for
development of understandable and maintainable code.
„ These ingredients help ensure the quality sought in a
software project. An SQA plan also provides the
procedures for ensuring that quality software will be
produced or maintained in-house or under contract.
„ These procedures affect planning, designing, writing,
testing, documenting, storing, and maintaining computer
software.
„ It should be organized in this way because the plan
ensures the quality of the software rather than describing
specific procedures for developing and maintaining the
software.
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
Step 1. Document the Plan
„ The software quality assurance plan should include the
sections below:
„ Purpose Section — This section delineates the specific
purpose and scope of the particular SQA plan. It should
list the name(s) of the software items covered by the
SQA plan and the intended use of the software. It states
the portion of the software life cycle covered by the SQA
plan for each software item specified.
„ • Reference Document Section — This section provides
a complete list of documents referenced elsewhere in
the text of the SQA plan.
„ • Management Section — This section describes
the project’s organizational structure, tasks, and
responsibilities.
„ • Documentation Section — This section
identifies the documentation governing the
development, verification and validation, use,
and maintenance of the software. It also states
how the documents are to be checked for
adequacy. This includes the criteria and the
identification of the review or audit by which the
adequacy of each document will be confirmed.
„ Standards, Practices, Conventions, and Metrics
Section — This section identifies the standards,
practices, conventions, and metrics to be applied,
and also states how compliance with these items
is to be monitored and assured.
„ • Reviews and Inspections Section — This
section defines the technical and managerial
reviews, walkthroughs, and inspections to be
conducted. It also states how the reviews,
walkthroughs, and inspections are to be
accomplished including follow-up activities and
approvals.
„ Software Configuration Management Section —
This section is addressed in detail in the
project’s software configuration management
plan.
„ Problem Reporting and Corrective Action
Section — This section is addressed in detail in
the project’s software configuration management
plan.
„ Tools, Techniques, and Methodologies
Section — This section identifies the special
software tools, techniques, and methodologies
that support SQA, states their purposes, and
describes their use.
„ Code Control Section — This section defines the
methods and facilities used to maintain, store,
secure, and document the controlled versions of
the identified software during all phases of
development. This may be implemented in
conjunction with a computer program library
and/or may be provided as a part of the software
configuration management plan.
„ Media Control Section — This section states the
methods and facilities to be used to identify the media for
each computer product and the documentation required
to store the media, including the copy and restore
process, and protects the computer program physical
media from unauthorized access or inadvertent damage
or degradation during all phases of development.
„ This may be provided by the software configuration
management plan.
„ Supplier Control Section — This section states the
provisions for assuring that software provided by
suppliers meets established requirements.
„ In addition, it should state the methods that will be used
to assure that the software supplier receives adequate
and complete requirements.
„ For previously developed software, this section states
the methods to be used to assure the suitability of the
product for use with the software items covered by the
SQA plan.
„ For software to be developed, the supplier will be
required to prepare and implement an SQA plan in
accordance with this standard.
„ This section will also state the methods to be employed
to assure that the developers comply with the
requirements of this standard.
„ Records Collection, Maintenance, and Retention
Section — This section identifies the SQA
documentation to be retained. It states the methods and
facilities to assemble, safeguard, and maintain this
documentation, and will designate the retention period.
The implementation of the SQA plan involves the
necessary approvals for the plan as well as development
of a plan for execution. The subsequent evaluation of the
SQA plan will be performed as a result of its execution.
„ Testing Methodology — This section defines the testing
approach, techniques, and automated tools that will be
used.
Step 2. Obtain Management
Acceptance
„ Management participation is necessary for
the successful implementation of an SQA
plan.
„ Management is responsible both for
ensuring the quality of a software project
and for providing the resources needed for
software development.
„ The level of management commitment
required for implementing an SQA plan
depends on the scope of the project.
„ If a project spans organizational
boundaries, approval should be obtained
from all affected areas.
„ Once approval has been obtained, the
SQA plan is placed under configuration
control.
„ 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.
„ Staff should be aware that management views
the program as a means of ensuring software
quality, and not as an end in itself.
„ To address management concerns,
software life cycle costs should be formally
estimated for projects implemented both
with and without a formal SQA plan. In
general, implementing a formal SQA plan
makes economic and management sense.
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.
„ Because project teams generally have only a few
members, all team members should actively participate
in writing the SQA plan.
„ When projects become much larger (i.e., encompassing
entire divisions or departments), representatives of
project subgroups should provide input. Constant
feedback from representatives to team members helps
gain acceptance of the plan.
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.
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).
„ The SQA plan defines the means that will
be used to ensure that software developed
for a specific product satisfies the user’s
requirements and is of the highest quality
possible within project constraints.
„ In order to do so, it must first ensure that
the quality target is clearly defined and
understood.
„ It must consider management,
development, and maintenance plans for
the software.

„ The SQA plan should be consistent with


the software configuration management
plan (refer to the Software Configuration
Management KA).
„ The SQA plan identifies documents,
standards, practices, and conventions
governing the project and how they will be
checked and monitored to ensure
adequacy and compliance.
„ The SQA plan also identifies measures,
statistical techniques, procedures for
problem reporting and corrective action,
resources such as tools, techniques, and
methodologies, security for physical media,
training, and SQA reporting and
documentation.
„ Moreover, the SQA plan addresses the software
quality assurance activities of any other type of
activity described in the software plans, such as
procurement of supplier software to the project
or commercial off-the-shelf software (COTS)
installation, and service after delivery of the
software.
„ It can also contain acceptance criteria as
well as reporting and management
activities which are critical to software
quality.
„ The specific quality activities and tasks are laid
out, with their costs and resource requirements,
their overall management objectives, and their
schedule in relation to those objectives in the
software engineering management,
development, or maintenance plans.
Pairs of Terms
Prevention versus Detection
„ Quality cannot be achieved by assessing
an already completed product.
„ The aim, therefore, is to prevent quality
defects or deficiencies in the first place,
and to make the products assessable by
quality assurance measures. 3
„ The total cost of effective quality
management is the sum of four
component costs:
… prevention,
… inspection,
… internal
failure,
… and external failure.
„ Prevention costs consist of actions taken to
prevent defects from occurring in the first place.
„ Inspection costs consist of measuring,
evaluating, and auditing products or services for
conformance to standards and specifications.
„ Internal failure costs are those incurred in fixing
defective products before they are delivered.
„ External failure costs consist of the costs
of defects discovered after the product has
been released.
„ The latter can be devastating because
they may damage the organization’s
reputation or result in the loss of future
sales.
„ The greatest payback is with prevention.
Increasing the emphasis on prevention
costs reduces the number of defects that
go to the customer undetected, improves
product quality, and reduces the cost of
production and maintenance.
Verification versus Validation
„ Verification is proving that a product meets
the requirements specified during previous
activities carried out correctly throughout
the development life cycle.
„ and validation checks that the system
meets the customer’s requirements at the
end of the life cycle.
VV&T
„ Verification
„ the process of evaluating a system or
component to determine whether the products
of the given development phase satisfy the
conditions imposed at the start of that phase
„ Validation
„ determination of the correctness of the
products of software development with respect
to the user needs and requirements
„ Testing
„ the process of exercising software to verify that
it satisfies specified requirements and to detect
faults
Verification, Validation and
Testing
Validation

Testing
Any
Any

Verification
„ Verification: Says “Are we building the
product right?” All QC activities throughout
the life cycle that ensure that interim
deliverables meet their input specification.
„ Validation: Says “Are we building the right
product?” The test phase of the life cycle
which assures that the end product meets
the user’s needs.
QA
„ Quality assurance is the set of support
activities needed to provide adequate
confidence that processes are established
and continuously improved in order to
produce products that meet specifications
and are fit for use.
QC & Auditing
„ Quality control is the process by which
product quality is compared with
applicable standards and the action taken
when nonconformance is detected.
„ Auditing is the inspection/assessment
activity that verifies compliance with plans,
policies, and procedures.
„ Software quality assurance is a planned
effort to ensure that a software product
fulfills these criteria and has additional
attributes specific to the project, for
example, portability, efficiency, reusability,
and flexibility.
„ It is the collection of activities and
functions used to monitor and control a
software project so that specific objectives
are achieved with the desired level of
confidence.
Quality Standards
Quality Standards
„ The following describes the leading quality
standards for IT.
… ISO9000
… Capability Maturity Model (CMM)
… PCMM
… CMMI
… Malcom Baldrige National Quality Award
… RUP
… Six Sigma
CMMI Introduction
There are 22 process areas,
presented here in alphabetical order by acronym:

„ Causal Analysis and Resolution (CAR)


„ Configuration Management (CM)
„ Decision Analysis and Resolution (DAR)
„ Integrated Project Management +IPPD (IPM+IPPD)[1]
„ Measurement and Analysis (MA)
„ Organizational Innovation and Deployment (OID)
„ Organizational Process Definition +IPPD (OPD+IPPD)6
„ Organizational Process Focus (OPF)
„ Organizational Process Performance (OPP)
„ Organizational Training (OT)
„
[1] This process area has "+IPPD" after its name because it contains
a goal and practices that are specific to IPPD. The material specific to
IPPD is called an "IPPD addition." All process areas with IPPD
additions have "+IPPD" after their name.
„ Product Integration (PI)
„ Project Monitoring and Control (PMC)
„ Project Planning (PP)
„ Process and Product Quality Assurance (PPQA)
„ Quantitative Project Management (QPM)
„ Requirements Development (RD)
„ Requirements Management (REQM)
„ Risk Management (RSKM)
„ Supplier Agreement Management (SAM)
„ Technical Solution (TS)
„ Validation (VAL)
„ Verification (VER)
Process and Product Quality
Assurance
„ The purpose of Process and Product
Quality Assurance (PPQA) is to provide
staff and management with objective
insight into processes and associated
work products.
The Process and Product Quality Assurance
process area involves the following:
„ Objectively evaluating performed processes,
work products, and services against the
applicable process descriptions, standards, and
procedures
„ Identifying and documenting noncompliance
issues
„ Providing feedback to project staff and
managers on the results of quality assurance
activities
„ Ensuring that noncompliance issues are
addressed
„ The Process and Product Quality Assurance
process area supports the delivery of high-
quality products and services by providing
the project staff and managers at all levels
with appropriate visibility into, and feedback
on, processes and associated work products
throughout the life of the project.
Specific Goal and Practice Summary
SG 1 Objectively Evaluate Processes and
Work Products
… SP 1.1Objectively Evaluate Processes
… SP 1.2Objectively Evaluate Work Products
and Services
„ SG 2 Provide Objective Insight
… SP 2.1Communicate and Ensure Resolution
of Noncompliance Issues
… SP 2.2Establish Records
„ Quality assurance should begin in the
early phases of a project to establish
plans, processes, standards, and
procedures that will add value to the
project and satisfy the requirements of
the project and the organizational
policies.
SOFTWARE QUALITY ASSURANCE
„ INVOLVES
… Establishing a Quality Assurance Group who has
required independence.
… Participation of SQA in establishing the plans,
standards and procedures for the project.
… Reviewing and auditing the software products
and activities to ensure that they comply with
the applicable procedures and standards.
… Providing the software project and other
appropriate managers with the results of those
reviews and audits.
… Escalating unresolved issues to an appropriate
level of management.
Software Quality Assurance -
Activities
„ SOFTWARE QUALITY ASSURNACE
ACTIVITIES ARE PLANNED
…A SQA plan is prepared for the software
project according to a documented
procedure.
… The SQA group’s activities are performed
in accordance with the SQA plan.
„ ADHERENCE OF SOFTWARE PRODUCTS
AND ACTIVITIES TO BE APPLICABLE
STANDARDS, PROCEDURES, AND
REQUIREMENTS IS VERIFIED OBJECTIVELY.
… The SQA group’s activities are performed in
accordance with the SQA plan
… The SQA group participates in the preparation and
review of the project’s software development plan,
standards and procedures.
… The SQA group reviews the software engineering
activities to verify compliance
… The SQA group audits designated software work
products to verify compliance.
Software Quality Assurance -
Activities
„ AFFECTED GROUPS AND
INDIVIDUALS ARE INFORMED OF
SOFTWARE QUALITY ASSURANCE
ACTIVITIES AND RESULTS.
… TheSQA group periodically reports the
results of its activities to the software
engineering group.
… Deviations identified in the software activities
and software work products are documented
and handled according to a documented
procedure.
… The SQA group conducts periodic reviews of
its activities and findings with customers SQA
personnel, as appropriate.
Good Practices
„ Detailed plan for SQA group
„ Structuring of SQA functions and management
of the group like a project itself with detailed
plan, schedules, configuration management etc
„ SLAs for SQA group also
„ Rotation mechanism for SQA team members for
career planning
„ Release approval authority for the SQA
„ Effectiveness measurement of SQAs
RUP Steps for SQA

All the following text is from


Rational Unified Process 7.0.
Ensure Quality Objectives are
Defined for the Project
„ The Project Manager may not necessarily
define the quality goals for the project, but
ensures that these definitions are created
and agreed by the customer, and captured
ultimately in the Software Requirements
Specification.
„ The developing organization may also
have a standard set of quality goals, in a
quality policy statement, which can form
the basis for these definitions.
„ Where possible, these objectives should
be described in measurable terms. For
example:
…"Zero known severity 1 defects" (...and
include a definition of a severity 1 defect)
…"Maximum 3 second response time"
…"User can pick up software and begin
entering account information within 1
hour"
Define Quality Assurance Roles
and Responsibilities
„ The next step is to define the organization, roles
and responsibilities that will participate in these
tasks.
„ This should include the reporting channel for the
results of Quality Assurance reviews.
„ In many situations, the Quality Assurance task
should submit its reports directly to the Project
Review Authority.
„ The Rational Unified Process recommends that
the Software Engineering Process Authority
(SEPA) should have responsibility for the
process aspects of quality, and perform process
reviews and audits, as well as ensuring the
proper planning and conduct of the review
events described in the Review and Audit
section of the Quality Assurance Plan.
Coordinate With Developers of
Referenced Plans
„ The Quality Assurance Plan also
references a number of other plans
describing project standards and how
various supporting process (e.g.
configuration management) to be handled.

„ This information is used to help determine


the types of Quality Assurance reviews
that will be done, and their frequency.
„ The referenced plans would normally
include the following:
…Documentation Plan
…Measurement Plan
…Risk Management Plan
…Problem Resolution Plan
…Configuration Management Plan
…Software Development Plan
…Test Plan
…Subcontractor Management Plan
Define Quality Assurance Tasks
and Schedule
„ Identify the tasks of Quality Assurance. Typically
these reviews would include:
… Audit/review of project plans to ensure they follow the
defined delivery process for the project.
… Audit/review of project to ensure the work performed
is following the project plans.
… Approval of deviations from the standard
organizational project processes.
… Process improvement assessments
„ The Project Review Authority and Project
Manager together determine the schedule for
Quality Assurance reviews and audits, and the
schedule is captured in the project and iteration
plan, which may then be referenced from the
Quality Assurance Plan.

„ The contract may also allow the customer to


request audits.
SQA Responsibilities
for a Project
„ SQA seeks to maintain the quality
throughout the development and
maintenance of the product by the
execution of a variety of activities at each
stage which can result in early
identification of problems, an almost
inevitable feature of any complex activity.
SQA Responsibilities for a Project
„ Review of documents developed by development team.
„ Track the compliance with standards.
„ Development of QA Plan (test plan + test cases).
„ Implementation of test cases.
„ Management of bug repository.
„ Participating in code and design reviews.
SQA Responsibilities for a Project
(cont...)
Typical SDLC phases and relevant Artifacts SQA Responsibilities
Requirements
RequirementsCollection
Collection Requirement
RequirementSpecs
Specs Reviews
Reviews

Analysis
Analysis Functional
FunctionalSpecs
Specs Reviews
Reviews

Architecture
Architecture&&Design
Design Design
DesignSpecs
Specs Reviews
Reviews

Development
Development Code
Code&&Executables
Executables
Implement
Implement
Test
TestCases
Cases
Testing
Testing

Deployment
Deployment Deployment
DeploymentDocs
Docs Review
Review
SQA Artifacts for a Project
Dev. Artifacts SQA Artifacts SQA Artifacts
(more)
Requirement
RequirementSpecs
Specs RS
RSReviews
Reviews

Functional
FunctionalSpecs
Specs FS
FSReviews
Reviews
Test
TestPlan
Plan

Design
DesignSpecs
Specs DS
DSReviews
Reviews
Test
TestCases
Cases

Code
Code&&Executables
Executables Bug
BugReports
Reports
More
MoreTest
TestCases
Cases

Deployment
DeploymentDocs
Docs DD
DDReviews
Reviews
Communication Between SQA and
Development

Development
Development SQA
SQA

Development
Development SCM
SCM SQA
SQA
Responsibilities of Testing Team

„ Responsibilities of a tester
• Design test cases
• Write test scripts
• Implement test cases
„ Responsibility of SQA manager
• Give 25% time for reviewing test cases written
• Lead review meetings
• Resolve conflicts
Other Responsibilities of SQA

„ Participate in product and process audits.


„ Initiate and participate in developing
standards.
„ Develop SQA’s own standards, processes
and checklists.
„ The role of SQA with respect to process is
to ensure that planned processes are
appropriate and later implemented
according to plan, and that relevant
measurement processes are provided to
the appropriate organization.
An Effective Testing Team
„ SQA Team should be composed of:
… Members with different background
… Members from different domains
… Technical gurus and user representatives
… Members with more analytical abilities.
Characteristics of Good SQA
Engineer
„ Experience & Education as a programmer or analyst.
„ A thick skin.
„ Good sense of humor.
„ Tolerance for chaos.
„ Firmness.
„ Evidence oriented.
„ Logical.
„ Honest.
„ Self sufficient.

You might also like