You are on page 1of 31

Software Quality Assurance (SQA)

Dr. Rohit Rastogi


Associate Professor,
Computer Science & Engineering Department,
ABES EC, Ghaziabad
Affiliated to Dr. A.P.J. Abdul Kalam Technical University, Uttar
Pradesh, Lucknow
Basic
Quality defines to any measurable characteristics such
as correctness, maintainability, portability, testability,
usability, reliability, efficiency, integrity, reusability, and
interoperability.
Conti…
Quality of Design: Quality of Design refers to the
characteristics that designers specify for an item. The
grade of materials, tolerances, and performance
specifications that all contribute to the quality of design.

Quality of conformance: Quality of conformance is the


degree to which the design specifications are followed
during manufacturing. Greater the degree of
conformance, the higher is the level of quality of
conformance.
Conti…
 Software Quality: is defined as conformance to explicitly state
functional and performance requirements, explicitly documented
development standards, and inherent characteristics that are expected
of all professionally developed software.

 Quality Control: involves a series of inspections, reviews, and tests


used throughout the software process to ensure each work product
meets the requirements place upon it. Quality control includes a
feedback loop to the process that created the work product.

 Quality Assurance: is preventive set of activities that provide greater


confidence that the project will be completed successfully. It focuses
on how the engineering and management activity will be done?
Conti…
Software Quality Assurance (SQA) is
◦ Simply a way to assure quality in the software.

◦ Set of activities which ensure processes, procedures as well as


standards are suitable for the project and implemented correctly.

◦ A process which works parallel to development of software.

◦ Focuses on improving the process of development of software so


that problems can be prevented before they become a major
issue.
Conti…
SQA is
◦ A kind of Umbrella activity that is applied throughout software
process.

◦ Is a planned and systematic plan of all actions necessary to


provide adequate confidence that an item or product conforms
to establish technical requirements.

◦ A set of activities designed to calculate the process by which


the products are developed or manufactured.
Conti…
 SQA is
◦ Ongoing process that ensures software product meets and complies with
the organization’s established and standardized quality specifications.

◦ A set of activities that verifies that everyone involved with the project has
correctly implemented all procedures and processes.

◦ Works parallel to software development, an ongoing activity applied


throughout the software development life cycle.

◦ Ultimate goal is to catch a product’s shortcomings and deficiencies before


the general public sees it. If mistakes get caught in-house, it means fewer
headaches for the development team and a lot less angry customers.
Conti…
Common characteristics of SQA processes:
A defined quality management approach
Holding formal technical reviews
Implementing a multi-testing strategy
Using effective software engineering technology
A measurement and reporting mechanism
Software Quality Assurance
SQA focuses on:
Software’s portability
Software’s usability
Software’s reusability
Software’s correctness
Software’s maintainability
Software’s error control
SQA Encompasses
A quality management approach
Effective Software engineering technology (methods and
tools)
Formal technical reviews that are tested throughout
software process
A multitier testing strategy
Control of software documentation & changes made to it.
A procedure to ensure compliances with software
development standards
Measuring and reporting mechanisms.
Elements of Software Quality Assurance
Standards
 IEEE, ISO, and other standards organizations have produced a broad
array of software engineering standards and related documents.
 The job of SQA is to ensure that standards that have been adopted are
followed, and all work products conform to them.

Reviews and audits


 Technical reviews are a quality control activity performed by software
engineers for software engineers.
 Their intent is to uncover errors.
 Audits are a type of review performed by SQA personnel (people
employed in an organization) with the intent of ensuring that quality
guidelines are being followed for software engineering work.
Conti…
Testing
 Software testing is a quality control function that has one primary goal—to
find errors.
 Job of SQA is to ensure that testing is properly planned and efficiently
conducted for primary goal of software.

Error/defect collection and analysis


 SQA collects and analyzes error and defect data to better understand how
errors are introduced and what software engineering activities are best
suited to eliminating them.

Change management
 SQA ensures that adequate change management practices have been
Conti…
Education
 Every software organization wants to improve its software
engineering practices.
 A key contributor to improvement is education of software
engineers, their managers, and other stakeholders.
 SQA organization takes the lead in software process improvement
which is key proponent and sponsor of educational programs.

Security management
 SQA ensures that appropriate process and technology are used to
achieve software security.
Conti…
Safety
SQA may be responsible for assessing the impact of
software failure and for initiating those steps required to
reduce risk.

Risk management
The SQA organization ensures that risk management
activities are properly conducted and that risk-related
contingency plans have been established.
Major SQA Activities
SQA Management Plan
Make a plan for how you will carry out the SQA
throughout the project.
Think about which set of software engineering activities
are the best for project. check level of SQA team skills.

Set The Check Points


SQA team should set checkpoints. Evaluate the
performance of the project on the basis of collected data
on different check points.
Conti…
Measure Change Impact
Changes for making the correction of an error
sometimes re introduces more errors keep the measure
of impact of change on project.
Reset the new change to check the compatibility of this
fix with whole project.

Multi testing Strategy


Do not depend on a single testing approach. When you
have a lot of testing approaches available use them.
Conti…
Manage Good Relations
In the working environment managing good relations
with other teams involved in the project development is
mandatory.
Bad relation of SQA team with programmers team will
impact directly and badly on project. Don’t play politics.

Managing Reports and Records


Document and share QA activities (test cases, defects,
client changes) for future reference and stakeholder
Benefits of SQA
 SQA produces high quality software.

 High quality application saves time and cost.

 SQA is beneficial for better reliability.

 SQA is beneficial in condition of no maintenance for a long


time.

 High quality commercial software increase market share of


Conti….
Improving the process of creating software.

Improves the quality of the software.

It cuts maintenance costs.


SQA activities
Following activities are performed by an independent SQA group:
 Prepares an SQA plan for a project

 Participates in the development of the project's 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 a
part of the software process

 Ensures that deviations in software work and work products are documented and handled
according to a documented procedure


Conti…
Prepares an SQA plan for a project
The program is developed during project planning and
is reviewed by all stakeholders.
The plan governs quality assurance activities performed
by the software engineering team and the SQA group.
The plan identifies calculation to be performed, audits
and reviews to be performed, standards that apply to the
project, techniques for error reporting and tracking,
documents to be produced by the SQA team, and amount
of feedback provided to the software project team.
Conti…
Participates in the development of the project's software
process description
The software team selects a process for the work to be
performed.
The SQA group reviews the process description for
compliance with organizational policy, internal software
standards, externally imposed standards (e.g. ISO-9001),
and other parts of the software project plan.
Conti…
Reviews software engineering activities to verify compliance
with the defined software process
 The SQA group identifies, reports, and tracks deviations from
the process and verifies that corrections have been made.

Audits designated software work products to verify compliance


with those defined as a part of the software process
 The SQA group reviews selected work products, identifies,
documents and tracks deviations, verify that corrections have
been made, and periodically reports the results of its work to
the project manager.
Conti…
Ensures that deviations in software work and work products
are documented and handled according to a documented
procedure
Deviations may be encountered in the project method,
process description, applicable standards, or technical
work products.

Records any noncompliance and reports to senior


management
Non- compliance items are tracked until they are resolved.
Quality Assurance v/s Quality control
Quality Assurance (QA) Quality Control (QC)
QA is an activity that establishes and calculates QC is an activity that demonstrates whether or
the processes that produce the product. If there not the product produced met standards.
is no process, there is no role for QA.

QA helps establish process QC relates to a particular product or service

QA sets up a measurement program to evaluate QC verified whether particular attributes exist,


processes or do not exist, in a explicit product or service.

QA identifies weakness in processes and QC identifies defects for the primary goals of
improves them correcting errors.
QA is a managerial tool. QC is a corrective tool.
Verification is an example of QA. Validation is an example of QC.
SQA Techniques
Auditing
 Inspection of the work products and its related information to determine
if a set of standard processes were followed or not.

Reviewing
 A meeting in which software product is examined by both internal and
external stakeholders to seek their comments and approval.

Code Inspection
 Most formal kind of review that does static testing to find bugs and avoid
defect seepage into the later stages.
 It is done by a trained mediator/peer and is based on rules, checklists,
Conti…
Design Inspection
 Is done using a checklist that inspects below areas of software
design:
◦ General requirements and design
◦ Functional and Interface specifications
◦ Conventions
◦ Requirement traceability
◦ Structures and interfaces
◦ Logic
◦ Performance
◦ Error handling and recovery
◦ Testability, extensibility
Conti…
Simulation
 A tool that models a real-life situation in order to virtually
examine the behaviour of the system under study.
 In cases when the real system cannot be tested directly,
simulators are great sandbox system alternatives.

Functional Testing
 To validates what system does without considering how it
does it.
 Black Box testing mainly focuses on testing system
specifications or features.
Conti…
Standardization
Decreases ambiguity and guesswork, thus ensuring
quality.

Static Analysis
Done by an automated tool without executing program.
Software metrics and reverse engineering are some
popular forms of static analysis.
In newer teams, static code analysis tools such as
SonarCube, VeraCode, etc. are used.
Conti…
Walkthroughs
A software walkthrough or code walkthrough is a peer
review where the developer guides members of development
team to go through the product, raise queries, suggest
alternatives, and make comments regarding possible errors,
standard violations, or any other issues.

Unit Testing
A White Box Testing technique where complete code
coverage is ensured by executing each independent path,
branch, and condition at least once.
Conti…
Stress Testing
Testing is done to check how robust a system is by
testing it under heavy load i.e. beyond normal
conditions.

You might also like