0% found this document useful (0 votes)
3 views42 pages

Lecture 2 Factors Affecting Software Qulaity

The lecture discusses various factors affecting software quality, including definitions of errors, faults, and failures, as well as the importance of software quality control (SQC) and assurance (QA) in maintaining high-quality software. It highlights the cost of quality, defect reduction techniques such as inspections and testing, and the significance of achieving software reliability. Additionally, the lecture touches on ISO standards and the role of software tools in enhancing software quality.

Uploaded by

ummahhh20
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views42 pages

Lecture 2 Factors Affecting Software Qulaity

The lecture discusses various factors affecting software quality, including definitions of errors, faults, and failures, as well as the importance of software quality control (SQC) and assurance (QA) in maintaining high-quality software. It highlights the cost of quality, defect reduction techniques such as inspections and testing, and the significance of achieving software reliability. Additionally, the lecture touches on ISO standards and the role of software tools in enhancing software quality.

Uploaded by

ummahhh20
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

Lecture 2: Factors Affecting

Software Quality

Dr. Asmau Usman, Nile University of Nig.


Outline

 Factors affecting Software Quality


 Cost of quality
 Achieving software quality
 Software Quality Assurance Activities
 Category of Software efects
 Defect reduction
 Inspection
 Reviews
 Testing
 Software reliability

2
Dr. Asmau Usman, Nile University of Nig.
Introduction

 When many people associate quality or


high-quality of software system, as an
indication that software problems, are
expected not to occur during its operations.

 What is more, when problems do occur, the


impact is expected to be minimal.

 Software quality control (SQC) is applied to


check for quality in software product.

Dr. Asmau Usman, Nile University of Nig.


Goal of SQC
 The goal of software quality control, is
to remove quality problems in the
software.

 These quality problems affect the


correctness of software product.

 They are referred to by various names—


bugs or errors, faults or defects to name
a few.

Dr. Asmau Usman, Nile University of Nig.


Correctness and Defects

 Key to the correctness aspect of software


quality is the concept of
 Failure
 Defect
 Fault
 Error
 The term “defect” generally refers to some
problem with the software, either with its
external behaviour or with its internal
characteristics.
 The IEEE (The Institute of Electrical and
Electronics Engineers) Standard 610.12
(IEEE,1990) defines the following terms related to
defects:

Dr. Asmau Usman, Nile University of Nig.


Error, Fault, and Failure
 Error/bug: A human action that produces
an incorrect result.
 An action resulting in certain fault(s) being injected
into a software.

 Fault/Defect: An incorrect step, process, or


data definition in a computer program.
 It is an underlying condition within a software
that causes certain failure(s) to occur.

 Failure: The inability of a system or


component to perform its required functions
within specified performance requirements.

Dr. Asmau Usman, Nile University of Nig.


Software Quality Problems

Defect and fault are synonymous.


Both indicate a quality problem that is
discovered after the software has been
released to end users (or to another
framework activity in the software process).
Error and bug are synonymous.
Error to describe a quality problem that is
discovered by software engineers (or
others) before the software is released to
the end user (or to another framework
activity in the software process).

Dr. Asmau Usman, Nile University of Nig.


Software Quality Problems (cont…)

 This difference is important because


errors and defects have very different
economic, business, psychological, and
human impact.

 As software engineers, we want to find


and correct as many errors as possible
before the customer and/or end user
encounter them.

 We want to avoid defects—because


defects (justifiably) make software
people look bad.

Dr. Asmau Usman, Nile University of Nig.


“Good Enough” Software

 Stated bluntly, if we are to accept the


argument made by Meyer, is it
acceptable to produce “good enough”
software?
 The answer to this question must be yes,
because major software companies do
it every day.
 They create software with known bugs
and deliver it to a broad population of
end users.
 They plan for improvements in Version

Dr. Asmau Usman, Nile University of Nig.


What is “Good Enough”?

 Exactly what is “good enough”?


 Good enough software delivers high-
quality functions and features that end
users desire,
 It delivers other more obscure or
specialized functions and features that
contain known bugs.
 The software vendor hopes that the vast
majority of end users will overlook the
bugs because they are so happy with
other application functionality.
 It can work, but only for a few and only
in a limited set of application domains.

Dr. Asmau Usman, Nile University of Nig.


The Cost of Quality

 The argument goes something like


this—
We know that quality is important, but it
costs us time and money—too much
time and money to get the level of
software quality we really want.
 There is no question that quality has a
cost, but lack of quality also has a
cost—not only to end users who must
live with buggy software, but also to
the software organization that has built
and must maintain it.

Dr. Asmau Usman, Nile University of Nig.


Cont.,
 The real question is…:
 Which cost should we be worried about?
 To answer this question, you must understand
both the cost of achieving quality and the
cost of low-quality software.
 The cost of quality includes all costs
suffered in the search of quality or in
performing quality-related activities and
the downstream costs of lack of quality.
 The cost of quality can be divided into
costs associated with prevention,
assessment, and failure.

Dr. Asmau Usman, Nile University of Nig.


Achieving Software Quality

 It is the result of good project


management and solid software
engineering practice.
 Management and practice are applied
within the context of four broad activities
that help a software team achieve high
software quality:
 Software engineering methods,
 Project management techniques,
 Quality control actions, and
 Software quality assurance.

Dr. Asmau Usman, Nile University of Nig.


Quality Control
 Quality control encompasses a set of
software engineering actions that help to
ensure that each work product meets its
quality goals.
 Models are reviewed to ensure that they
are complete and consistent.
 Code may be inspected in order to
uncover and correct errors before testing
commences.
 A series of testing steps is applied to
uncover errors in processing logic, data
manipulation, and interface
communication.

Dr. Asmau Usman, Nile University of Nig.


Quality Assurance

 Quality assurance establishes the


infrastructure that supports solid
software engineering methods,
rational project management, and
quality control actions.
 It consists of a set of auditing and
reporting functions that assess the
effectiveness and completeness of
quality control actions.
 The goal of quality assurance is to
provide management and technical
staff with the data necessary to be
informed about product quality.

Dr. Asmau Usman, Nile University of Nig.


Category of Errors

 There are different categories of errors


affecting software quality:
 Incomplete or erroneous specifications
(IES).
 Misinterpretation of customer
communication (MCC).
 Intentional deviation from specifications
(IDS).
 Violation of programming standards (VPS).
 Error in data representation (EDR).
 Inconsistent component interface (ICI).
 Error in design logic (EDL).

Dr. Asmau Usman, Nile University of Nig.


Cont.,

Incomplete or erroneous testing (IET).


Inaccurate or incomplete
documentation (IID).
Error in programming language
translation of design (PLT).
Ambiguous or inconsistent
human/computer interface (HCI).
Miscellaneous (MIS).

Dr. Asmau Usman, Nile University of Nig.


Defect Reduction

For most large software systems in


use today, it is unrealistic to expect
the defect prevention activities to
be 100% effective in preventing
accidental fault injections.

Therefore, we need effective


techniques to remove as many of
the injected faults as possible under
project constraints.

Dr. Asmau Usman, Nile University of Nig.


Inspection: Direct Fault Detection
and Removal
 Example of some is as follows:-
 Software inspections are critical
examinations of software artefacts by
human inspectors aimed at discovering
and fixing faults in the software systems.
 Inspection (Review) is a well-known QA
alternative familiar to most experienced
software quality professionals
 The earliest and most influential work in
software inspection is Fagan inspection
(Fagan, 1976).
Dr. Asmau Usman, Nile University of Nig.
Cont.,
 Basic ideas of inspection are outlined below:
 Inspections are critical reading and analysis of
software code or other software artefacts, such
as designs, product specifications, test plans,
etc.
 Inspections are typically conducted by multiple
human inspectors, through some coordination
process.
 Faults are detected directly in inspection by
human inspectors, either during their individual
inspections or various types of group sessions.
 Identified faults need to be removed as a result
of the inspection process, and their removal
also needs to be verified.

Dr. Asmau Usman, Nile University of Nig.


Cont.,
 The inspection processes vary, but
typically include some planning and
follow-up activities in addition to the core
inspection activity.
 The formality and structure of inspections
may vary, from very informal reviews and
walkthroughs, to correctness inspections
approaching the rigor and formality of
formal methods.
➢ Inspection is most commonly applied to code,
but it could also be applied to requirement
specifications, designs, test plans and test
cases, user manuals, and other documents or
software artifacts

Dr. Asmau Usman, Nile University of Nig.


Testing: Failure Observation and Fault
Removal

 Testing is one of the most important parts


of QA and the most commonly performed
QA activity.
 Testing involves the execution of software
and the observation of the program
behaviour or outcome.
 If a failure is observed, the execution
record is then analysed to locate and fix
the fault that caused the failure.
 Individual testing activities and techniques
can be classified using various criteria and
examined accordingly.

Dr. Asmau Usman, Nile University of Nig.


Testing Activity/Techniques
 When can a specific testing activity be performed
and related faults be detected?

 Testing is an execution-based QA activity.

 Therefore, a prerequisite to actual testing is the


existence of the implemented software units,
components, or system to be tested.

 Actual testing can be divided into various sub-


phases starting from the coding phase up to post-
release product support.

Dr. Asmau Usman, Nile University of Nig.


Cont.,

 These include unit testing, component


testing, integration testing, system testing,
acceptance testing, beta testing, etc.
 The observation of failures can be
associated with these individual sub-
phases
 The identification and removal of related
faults can be associated with
corresponding individual units,
components, or the complete system.

Dr. Asmau Usman, Nile University of Nig.


What to test, and what kind of faults
are found?

Various techniques can be used to build models


and generate test cases to perform systematic
black-box or white-box testing.

 White-box (or structural) testing verifies the


correct implementation of internal units,
structures, and relations among them.
 When white-box testing is performed, failures
related to internal implementations can be
observed, leading to corresponding faults being
detected and removed.

Dr. Asmau Usman, Nile University of Nig.


Cont.,

 Black-box (or functional) testing verifies the


correct handling of the external functions
provided by the software, or whether the
observed behaviour conforms to user
expectations or product specifications.
 When black-box testing is performed, failures
related to specific external functions can be
observed, leading to corresponding faults
being detected and removed.
 The emphasis is on reducing internal faults so that
there is less chance for failures later on no matter
what kind of application environment the software
is subjected to.

Dr. Asmau Usman, Nile University of Nig.


When, or at What Defect Level, to Stop
Testing?

 Most of the traditional testing techniques and


testing sub-phases use some kind of coverage
information as the stopping criteria.
 This is due to the assumption that higher
coverage means higher quality or lower levels
of defects.
 For example, checklists are often used to make
sure major functions and usage scenarios are
tested before product release.
 Every statement or unit in a component must
be covered before subsequent integration
testing can proceed.

Dr. Asmau Usman, Nile University of Nig.


Cont.,

 More formal testing techniques include


control flow testing that attempts to
cover execution paths and domain
testing that attempts to cover borders
between different input sub-domains.
 Such formal coverage information can
only be obtained by using expensive
coverage analysis and testing tools.
 However, irregular coverage
measurement can be obtained easily
by examining the proportion of tested
items in various checklists.

Dr. Asmau Usman, Nile University of Nig.


Cont,

 On the other hand, product reliability


goals can be used as a more
objective criterion to stop testing.
 The use of this criterion requires the
testing to be performed under an
environment that resembles actual
usage by target customers so that
realistic reliability assessment can be
obtained, resulting in the so-called
usage-based statistical testing.

Dr. Asmau Usman, Nile University of Nig.


Software Reliability

 Is define as the probability of failure free


operation of a software program in a
specified environment for a specified
time.
 It can measured, directed and
estimated
 A measure of software reliability is
mean time between failures where;
 MTBF = MTTF + MTTR
 MTTF = mean time to failure
 MTTR = mean time to repair

20
Dr. Asmau Usman, Nile University of Nig.
Software Availability

Software availability is the


probability that a program is
operating according to
requirements at a given point in
time.

 Availability =MTTF/(MTTF + MTTR) * 100%

21
Dr. Asmau Usman, Nile University of Nig.
ISO 9000 Quality Standards

 ISO 9000 describes quality assurance


elements in generic terms that can be
applied to any business.
 It treats an enterprise as a network of
interconnected processes.
 To be ISO-complaint processes should
adhere to the standards described.
 Elements include organizational structure,
procedures, processes and resources.
 Ensures quality planning, quality control,
quality assurance and quality
improvement.

23
Dr. Asmau Usman, Nile University of Nig.
ISO 9001

An international standard which


provides broad guidance to software
developers on how to Implement,
maintain and improve a quality
software system.
Consists of 20 requirements...
Differs from country to country..

24
Dr. Asmau Usman, Nile University of Nig.
Software Tools
 Objective: The objective of SQA tools
is to assist a project team in assessing
and improving the quality of software
work product.

 Mechanics: Tools mechanics vary. In


general, the intent is to assess the
quality of a specific work product.
Note :A wide array of software testing
tools are often included within the SQA
tools category.

Dr. Asmau Usman, Nile University of Nig.


Software Tools (cont…)

 Representative Tools: QA Complete,


developed by Smart Bear
 ( http:// smartbear.com/products/qa-
tools/test management),
 QA management ensures complete
test coverage through every stage of
the software development process.
 QPR Suite, developed by QPR
Software (http://www. qpr.com ),
provides support for Six Sigma and
other quality management
approaches.

Dr. Asmau Usman, Nile University of Nig.


Software Tools (cont.,)

 Quality Tools and Templates,


developed by iSix Sigma
 (http://www.isixsigma.com/toolstempla
tes/), describe a wide array of useful
tools and methods for quality
management.
 NASA Quality Resources, developed
by the Goddard Space Flight
Center provides useful forms,
templates, checklists, and tools for
SQA.
 (http://www.hq.nasa.gov/office/codeq
/software/Complex
Electronics/checklists.htm)

Dr. Asmau Usman, Nile University of Nig.


The SQA Plan

The SQA Plan provides a road map


for establishing software quality
assurance.
the plan serves as a template for
SQA activities that are started for
each software project.
A standard for SQA plans has been
published by the IEEE.

Dr. Asmau Usman, Nile University of Nig.


Cont.,
The standard recommends a structure that
identifies the following:
1. The purpose and scope of the plan.
2. A description of all software engineering work
products (e.g., models, documents, source
code) that fall within the purview of SQA.
3. All applicable standards and practices that are
applied during the software process.
4. SQA actions and tasks (including reviews and
audits) and their placement throughout the
software process.
5. The tools and methods that support SQA
actions and tasks.
6. Software configuration management
procedures,
7. Methods for assembling, safeguarding, and
maintaining all SQA-related records, and
8. Organizational roles and responsibilities relative
to product quality.

Dr. Asmau Usman, Nile University of Nig.


Summary

SQA must be applied at each step.


Software reviews are important SQA
activities.
Statistical SQA helps improve product
quality and software process.
Software Safety is essential for critical
systems.
ISO 9001 standardizes the SQA activities.

27
Dr. Asmau Usman, Nile University of Nig.
Summary-

Software Safety is essential for critical systems


ISO 9001 standardizes the SQA activities

27
Dr. Asmau Usman, Nile University of Nig.
Practice

 Failures, Defects, and Errors in software


 Quality Control
 Quality Assurance
 Categories of errors
 SQA tools

Dr. Asmau Usman, Nile University of Nig.


NEXT L

THANKS

Dr. Asmau Usman, Nile University of Nig.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy