SOFTWARE QUALITY ASSURANCE
LECTURE 1
CHAPTER 1 OF SOFTWARE QUALITY ASSURANCE
FROM THEORY TO IMPLEMENTATION
QUALITY
SOFTWARE QUALITY
■ Why Software Quality Assurance?
■ With all the methodology, numerous processes, huge number of tools to assist in
software development, why this separate topic?
■ What makes it important that it deserves separate treatment?
■ Why do so many companies add disclaimers to their software?
■ Don’t warranty the documentation…
■ Not responsible for direct, indirect, consequential, loss?
3
QUALITY
What is Quality???
Synonym: Excellence, Superiority, Class, Grade
Antonym: Inferior
QUALITY
“Everybody seems to understand it, everybody wants it
and yet everyone has a different perception of
quality”
“Hard to define, impossible to measure, easy to
recognize.“
(Kitchenham)
5
SOFTWARE QUALITY
■ Software Quality is
1. The degree to which a system, component, or process meets specified
requirements, and
2. The degree to which a system, component, or process meets customer or user
needs or expectations (IEEE)
■ The totality of features and characteristics of a product or service that bear on its
ability to satisfy specified or implied needs (ISO)
6
WHY QUALITY ASSURANCE?
■ Requirement gathering and Analysis
■ Design
■ Implementation or Coding
■ Testing
■ Deployment
■ Maintenance
■ SDLC
7
THE CHARACTERISTICS OF 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
SQA ENVIRONMENT
Being Contracted:
Professional software development is almost always contracted.
Have requirements / supplied requirements (hopefully)
But may have in-house customer representatives.
Or, customer representatives available…
Budget
Time schedule
SQA ENVIRONMENT
Subject to Customer-Supplier Relationship
In professional software development, there is a constant (hopefully) oversight
between customer and developer.
Changes will occur;
Criticisms will arise.
Cooperation is critical to overall project success.
Customer availability / relationship is essential and often problematic whether reps
are in-house or not.
SQA ENVIRONMENT
Required Teamwork
We need teams due to
Time required for development.
Workload is too much for a single person
A frequent variety of experts needed
Database; networking; algorithms; …
Need ‘independent’ reviews to ensure quality
Who is ‘on the team?’
Developers Clients Customers Others???
SQA ENVIRONMENT
Cooperation and Coordination with Other Software Teams
May be partially outsourced thus requiring cooperation
Outsourced overseas?
Many potential problems here … and benefits.
May be that specialized hardware requires cooperation.
Other teams may have developed similar software for the client and can offer
tremendous help.
COOPERATION AND COORDINATION
SCHEME FOR A SOFTWARE DEVELOPMENT PROJECT TEAM
SQA ENVIRONMENT
Interfaces with Other Systems
Interface, link to, import, include other packages containing, say, libraries of
perhaps classes / packages to assist in development.
Standardization considerations in interfaces
May need to cooperate with inputs coming from other systems and outputs
requiring special formats that serve as inputs to other systems…
Do you think Billing, Payroll, Accounts Payable are all distinct systems???
Attendance
control
system
Input interface Monthly attendance report,
including overtime calculations
Salary
processing
system
Output interface Money transfers to employees’
bank account accounts
Bank
information
systems
SQA ENVIRONMENT
Need to Continue Project despite Team Changes
Team members leave, are hired, fired, take unexpected vacations, transferred within
the company, and more.
Maddening truism, but the development must continue.
You can count on disruption!
THIS IS HOW A DRIVER OR USER LOOKS AT ME.
I AM OPAQUE OR BLACK BOX FOR HIM.
THIS IS HOW AN ENGINEER LOOKS AT ME.
I AM TRANSPARENT OR WHITE BOX FOR HIM.
WHAT IS SOFTWARE QUALITY?
What is software?
Software errors, faults and failures
differences
Classification of the causes of software errors
Software quality – definition
Software quality assurance – definition and objectives
Software quality assurance and software engineering
SOFTWARE
According to the IEEE:
Software is: Computer programs, procedures, and possibly associated documentation
and data pertaining to the operation of a computer system.
A ‘similar definition comes from ISO:
ISO definition (from ISO 9000-3) lists four components necessary to assure the quality of
the software development process and years of maintenance:
computer programs (code)
procedures
documentation
data necessary for operating the software system.
BASIC DEFINITIONS
Software Error – made by programmer
Syntax (grammatical) error
Logic error (multiply vice add two operands)
Software Fault –
All software errors may not cause software faults
That part of the software may not be executed
(An error is present but not encountered….)
BASIC DEFINITIONS
Software Failures – Here’s the interest.
A software fault becomes a software failure when/if it is activated.
Faults may be found in the software due to the way the software is executed or other
constraints on the software’s execution, such as execution options.
Some runs result in failures; some not.
Example: standard software running in different client shops.
SOFTWARE ERROR, FAULTS AND FAILURE
CAUSES OF ERROR
Faulty requirements definition
Client-developer communication failures
Deliberate deviations from software requirements
Logical design errors
Coding errors
Shortcomings of the testing process
Procedure errors
Documentation errors
SOFTWARE QUALITY ASSURANCE
Software Quality Assurance (SQA) is
■ A planned and systematic pattern of all actions necessary to provide adequate
confidence that an item or product conforms to established technical
requirements.
■ A set of activities designed to evaluate the process by which products are
developed or manufactured. (IEEE 610)
LOOK CLOSELY!!!
25
SOFTWARE QUALITY ASSURANCE
Software Quality Assurance (SQA) is
■ A systematic, planned set of actions necessary to provide adequate confidence
that the software development process or the maintenance process of a software
system product conforms to established functional technical requirements as
well as with the managerial requirements of keeping the schedule and operating
within the budgetary confines.
More Appropriate Definition
26
SOFTWARE QUALITY CONTROL VS QUALITY ASSURANCE
Quality Control is defined as a designed to evaluate the quality of a set of activities
developed or manufactured product
We have QC inspections during development and before deployment
QC activities are only a part of the total range of QA activities.
Quality Assurance’s objective is to minimize the cost of guaranteeing quality by a
variety of activities performed throughout the development / manufacturing processes /
stages.
Activities prevent causes of errors; detect and correct them early in the
development process
27
SOFTWARE QUALITY CONTROL VS QUALITY ASSURANCE
QA substantially reduces the rate of products that do not qualify for shipment
and/at the same time, reduce the costs of guaranteeing quality in most cases.
Software Quality Assurance
Software Quality Control
Software Testing
28
CLASS ACTIVITY
Put yourself in a situation that you are purchasing smartphone from some stranger on
OLX like website.
You have to test quality of features that value the most for you…