0% found this document useful (0 votes)
8 views

Introduction - Prathamesh

Uploaded by

patjunior60198
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Introduction - Prathamesh

Uploaded by

patjunior60198
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

Software Quality Assurance –

Unit 1 - Introduction

Prof. Chandravadan Prajapati


Edited and Curated by : Prathamesh
Churi
1
Contents

Contents Resource material


 Pre-requisite  Daniel Galin, Software
 Software Quality Quality Assurance:
From theory to
Challenge
implementation, 2nd
 Software Errors, faults edition (Notes will be
and failures provided to you)
 Causes of software Chapter 1
errors _SQA_MPSTME.pdf
 Software quality and
quality assurance
definition.
2
What is Software?
Software is: (1) instructions (computer programs) that when
executed provide desired features, function, and performance;
(2) data structures that enable the programs to adequately
manipulate information and (3) documentation that describes
the operation and use of the programs.
increased failure
rate due to side effects
Failure
rate

change
actual curve

idealized curve

Time

3
Software vs. Industrial Products

4
Software Applications

 System software
 Application software
 Engineering/Scientific Software
 Embedded software
 Product-line software
 Web/Mobile applications)
 AI software (robotics, neural nets, game
playing)

5
Software quality – IEEE definition

Software Quality Principles:


 Management is responsible for the quality
 Producers must use effective quality control
 Quality is a journey, not a destination

6
Software fitness for purpose
 Has the software been properly tested?
 Is the software sufficiently dependable to be put into
use?
 Is the performance of the software acceptable for normal
use?
 Is the software usable?
 Is the software well-structured and understandable?
 Have programming and documentation standards been
followed in the development process?

7
Software quality attributes
Static quality attributes: structured, maintainable, testable
code as well as the availability of correct and complete
documentation.

Dynamic quality attributes: software reliability, correctness,


completeness, consistency, usability, and performance
Safety Understandability Portability
Security Testability Usability
Reliability Adaptability Reusability
Resilience Modularity Efficiency
Robustness Complexity Learnability
Software quality (contd.)
Completeness refers to the availability of all features listed in the requirements, or
in the user manual. An incomplete software is one that does not fully implement all
features required.
Consistency refers to adherence to a common set of conventions and assumptions.

Usability refers to the ease with which an application can be used. This is an area
in itself and there exist techniques for usability testing. Psychology plays an
important role in the design of techniques for usability testing.
Performance refers to the time the application takes to perform a requested task. It is
considered a non-functional requirement.
.

Software Quality Challenge

10
Errors
Errors are a part of our daily life. Humans make errors in their thoughts, and
actions, and in the products that might result from their actions. Errors occur
wherever humans are involved in taking action and making decisions.
These fundamental facts of human existence make testing an essential activity.
.

Causes of Software Errors

12
Requirements, behavior, correctness
1. Faulty definition of requirements
 Erroneous definition of requirements.
 Absence of vital requirements.
 Incomplete definition of requirements. Inclusion of
unnecessary requirements, and functions that are not
expected to be needed in the near future.
Requirements leading to two different programs:
Requirement 1: It is required to write a program that inputs two
numbers and outputs the maximum of these.
Requirement 2: It is required to write a
program that inputs a sequence of integers and outputs the sorted
version of this sequence.
Discussion in the class
Client–developer communication
failures
 Misunderstanding in client’s instructions as stated in
the requirement document.
 Misunderstanding in client’s requirements changes
presented to the developer in written form during the
development period.
 Misunderstanding in client’s requirements changes
presented orally to the developer during the
development period.
 Misunderstanding in client’s responses to the design
problems presented by the developer.
 Lack of attention to client messages referring to
requirements changes and to client responses to
questions raised by the developer on the part of the
developer.
Deliberate deviations from software
requirements
 The developer reuses software modules taken from an earlier
project without sufficient analysis of the changes and adaptations
needed to correctly fulfil all the new requirements.
 Due to time or budget pressures, the developer decides to omit
part of the required functions in an attempt to cope with these
pressures.
Logical Design Errors
 Definitions that represent software requirements by means of
erroneous algorithms.
 Process definitions that contain sequencing errors.
 Erroneous definition of boundary conditions.
 Omission of required software system states.
 Omission of definitions concerning reactions the to illegal
operation of the software system.
Coding Errors
 A broad range of reasons cause programmers to make coding
errors. These include misunderstanding the design
documentation, linguistic errors in the programming
languages, errors in the application of CASE and other
development tools, errors in data selection, and so forth.
Non-compliance with documentation and coding
instructions

Shortcomings of the testing process

Procedure Errors

Documentation Errors
.

Software Quality and Software Quality Assurance

17
Quality Assurance
Quality Assurance (QA) ensures that defined standards are being followed.
Sometimes, processes need to be revised. Thus, quality assurance is a
continuous process executed throughout the life cycle of the project. QA is
an application of planned systematic quality activities to ensure that the
project will employ all process needed to meet the desired quality.
Quality Audit: Quality audit is the process of conducting structured and
independent technical reviews. Review is a way of using the diversity of a
group of people to point out needed improvements in the product of a single
person or team
Process Analysis: Process analysis is a part of continuous process
improvement. In this process, each process is analyzed as per the process
improvement plan and suggestions are given for further improvement. This
analysis also examines the problems experienced. Process analysis uses
root cause analysis technique to determine the underlying cause that leads
to poor quality.

18
How to do Quality Assurance?
The whole process of quality assurance
has to define the cycle called the PDCA
cycle.

Phases of this cycle are as:


Plan: The organization should plan and
establish the process related objectives
and determine the process that is required
to deliver a high-quality end product.
Do: Development and testing of processes
and also change in the methods.
Check: Monitoring of processes, modify
the methods, and check whether it meets
the predetermined objectives.
Act: Implement actions that are
necessary to achieve improvements in the
process.

19
Types of Quality Assurance Tools?
• Infrastructure • Monitoring and Analytics
• Release Management • Availability Monitoring
• Source Control • Business Analytics
• Code Reviews • Exception Handling
• Automates Code Analysis • Log Monitoring
• Peer Code Reviews • Performance Monitoring
• Testing • Security Testing and Monitoring
• Test management • Customer Support
• Bug and Issue Tracking
• Browser, Device and OS
Testing
• Usability Testing
• Load Testing
• Automates Testing and
Continuous Integration

20
What are Software Quality Assurance
Components?
1. Pre-project Plan
Pre-project Plan ensures that the resources required for project,
schedule, and budget should be clearly defined. Plan for development
and ensuring quality has been determined.

Components are as:


• Required Resources (Hardware and Human resources)
• Development plan
• Schedules
• Risk evaluation
• Quality plan
• Project methodology

21
What are Software Quality Assurance
Components?
2. Project lifecycle component
A project lifecycle usually comprised of two stages:
• Development Stage
In the Development Stage Component, Software Quality Assurance help
to identify the design and programming errors. Its Components are
divided into the following sub-classes: Reviews, Expert Opinions, and
Software Testing.
• Operation Maintenance Stage
In Operation Maintenance Stage, the Software Quality
Assurance components include the Development
lifecycle component along with specialized
components whose aim is to improve the
maintenance tasks.

22
What are Software Quality Assurance
Components?
3. Infrastructure error prevention and improvement components
The aim of this component is to the prevention of software faults and
minimizes the rate of errors. These components are as:
• Procedure and work instructions
• Templates and Checklists
• Staff Training, Retainingand Certification
• Preventive and Corrective Actions
• Configuration Management,
• Documentation Control
4. Software Quality Management Components
This class of component consists of controlling development and
maintenance activities. These components establish the managerial
control of software development projects. The management component
aims to prevent the project from going over budget and behind
schedule. The management components include:
• Project Progress Control
• Software Quality Metrics
• Software Quality Costs
23
What are Software Quality Assurance
Components?
5. Standardization, Certification, and SQA assessment components
Aim of these components is to implement international managerial and
professional standards within the organization. These components help
to improve the coordination among the Organizational Quality Systems
and establish standards for the project process. The component
includes:
• Quality management standards
• Project process standard

6. Organizing for Software Quality Assurance ? the human elements


The main aim of this class of components is to initiate and support the
implementation of Software Quality Assurance components, identify
any deviations from the predefined Software Quality Assurance
procedures, methods, and recommended improvements. The Software
Quality Assurance organizational team includes test managers,
testers, SQA unit SQA committee, and SQA forum members.

24
Quality Control

A QC system is designed for the following:


 To provide regular check to ensure data
correctness, completeness and integrity.
 To distinguish the errors and to address them.
 To document and record all the quality control
processes.

25
Quality Assurance and Quality Control

26
Quality Assurance vs Quality Control

27
Quality Assurance vs Testing

28
Thank you

29

You might also like