0% found this document useful (0 votes)
121 views60 pages

Lec 1-SOFTWARE QUALITY ENGINEERING Introduction

Uploaded by

tabin iftakhar
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)
121 views60 pages

Lec 1-SOFTWARE QUALITY ENGINEERING Introduction

Uploaded by

tabin iftakhar
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/ 60

SOFTWARE QUALITY

ENGINEERING
LECTURE # 1

INTRODUCTION

1 12/06/2024
Course Information
 Introduction
The purpose of the course is to introduce fundamental
notions of software quality and the techniques used to build
and check quality in software systems. A particular emphasis
is placed on quantitative assessment of software quality and
quality control using software testing techniques.

 Learning Outcomes
By the end of this course, students should have a good grasp
of software quality, Software Quality Assurance,
Configuration management, Static Testing techniques, White
box testing and Black box testing techniques, Software
metrics and models, Debugging, Quality Management,
Process Improvement and Cleanroom Software Engineering.

2 12/06/2024
Books and Resources
Software Quality Engineering, 6th Edition by
Jeff Tian

Software Engineering, A practitioner’s


approach, 8th Edition by Roger S. Pressman
Reference Books
 Recommended Text Books
Software Quality Engineering by Jeff Tian,
ISBN# 0471713457
 Reference Books
1. Software Testing & Continuous quality improvement
(2nd Edition) by William Lewis ISBN# 1420080733
2. The Art of Software Testing (2nd Edition) Glenford
Myers ISBN# 0471043281
3. Software Testing and Quality Assurance, Theory and
Practice: 2008, Kshirasagar Naik, Priyadarshi
Tripathy
ISBN# 0471789119

4 12/06/2024
Grading Criteria
Grading
Mid Terms - 30%
Final Term - 50%
Quiz - 05 %
Assignment - 10 %
Presentations - 05%

5 12/06/2024
Software Quality
Quality
Quality Engineering
Quality Types
Quality Control vs Quality Assurance
Different views of Quality
Quality Models
Cost of Quality

6 12/06/2024
What is quality?
 Quality, simplistically, means that a product
should meet its specification.
 This is problematical for software systems
 There is a tension between customer quality
requirements (efficiency, reliability, etc.) and
developer quality requirements (maintainability,
reusability, etc.);
 Some quality requirements are difficult to specify in an
unambiguous way;
 Software specifications are usually incomplete and
often inconsistent.

7 12/06/2024
Quality Engineering
Software quality assurance (SQA) consists
of a means of monitoring the software
engineering processes and methods used
to ensure quality.

8 12/06/2024
DEFINING QUALITY
Perfection
Consistency
Eliminating waste
Speed of delivery
Compliance with policies & procedures
Providing good, usable products
Doing it right the first time
Delighting or pleasing customers
Total customer service & satisfaction

9 12/06/2024
Quality Types
Functional Quality — a measure
of what the software does vs. what it’s
supposed to do

Non-Functional Quality – a measure


of how well it does it vs. how well it’s
supposed to do it

Latent Quality — a measure of how well it


will continue to do it in the future

10 12/06/2024
Quality Types
Process quality: Software processes implement
best practices of software engineering in an
organizational context. Process quality expresses
the degree to which defined processes were
followed and completed.
Product quality: Software products are the output
of software processes. Product quality is
determined by the degree to which the developed
software meets the defined requirements.
Quality in use: Quality in use addresses the degree
to which a product is fit for purpose when exposed
to a particular context of use.

11 12/06/2024
Different Views of Quality
Transcendental View
User View
Manufacturing View
Product View
Value based View

12 12/06/2024
Quality Models
Standard quality models
McCall
ISO/IEC 9126
IEEE
Application or company specific quality
models
FURPS
GQM Approach

13 12/06/2024
Cost of Quality
Prevention cost:
Appraisal cost:
Failure cost:
Internal failure cost
External failure cost

14 12/06/2024
Quality Assurance
Quality Assurance
Dealing with Pre- Post Release Defects
Classification Scheme for Quality
Assurance
Defect prevention
Defect Reduction
Defect Containment

15 12/06/2024
Software Quality Assurance
“All planned & systematic activities
implemented within quality system, &
demonstrated as needed, to provide
adequate confidence that an entity
will fulfill requirements for quality”.

16 12/06/2024
Classification scheme for QA
 Defect Prevention
Education and training
Process conformance and standards enforcement
Tools/technologies and techniques

 Defect Reduction (Defect Detection and Removal)


Static Testing
Dynamic Testing

 Defect Containment
Software Fault Tolerance
Fault Containment

17 12/06/2024
Software Quality Assurance
SQA Team
SQA Plan
Software Review
Formal Technical Reviews
Review Guidelines

18 12/06/2024
SQA Team
Testing Manager
Test Team Lead
Test Analyst
Tester
Independent Test Observer

19 12/06/2024
SQA Plan
The software quality assurance plan is an
outline of quality measures to ensure quality
levels within a software development effort.
 The plan is used to compare the actual levels
of quality during development with the planned
levels of quality.
 If the levels of quality are not within the
planned quality levels, management will
respond appropriately as documented within
the plan.

20 12/06/2024
Software Reviews
What is software review?
Why software reviews?
Objectives
Review Meeting Constraints
Review Meeting Results

21 12/06/2024
Software Configuration
Management
Configuration
Software Configuration Management
Baselines
Software Configuration Items
SCM Process
SCM Tasks

22 12/06/2024
Software Configuration
Management
Software Configuration Management is the
art of
identifying, organizing and controlling
modifications
to the software being built by a
programming team. It
maximizes productivity by minimizing
mistakes

23 12/06/2024
Baselines
IEEE Std. No. 610.12-1990 defines
baselines as,
 “ A specification or product that has
been
formally reviewed and agreed upon,
that
thereafter serves as the basis for
further
development, and that can be changed
only
through formal change control
procedures.”
24 12/06/2024
Software Configuration Items
The items that comprises all information
produced as
a part of software process are collectively
called a
software configuration items.

25 12/06/2024
SCM Tasks
Identifications of objects
Version Control
Change Control
Configuration Auditing
Status Reporting

26 12/06/2024
Software Testing
What is Software Testing?
Software Testing Activities
 Software Testing Principles
 Test Cases
 Basic Types of testing
 Methods of Testing

27 12/06/2024
Software Testing
“Testing is the process of
executing a program or
system with the intent of
finding errors.”
by Myers 1979

28 12/06/2024
Test Case
A test case in software engineering is a set
of conditions or variables under which a
tester will determine whether an
application or software system meets
specifications.

29 12/06/2024
Methods of Testing
Manual Testing
Automated Testing

30 12/06/2024
Types of Testing

Black Box Testing


White Box Testing
Gray Box Testing

31 12/06/2024
Static Testing
Introduction of static testing
Static Testing Approach
Static Testing Methods
 Inspections
 Walkthroughs
 Desk Checking
 Peer Ratings

32 12/06/2024
Static Testing
In software development, static testing,
also called dry run testing, is a form of
software testing where the authors
manually read their documents/code to find
any errors.

33 12/06/2024
Static Testing Methods
Inspections
 Fagan Inspection
 Gilb Inspection
 Two Person Inspection
 N-Fold Inspection
 Meetingless Inspection
Walkthroughs
Desk Checking
Peer Ratings

34 12/06/2024
Black Box Testing Methods
 Equivalence Class Partitioning Testing
 Boundary Value Testing
 Omission Testing
 Null Case Testing
 Volume Testing
 Load Testing
 Stress Testing
 Performance Testing
 Resource Testing
 Requirements/Specification Testing
 Button Press Testing

35 12/06/2024
Black Box Testing Methods
 State Transition Testing
 Installation Testing
 Security Testing
 Integration Testing
 Compatibility Testing
 Configuration Testing
 Documentation Testing
 Smoke Testing
 Sanity Testing
 Usability Testing
 Exploratory Testing

36 12/06/2024
White Box Testing Methods
Statement Coverage
Segment Coverage
Branch Coverage
Compound Condition Coverage
Basis Path Testing
Data Flow Testing
Loop Testing

37 12/06/2024
Debugging
Debugging
Bug Life Cycle
Reporting
Bug/Defect Types
Defect Report
Methods of Debugging

38 12/06/2024
Debugging
Debugging is the activity which is
performed after executing a successful test
case.
Debugging consists of determining the
exact nature and
location of the suspected error and fixing
the error.

39 12/06/2024
Bug Lifecycle

40 12/06/2024
Reporting
Daily
Weekly
End of Cycle

41 12/06/2024
Bug Types
Showstopper
Critical
Non-Critical (Minor)

42 12/06/2024
Methods of Debugging
Debugging by Brute Force Attack
Debugging by Induction
Debugging by Deduction
Debugging by Backtracking
Debugging by Testing

43 12/06/2024
Quality Management
Quality Management Overview
Quality Assurance
Quality Planning
Quality Control
Software Measurement and Metrics

44 12/06/2024
Quality Management
The term Quality management has a
specific meaning within many business
sectors. This specific definition can be
considered to have the following main
components:
 quality assurance
 quality planning
 quality control

45 12/06/2024
Quality management
 Quality management ensures that an organization,
product or service consistently functions well. It has
four main components: quality planning, quality
assurance, quality control and quality improvement.
Quality management is focused not only on product
and service quality, but also on the means to achieve it.
Quality management, therefore, uses quality assurance
and control of processes as well as products to achieve
more consistent quality. Quality control is also part of
quality management. What a customer wants and is
willing to pay for it, determines quality. It is a written or
unwritten commitment to a known or unknown
consumer in the market. Quality can be defined as how
well the product performs its intended function.

46 12/06/2024
Software Metrics
A software metric is a quantitative measure
of degree to which a system, component or
process possesses a given attribute.

 Lines of code in a program, number of


person-days required to develop a
component, KLOC/defects etc.

47 12/06/2024
Process Improvement
Process Improvement
Process and product quality
Process analysis
Process change
CMMI Model
Six Sigma

48 12/06/2024
Process Improvement
“Process improvement” means making
things better or more
formally Understanding existing processes
and introducing
process changes to improve product
quality, reduce costs or
accelerate schedules.

49 12/06/2024
Process & Product Quality

50 12/06/2024
Process Analysis
Questionnaires and Interviews

Ethnographic Analysis

51 12/06/2024
Process Change
Involves making modifications to existing
processes.

52 12/06/2024
CMMI
 CMMI is a process improvement approach that provides
organizations with the essential elements of effective
processes that ultimately improve their performance.

 The CMMI model has 5 levels:


 Initial
 Managed
 Defined
 Quantitatively Managed
 Optimizing

53 12/06/2024
Capability Maturity Model
Integration (CMMI)
 Capability Maturity Model Integration (CMMI) is a
process level improvement training and appraisal
program. Administered by the CMMI Institute,
a subsidiary of ISACA, it was developed at Carnegie
Mellon University(CMU). It is required by many U.S.
Government contracts, especially in software
development. CMU claims CMMI can be used to guide
process improvement across a project, division, or an
entire organization. CMMI defines the following maturity
levels for processes: Initial, Managed, Defined,
Quantitatively Managed, and Optimizing. Version 2.0
was published in 2018 (Version 1.3 was published in
2010, and is the reference model for the rest of the
information in this article). CMMI is registered in the U.S.
Patent and Trademark Office by CMU.
54 12/06/2024
55 12/06/2024
Six Sigma
 Six Sigma is a business
management strategy originally
developed by Motorola, USA in
1986. As of 2010, it is widely used
in many sectors of industry.
 Six Sigma seeks to improve the
quality of process outputs by
identifying and removing the causes
of defects (errors) and minimizing
variability in manufacturing and
business processes.

56 12/06/2024
Six Sigma
This is done by using empirical and
statistical quality management methods and
by hiring people who serve as Six Sigma
experts. Each Six Sigma project follows a
defined methodology and has specific value
targets, such as reducing pollution or
increasing customer satisfaction.
The term Six Sigma originates from statistical
quality control, a reference to the fraction of a
normal curve that lies within six standard
deviations of the mean, used to represent a
defect rate.
57 12/06/2024
Cleanroom Software Engineering
Cleanroom Software Engineering
Cleanroom Functions
Cleanroom Strategy

58 12/06/2024
cleanroom software
engineering
The cleanroom software
engineering process is a
software development process intended to
produce software with a certifiable level of
reliability. The central principles are
software development based on formal
methods, incremental implementation
under statistical quality control, and
statistically sound testing.

59 12/06/2024
Central principles of cse
 The basic principles of the cleanroom process are
Software development based on formal methods
 Software tool support based on some mathematical formalism includes model
checking, process algebras, and Petri nets. The Box Structure Method might be one
such means of specifying and designing a software product. Verification that the
design correctly implements the specification is performed through team review,
often with software tool support .Incremental implementation under statistical
quality control.
 Cleanroom development uses an iterative approach, in which the product is
developed in increments that gradually increase the implemented functionality. The
quality of each increment is measured against pre-established standards to verify
that the development process is proceeding acceptably. A failure to meet quality
standards results in the cessation of testing for the current increment, and a return
to the design phase.
Statistically sound testing
 Software testing in the cleanroom process is carried out as a statistical
experiment. Based on the formal specification, a representative subset of software
input/output trajectories is selected and tested. This sample is then statistically
analyzed to produce an estimate of the reliability of the software, and a level of
confidence in that estimate.

60 12/06/2024

You might also like