1 Introduction and Software Quality
1 Introduction and Software Quality
LECTURE 1
4
QUALITY
What is Quality???
Synonym: Excellence, Superiority, Class, Grade
Antonym: Inferior
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)
7
WHY QUALITY ASSURANCE?
8
DIFFERENCE BETWEEN INDUSTRIAL AND SOFTWARE PRODUCT
Product complexity
The potential ways in which a software product can be used with different data / data
paths reflecting different incoming data is almost infinite.
Manner in which industrial products can be used are usually well-defined.
Product Visibility
In an industrial product, missing parts are obvious.
Something missing? Easily identified.
Not so in software products.
May not be noticeable for years – if at all!
DIFFERENCE BETWEEN INDUSTRIAL AND SOFTWARE PRODUCT
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
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
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 (me)
Who is ‘on the team?’
Developers Clients Customers Others???
SQA ENVIRONMENT
27
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
Likely the part of the development process cut short most frequently!
Incomplete test plans
Parts of application not tested or tested thoroughly!
Failure to document, report detected errors and faults
So many levels of testing….we will cover.
Failure to quickly correct detected faults due to unclear indications that there ‘was’
a fault
Failure to fix the errors due to time constraints
Many philosophies here depending on severity of the error.
DOCUMENTATION ERRORS
43
SOFTWARE QUALITY ASSURANCE
44
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 Testing
46
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…