0% found this document useful (0 votes)
9 views22 pages

L1 Software Quality

Uploaded by

Deepak Patel
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)
9 views22 pages

L1 Software Quality

Uploaded by

Deepak Patel
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/ 22

SOFTWARE TESTING & QUALITY ASSURANCE / BTCS-4714

Course Name: B.Tech CSE

Semester: 7th

Prepared by: Er. Jasdeep Singh

education for life www.rimt.ac.in Department of Computer Science & Engineering


Software Quality

Terms Related to Software Quality such as


Perspectives of Software Quality, Reliability,
Software Quality Management System,
Quality System Activities

education for life www.rimt.ac.in


Why Study Software Engineering?

• Software Engineering applies the knowledge and


theoretical understanding gained through computer
science to building high-quality software products. ...
As a maturing discipline, software is becoming more
and more important in our everyday lives.

The basic objective of software engineering is to
develop methods and procedures for software
development that can scale up for large systems and
that can be used consistently to produce high-quality
software at low cost and with a small cycle of time.
education for life www.rimt.ac.in
Why the quality of software is important?


Software quality drives predictability. Do it
once and do it right, and there will be less re-
work, less variation in productivity and better
performance overall. Products get delivered
on time, and they get built more productively.
Poor quality is much more difficult to manage.

education for life www.rimt.ac.in


Why should you study software quality
assurance?

Software quality assurance makes sure that the
whole software development process is well-organized.
All phases and activities are tested after they are finished,
which leaves room for improvements and fixes.

QA or Quality Assurance is a proactive process focusing
on preventing errors that may occur during
development. It is integrated into all stages of software
development, from project description to testing, release,
and even post-release. Besides, QA improves internal dev.

education for life www.rimt.ac.in


Software Quality
• Software quality product is defined in term of its fitness of
purpose. That is, a quality product does precisely what the
users want it to do.
• For software products, the fitness of use is generally
explained in terms of satisfaction of the requirements laid
down in the SRS document.
• Although "fitness of purpose" is a satisfactory
interpretation of quality for many devices such as a car, a
table fan, a grinding machine, etc. for software products,
"fitness of purpose" is not a wholly satisfactory definition
of quality.
education for life www.rimt.ac.in
Software Quality
• Example: Consider a functionally correct
software product. That is, it performs all tasks
as specified in the SRS document. But, has an
almost unusable user interface. Even though it
may be functionally right, we cannot consider
it to be a quality product.

education for life www.rimt.ac.in


Quality is a complex concept—it means different things to
different people, and it is highly context dependent

• User View: It perceives quality as fitness for purpose. According to this


view, while evaluating the quality of a product, one must ask the key
question: “Does the product satisfy user needs and expectations?”
• Manufacturing View: Here quality is understood as conformance to the
specification. The quality level of a product is determined by the extent
to which the product meets its specifications.
• Product View: In this case, quality is viewed as tied to the inherent
characteristics of the product. A product’s inherent characteristics, that
is, internal qualities, determine its external qualities.
• Value-Based View: Quality, in this perspective, depends on the amount
a customer is willing to pay for it.

The concept of software quality and the efforts to understand it in


terms of measurable quantities
education for life www.rimt.ac.in
The modern view of a quality associated with a software
product several quality methods such as the following:
• Portability: A software device is said to be portable, if it can be freely
made to work in various operating system environments, in multiple
machines, with other software products, etc.
• Usability: A software product has better usability if various categories
of users can easily invoke the functions of the product.
• Reusability: A software product has excellent reusability if different
modules of the product can quickly be reused to develop new products.
• Correctness: A software product is correct if various requirements as
specified in the SRS document have been correctly implemented.
• Maintainability: A software product is maintainable if bugs can be
easily corrected as and when they show up, new tasks can be easily
added to the product, and the functionalities of the product can be
easily modified, etc.

education for life www.rimt.ac.in


Software Quality Management
System
• A quality management system is the principal methods used by
organizations to provide that the products they develop have
the desired quality.
• A quality system subsists of the following:
• Managerial Structure and Individual Responsibilities: A quality
system is the responsibility of the organization as a whole.
However, every organization has a sever quality department to
perform various quality system activities.
The quality system of an arrangement should have the
support of the top management. Without help for the quality
system at a high level in a company, some members of staff will
take the quality system seriously.

education for life www.rimt.ac.in


Quality System Activities: The quality system activities
encompass the following:

• Auditing of projects
• Review of the quality system
• Development of standards, methods, and
guidelines, etc.
• Production of documents for the top
management summarizing the effectiveness of
the quality system in the organization.

education for life www.rimt.ac.in


Evolution of Quality Management System

• Quality systems have increasingly evolved over the last


five decades.
• The first product inspection task gave method to quality
control (QC).
• Total quality management (TQM) advocates that the
procedure followed by an organization must be
continuously improved through process measurements.
• TQM goes beyond documenting steps to optimizing
them through a redesign. A term linked to TQM is
Business Process Reengineering (BPR).

education for life www.rimt.ac.in


Business Process Reengineering (BPR) aims at reengineering the method
business is carried out in an organization.

education for life www.rimt.ac.in


QUALITY FACTORS
• A quality factor represents a behavioral characteristic of a
system.
• Some examples of high-level quality factors are
correctness, reliability, efficiency, testability,
maintainability, and reusability.
• A quality criterion is an attribute of a quality factor that is
related to software development.
• For example, modularity is an attribute of the architecture
of a software system. A highly modular software allows
designers to put cohesive components in one module,
thereby improving the maintainability of the system.

education for life www.rimt.ac.in


Models for Quality
• Various software quality models have been proposed to define quality
and its related attributes. The most influential ones are the ISO 9126
[20–22] and the CMM [14].
• The ISO 9126 quality model was developed by an expert group under the
aegis of the International Organization for Standardization (ISO).
• The document ISO 9126 defines six broad, independent categories of
quality characteristics: functionality, reliability, usability, efficiency,
maintainability, and portability.
• The CMM was developed by the Software Engineering Institute (SEI) at
Carnegie Mellon University. In the CMM framework, a development
process is evaluated on a scale of 1–5, commonly known as level 1
through level 5.
• For example, level 1 is called the initial level, whereas level 5—optimized
—is the highest level of process maturity.

education for life www.rimt.ac.in


FAILURE, ERROR, FAULT, AND DEFECT

In software testing, one can find references to the terms failure, error,
fault, and defect. Although their meanings are related, there are
important distinctions between these four concepts.
In the following, we present first three terms as they are understood in
the fault-tolerant computing community:
• Failure: A failure is said to occur whenever the external behaviour of
a system does not conform to that prescribed in the system
specification.
• Error: An error is a state of the system. In the absence of any
corrective action by the system, an error state could lead to a failure
which would not be attributed to any event subsequent to the error.
• Fault: A fault is the adjudged cause of an error.

education for life www.rimt.ac.in


Software reliability
• Software reliability is defined as the
probability of failure-free operation of a
software system for a specified time in a
specified environment.
• The level of reliability of a system depends on
those inputs that cause failures to be
observed by the end users.
• Software reliability can be estimated via
random testing
education for life www.rimt.ac.in
ROLE OF TESTING
• Testing plays an important role in achieving and
assessing the quality of a software product.
• On the one hand, we improve the quality of the
products as we repeat a test–find defects–fix cycle
during development.
• On the other hand, we assess how good our system is
when we perform system-level tests before releasing a
product.
• Thus, as Friedman and Voas [26] have succinctly
described, software testing is a verification process for
software quality assessment and improvement.
education for life www.rimt.ac.in
Verification & Validation
• Verification: This kind of activity helps us in evaluating a software system by
determining whether the product of a given development phase satisfies the
requirements established before the start of that phase.
One may note that a product can be an intermediate product, such as
requirement specification, design specification, code, user manual, or even the final
product. Activities that check the correctness of a development phase are called
verification activities.
• Validation: Activities of this kind help us in confirming that a product meets its
intended use. Validation activities aim at confirming that a product meets its
customer’s expectations.
In other words, validation activities focus on the final product, which is
extensively tested from the customer point of view. Validation establishes whether the
product meets overall expectations of the users.
Late execution of validation activities is often risky by leading to higher development
cost. Validation activities may be executed at early stages of the software development
cycle

education for life www.rimt.ac.in


THE ACTIVITIES FOR SOFTWARE QUALITY ASSESSMENT

• Generally speaking, the activities for software quality assessment can be


divided into two broad categories, namely, static analysis and dynamic
analysis.
• Static Analysis: As the term “static” suggests, it is based on the
examination of a number of documents, namely requirements documents,
software models, design documents, and source code.
Traditional static analysis includes code review, inspection, walk-
through, algorithm analysis, and proof of correctness. It does not involve
actual execution of the code under development. Instead, it examines code
and reasons over all possible behaviours that might arise during run time.
Compiler optimizations are standard static analysis

education for life www.rimt.ac.in


THE ACTIVITIES FOR SOFTWARE QUALITY ASSESSMENT

• Dynamic Analysis: Dynamic analysis of a software system involves


actual program execution in order to expose possible program
failures. The behavioral and performance properties of the program
are also observed.
Programs are executed with both typical and carefully chosen
input values. Often, the input set of a program can be impractically
large.
However, for practical considerations, a finite subset of the input
set can be selected. Therefore, in testing, we observe some
representative program behaviours and reach a conclusion about the
quality of the system.
Careful selection of a finite test set is crucial to reaching a reliable
conclusion.
education for life www.rimt.ac.in
THE ACTIVITIES FOR SOFTWARE QUALITY ASSESSMENT

• By performing static and dynamic analyses,


practitioners want to identify as many faults as
possible so that those faults are fixed at an early
stage of the software development.

• Static analysis and dynamic analysis are


complementary in nature, and for better
effectiveness, both must be performed repeatedly
and alternated.

education for life www.rimt.ac.in

You might also like