Software Quality Engineering
Software Quality Engineering
QUALITY
ENGINEERING
LECTURE NO: 2
BY: NAZISH NOUMAN
Beyond Functionality
The Intro…
There’s more Users also have expectations, often unstated, about how well the product will
work.
to software
success than
just Such expectations include how easy it is to use, how quickly it executes, how
delivering rarely it fails, how it handles unexpected conditions and perhaps, how loud it is.
the right
functionality.
Such characteristics, collectively known as quality attributes, quality factors,
quality requirements, quality of service requirements, or the “–ilities,” constitute
a major portion of the system’s nonfunctional requirements
They are however quite simple; they
are the restrictions or constraints to
be placed on the system and how to
build it.
Non- Functional
Requirements
Their purpose is to restrict the
number of solutions that will meet a
set of requirements.
IEEE Definition of NFR ..
Product requirements: These
requirements specify how software
product performs
Non-Functional
Organizational requirements: These
Requirements: requirements are derived from the
Product policies and procedures of an
organization.
Requirements
External requirements: These
requirements include all the
requirements that affect the software
or its development process externally.
Software Quality Attributes
One way to classify quality attributes distinguishes those characteristics
that are discernible through execution of the software (external quality)
from those that are not (internal quality)
External quality factors are primarily important to users, whereas internal
qualities are more significant to development and maintenance staff.
AVL-1. The system shall be at least AVL-2. Down time that is excluded
95 percent available on weekdays from the calculation of availability
between 6:00 A.M. and midnight consists of maintenance scheduled
Eastern Time, and at least 99 during the hours from 6:00 P.M.
percent available on weekdays Sunday Pacific Time, through 3:00
between 3:00 P.M. and 5:00 P.M. A.M. Monday Pacific Time
Eastern Time.
Availability
Software is not useful
until it is installed on the Downloading apps to a phone or
tablet; moving software from a
appropriate device or PC onto a web server;
platform.
Some examples of
software installation Updating an operating system;
are:
2. Installability
It describes how easy is it installing a huge commercial
to perform these system, such as an enterprise
operations correctly. resource planning tool;
INS-4. Following successful installation, the installation program shall delete all
temporary, backup, obsolete, and unneeded files associated with the
application
3. Integrity
Performance is one of the quality attributes that users often will bring up
spontaneously. Performance represents the responsiveness of the system to various
user inquiries and actions.
All users want their applications to run instantly, but
the real performance requirements will be different
for a spell-check feature than for a missile’s radar
guidance system.
➢Analysts and developers shouldn’t talk about “friendly” software but rather
about software that’s designed for effective and unobtrusive usage.
Ease of learning Ease of use
Rich, customizable menus and
Wizards
toolbars
Multiple ways to access the same
Visible menu options
function
Meaningful, plain-language
Auto completion of entries
Possible
messages
Help screens and tooltips Auto correction of errors
design
Similarity to other familiar systems
Keyboard shortcuts approaches
Limited number of options and Ability to carry over information
for ease of
widgets displayed from a previous transaction
learning and
ease of use
USE-1. A trained user shall be able to submit a request
for a chemical from a vendor catalog in an average of
three minutes, and in a maximum of five minutes, 95
percent of the time.
Usability
indicators How many errors the user
How many tries it takes the user
to accomplish a particular task,
The delay or wait time when
like finding a specific function
include: makes when completing a task.
buried somewhere in the
menus.
performing a task.
Other Attribute • fault tolerance (are user input errors caught and
Terms of corrected?)
Robustness • survivability (can the camera experience a drop
from a certain height without damage?)
• recoverability (can the PC resume proper
operation if it loses power in the middle of an
operating system update?)
Robustness Example
Safety Example
SAF-2. The system shall terminate any
operation within 1 second if the measured
tank pressure exceeds 90 percent of the
specified maximum pressure.
Under what conditions could a human be harmed by the use
of this product? How can the
system detect those conditions? How should it respond?
9. Security
➢Security is a major issue with Internet software
➢As with integrity requirements, security requirements have
no tolerance for error.
User identification and
authentication (password
User authorization or
construction rules,
privilege levels (ordinary
password change
user, guest user,
frequency, security
administrator) and user
questions, forgotten logon
access
name or password
controls.
procedures, biometric
Following are
identification..)
to examine
when eliciting
security Protection against viruses,
worms, Trojan horses,
spyware, rootkits, and other
Firewall and other network
security issues
requirements: malware
➢Reliability problems can occur because of improper inputs, errors in the software code
itself, components that are not available when needed, and hardware failures.
➢Robustness and availability are closely related to reliability.
➢ Ways to specify and measure software reliability include the percentage of operations
that are completed correctly, the average length of time the system runs before failing
(mean time between failures, or MTBF), and the maximum acceptable probability of a
failure during a given time period.
Failure exists in varying degrees (e.g. partial or total failure)
Failure simply means that a system, component, or device
can no longer produce specific desired results.
Failure Metrics
To effectively manage failures, there are several critical
metrics that should be monitored.
What is Mean
Time To Repair The MTTR clock starts ticking when the
repairs start, and it goes on until
(MTTR)? operations are restored.
Following are What would you consider to be a critical failure, as opposed to a nuisance?
some questions
to ask user Under what conditions could a failure have severe repercussions on your
representatives business operations?
when you’re
eliciting reliability No one likes to see a system crash, but are there certain parts of the system
that absolutely have to be super-reliable?
requirements:
If the system goes down, how long could it stay offline before it significantly
affects your business operations?
How to Relate MTBF to System Availability
Availability metrics are expressed in terms of MTBF and MTTR.
Think of it as calculating the availability based on the actual time that the
machine is operating—excluding the time it takes for the machine to recover
from breakdowns.
This is quantified by the following equation:
Availability = MTBF / (MTBF + MTTR)
Internal Quality
Attributes
Internal quality attributes
Internal quality attributes are not directly observable during
execution of the software.
EFF-2. The system shall provide the operator with a warning message
when the usage load exceeds 80 percent of the maximum planned
capacity.
What is the maximum number of
concurrent users now and anticipated in
the future?
The BA must
By how much could response times or
ask these type other performance indicators decrease
of questions before users or the business suffer
adverse consequences?
SUP-1. A certified repair technician shall be able to replace the scanner module in no more than
10 minutes.
SUP-2. The printer shall display an error message if replacement ink cartridges were not
inserted in the proper slots
3.Portability
The effort needed to migrate software from one operating
environment to another is a measure of portability.
➢What different platforms will this software need to run on, both now and in the
future?
➢What portions of the product need to be designed for greater portability than other
portions?
➢What data fles, program components, or other elements of the system need to be
portable?
➢ By making the software more portable, what other quality attributes might be
compromised?
4. Reusability
Reusability indicates the relative effort required to convert a software
component for use in other applications