Skip to main content
Software Quality Assurance. It is a set of activities designed
to ensure that the software development process and products
meet specified quality standards. SQA focuses on improving
the software development lifecycle to prevent defects in the
final product, rather than identifying defects after the software
is completed.
The 7 Phases of SDLC (Software Development Life Cycle)
Stage 1: Project Planning
Stage 2: Gathering Requirements & Analysis
Stage 3: Design
Stage 4: Coding or Implementation
Stage 5: Testing
Stage 6: Deployment
Stage 7: Maintenance
Objectives of SQA:
Ensure that the software meets customer expectations and
requirements.
Reduce development costs by identifying defects early in the lifecycle.
Improve software reliability, maintainability, and usability.
Minimize risks and ensure compliance with standards.
Benefits of SQA:
Higher customer satisfaction.
Reduced rework and maintenance costs.
Enhanced team productivity and morale.
Improved software reliability and performance.
The uniqueness of the software development process:
• High complexity
• Invisibility of the product
• Limited opportunities to detect defects (“bugs”)
Waterfall Development Environment
SQA Focus: Verification & validation at each stage.
Methods Used:
• Requirement reviews
• Design inspections
• Code reviews
• System and acceptance testing
Best for: Large projects with well-defined requirements
EXAMPLES: NASA,Boeing , Lockheed Martin , Medical Device Companies
(Medtronic, Siemens)
Game Development Environment
SQA Focus: Performance, graphics rendering, and user
experience.
Methods Used:
• Play testing and user feedback analysis
• Stress and load testing
• Frame rate and rendering performance checks
Best for: Video games, VR/AR applications.
EXAMPLES:
Rockstar Games, Ubisoft, Naughty Dog, Epic Games,
Electronic Arts (EA), CD Projekt Red, Valve
Corporation, Activision Blizzard, Square Enix,
Nintendo
AI & Machine Learning (ML) Development Environment
SQA Focus: Model accuracy, bias detection, and algorithm
validation.
Methods Used:
• Data quality assurance
• Model drift testing
• Explainability and fairness testing
Best for: AI-driven applications
EXAMPLES:
Google (DeepMind, Google AI) , OpenAI , E.Tesla , Amazon (AWS AI
& ML) ,Facebook (Meta AI).....etc,.
Cloud Computing & SaaS Environment
SQA Focus: Scalability, availability, and security.
Methods Used:
• Cloud performance and load testing
• Disaster recovery and failover testing
Best for: Scalable enterprise solutions, multi-tenant
applications.
Examples: Google Workspace, Microsoft 365,
Dropbox, Salesforce, Zoom, etc.
Embedded Systems Environment
SQA Focus: Reliability, real-time performance, and
hardware-software integration.
Methods Used:
• Static code analysis
• Hardware-in-the-loop (HIL) testing
• Failure mode and effects analysis (FMEA)
Best for: Automotive, medical devices, and industrial
control systems.
EXAMPLES:
Intel , Bosch ,Nvidia ,Texas...etc,.
Devops Environment
SQA Focus: Automated quality assurance integrated
with development and operations.
Methods Used:
• Performance and security monitoring
• Infrastructure as Code (IaC) validation
Best for: Cloud-native applications and high-
frequency deployment cycles.
EXAMPLES:
Netflix ,Amazon (AWS DevOps) , Google , Facebook
(Meta) ,Etsy.....etc,.
Agile Development Environment
SQA Focus: Continuous integration, testing, and
feedback.
Methods Used:
• Test-driven development (TDD) – code developed
based on tests or functionality.
• Automated unit testing
• Peer code reviews
Best for: Rapidly changing projects and iterative
development.
EXAMPLES:
Spotify ,Microsoft ,IBM ,Google...etc,.
The Characteristics of the SQA environment process:
• Being contracted
• Subjection to customer-supplier relationship
• Requirement for teamwork
• Need for cooperation and coordination with other
development teams
• Need for interfaces with other software systems
• Need to continue carrying out a project while the team
changes
• Need to continue maintaining the software system for years
Cooperation and Coordination scheme for a software development project
team
Key Stakeholders:
•Project Manager: Oversees coordination and project timeline.
•Developers: Work together to implement features.
•Quality Assurance: Collaborates with developers to test and verify code.
•Designers: Ensure user-centered design is followed.
Benefits of Cooperation & Coordination
•Faster problem resolution.
•Improved productivity.
•Enhanced product quality.
•Reduced misunderstandings and delays.
What is software quality?
Computer programs, procedures, and possibly associated
documentation and data pertaining to the operation of a computer
system.
What is software quality?
- IEEE def.:
•The degree to which a system, component, or process meets
specified requirements.
•The degree to which a system, component, or process meets
customer or user needs or expectations from theory to implementation
-PRESSMANS def.:
-Conformance to explicitly stated functional and performance
requirements, explicitly documented development standards, and
implicit characteristics that are expected of all professionally
developed software
Error: Something which is not correct: a wrong action or
statement.
Fault: A problem or bad path the prevents something for being
perfect: a flaw or defect
Failure: A state of inability to perform a normal function
The Nine causes of software errors are:
• Faulty requirements definition
•Client-developer communication failures
• Deliberate deviations from software requirements
• Logical design errors
• Coding errors
• Non-compliance with documentation and coding
instructions
• Shortcomings of the testing process
• User interface and procedure errors
• Documentation errors
The objectives of SQA activities in software development
•Assuring an acceptable level of confidence that the software will conform
to functional technical requirements.
• Assuring an acceptable level of confidence that the software will conform
to managerial scheduling and budgetary requirements.
• Initiation and management of activities for the improvement
and greater efficiency of software development and SQA
activities.
The objectives of SQA activities in software maintenance
• Assuring an acceptable level of confidence that the software maintenance
activities will conform to the functional technical requirements.
• Assuring an acceptable level of confidence that the software maintenance
activities will conform to managerial scheduling and budgetary
requirements.
• Initiate and manage activities to improve and increase the efficiency of
software maintenance and SQA activities.
Quality factor
The various attributes of software and its use and maintenance, as defined in
software requirements documents, can be classified into content groups called
quality factors.
The need for comprehensive software Quality Requirements
There is a need for a comprehensive definition of requirements that will cover
all attributes of software and aspects of the use of software, including usability
aspects, reusability aspects, maintainability aspects, and so for in order to
assure the full satisfaction of the users.
Classification of software requirements into software Quality factors
McCall‘s factor model
Product operation factors: Correctness, Reliability, Efficiency, Integrity,
Usability.
Product revision factors: Maintainability, Flexibility, Testability.
Product transition factors: Portability, Reusability, Interoperability.
McCall Quality Factors Model:
Correctness requirements are defined in a list of the software system required outputs.
• The output mission
• Accuracy of output
• Completeness of the output information
• Up to date of the information
•Availability of the information
•The standard for coding and documenting of Software system
Reliability:
Reliability requirements deal with failures to
provide service. They determine the maximum
allowed software system failure rate, and can
refer to the entire system or to one or more of
its separate functions.
Integrity
Integrity requirements deal with the software system security,
that is, requirements to prevent access to unauthorized persons,
to distinguish between the majority of personnel allowed to see
the information (“read permit”) and a limited group who will be
allowed to add and change data (“write permit”), and so forth.
Product operation factors
Efficiency
Efficiency requirements deal with the hardware resources needed to perform
all the functions of the software system in conformance to all other
requirements. The main hardware resources to be considered are the
computer processing capabilities measured in MIPS — million instructions
per second ,etc.)
Usability
Usability requirements deal with the scope of stay resources needed to train a
new employee and to operate the software system.
Maintainability
Maintainability requirements determine the efforts that will be needed by users and
maintenance personnel to identify the reasons for software failures, to correct the
failures, and to verify the success of the corrections.
This factor requirements refer to the modular structure of software, the internal
program documentation, and the programmer manual, among other items.
Flexibility
The capabilities and efforts required to support adaptive maintenance activities are
covered by the flexibility requirements. These include the resources (i.e in man-
days) required to adapt a software packages to a variety of customers of the same
trade, of various extents of activities, of different ranges of products and so on.
This factor requirements also support perfective maintenance activities.
Testability
Testability requirements deal with the testing of an information system as well as
with its operation. Testability requirements for the ease of testing are related to
special features in the programs that help the tester, for instance by providing
predefined intermediate results and log files.
Product revision factors
Portability
Portability requirements tend to the
adaptation of a software system to other
environments consisting of different
hardware, different operating systems.
Reusability
Reusability requirements deal with the use of
software modules originally designed for one
project in a new software project currently
being developed.
Interoperability
Interoperability requirements focus on creating interfaces with
other software systems or with other equipment firmware
Interoperability requirements can specify the name(s) of the
software or firmware for which interface is required. They can
also specify the output structure accepted as standard in a
specific industry or applications area.
Product transition factors
Comparison of McCall’s factor model and
alternative models
Some quality factors might not be included in the typical client
requirements document, but they are still important to developers. The
following quality factors are usually a priority for developers, even though
clients may not pay much attention to them
• Portability
• Reusability
• Verifiability
Software compliance with quality factors
• Quality factors is examined by design reviews, software inspections,
software tests, and so forth.
• Comprehensive discussions of design review’s, software testing, software
quality metric and other too for verifying and validating the quality of
software are provided in the balance.
Components of Software quality assurance system overview
 Software project life cycle components
 Infrastructure components for error prevention and improvements
 Management SQA components
 SQA standards, system certification and assessment components
 Organizing for SQA — the human components
 Considerations guiding construction of organization SQA system
Pre-project SQA components
 Contract review
 Development and quality plans
Software project life cycle components
 Reviews
 Expert opinions
 Software testing
 Software maintenance components
 Assurance of the quality of external participation’s work
Infrastructure components for prevention and improvement
• Procedures and work instruction
• Templates and checklists
• Staff training, retraining and certification
• Preventive and corrective actions
• Configuration management
• Documentation control
Management SQA components
Project progress control
Software quality metrics
Software quality costs
SQA standards, system certification and assessment components
• Project process standards
• Quality management standards
Objectives:
• Utilization of international professional knowledge
• Improvement of coordination with other organizations quality systems
• Objective professional evaluation and measurement of the organization
SQA achievement
Organizing for SQA - the human components
• Management’s role in SQA
• The SQA unit
• SQA trusties
• SQA committees
• SQA forums
UNIT-1-INTRO.pptxsqa assurance testing sqa
UNIT-1-INTRO.pptxsqa assurance testing sqa