Introduction - Prathamesh
Introduction - Prathamesh
Unit 1 - Introduction
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
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.
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.
.
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.
.
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
Procedure Errors
Documentation Errors
.
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.
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.
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
24
Quality Control
25
Quality Assurance and Quality Control
26
Quality Assurance vs Quality Control
27
Quality Assurance vs Testing
28
Thank you
29