You are on page 1of 29

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…

You might also like