• No results found

Lecture 2-3

N/A
N/A
Protected

Academic year: 2020

Share "Lecture 2-3"

Copied!
34
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Quality Engineering

BS(SE)-VI

Dr. Assad Abbas

Department of Computer Science

(2)

What is Software Quality?

n

No commonly agreed definition

n

IEEE definition

“The degree to which a system, component, or process

meets specified requirements (Philip Crosby)”

5

Emphasis here is on specifications

“The degree to which a system, component, or process

meets customer or user needs or expectations (Joseph

M. Juran)”

(3)

What is Software Quality?

n

Pressman believes that Software quality is :

“Conformance to explicitly stated functional and

performance requirements, explicitly documented

(4)

People’s Quality Expectations

n

In general, people’s quality expectations for software

systems they use and rely upon are two-fold:

5

The software systems must do what they are

supposed to do. In other words, they must

do

the

right things.

g

For example, an airline reservation system is supposed

to handle reservations, not intended to fly airplanes

automatically

5

They must perform these specific tasks correctly or

satisfactorily. In other words, they must

do

the things

right.

g

the system should help travel agents or individual

(5)

Reasons Software Quality is Important

n

Safety

n

Cost

n

Customer satisfaction

(6)

Some Historical Facts

n

Software bugs caused:

5

A massive blackout cut off electricity to 50 million

people in eight US states and Canada

5

Technical problems with the baggage system at

Heathrow’s terminal 5 caused thousands of the

passengers to wait for their baggage

n

A study commissioned by the National Institute of

(7)

Quality Control vs. Quality Assurance

n

Quality Control (QC) is a set of activities for ensuring quality

in products. The activities focus on

identifying defects

in the

actual products produced.

5 Quality control, therefore, is a reactive process.

5 The goal of QC is to identify defects after a product is developed and before it's released

n

Quality Assurance is a set of activities for ensuring quality

in

the processes

by which products are developed

5 QA aims to prevent defects with a focus on the process used to make the product. It is a proactive quality process

5 The goal of QA is to improve development and test processes so that defects do not arise when the product is being

(8)

Testing, Quality Assurance, and Software Quality

Engineering

n By running the software system or executing its

prescribed functions, testers can determine if the observed system behavior conforms to its

specifications or requirements

n Beyond testing, there are many other QA

alternatives supported by related techniques and activities, such as inspection, formal verification, defect prevention, and fault tolerance

n In addition, all these QA activities need to be

managed in an engineering process we call the software quality engineering process, with quality goals set early in the product development, and strategies for QA selected, carried out, and

(9)

Why Software Quality Engineering?

n

Why software?

5

Because in contemporary social life software, systems

and services rendered by software are omnipresent,

beginning with the watches we wear, ending with nuclear

electricity plants or spaceships.

n

Why quality?

5

Because if these instances of software work without the

required quality we may be late, dead, or lost in space.

n

Why engineering?

(10)

Importance w.r.t. process

n

Specifications

5 The correctness, completeness, and consistency of the

requirements model will have a strong influence on the quality of all work products that follow

n

Design

5 Every element of the design model should be assessed by the software team to ensure that it exhibits high quality and that the design itself conforms to requirements

n

Construction

5 Source code and related work products (e.g., other descriptive information) must conform to local coding standards and exhibit characteristics that will facilitate maintainability

n

Conformance

(11)

The environments for which SQA methods are

developed

n

Important to note that variety of professionals, such

as students, amateur developers, professionals in

engineering, economics, management and other

fields, software teams, departments of large and

small industrial applications and all those who

(12)

n

Contractual conditions

n

Subjection to customer-supplier relationship

n

Requirement for teamwork

n

Need for cooperation and coordination with other

development teams

n

Need for interfaces with other software systems

n

Need to continue carrying out a project while the

team changes

n

Need to continue maintaining the software system

for years

(13)

The characteristics of the SQA environment process

n

Contractual Conditions

5 As a result of the commitments and conditions defined in the contract between the software developer and the customer, the activities of software development and maintenance need to cope with:

g A defined list of functional requirements that the developed

software and its maintenance need to fulfill.

g The project budget. g The project timetable

n

Subjection to customer-supplier relationship

5 Continuous cooperation with the customer

g Request for changes, criticism/feedback, approval of changes

(14)

The characteristics of the SQA environment process

n

Requirement for teamwork

5 The following factors usually motivate the establishment of a project team rather than assigning the project to one

professional

g Timetable (schedule) requirements

g The need for a variety of specializations to carry out the project. g The desire to benefit from professionals’ mutual support and

review for the enhancement of project quality.

n

Cooperation and coordination with other development teams

5 Cooperation may be required with:

g Other software development teams in the same organization. g Hardware development teams in the same organization.

g Software and hardware development teams of other suppliers. g Customer software and hardware development teams that take

(15)
(16)

The characteristics of the SQA environment process

n

Interfaces with other software systems

5

One can identify the following main types of interfaces:

g Input interfaces, where other software systems transmit data to

your software system.

g Output interfaces, where your software system transmits

processed data to other software systems.

g Input and output interfaces to the machine’s control board, as in

medical and laboratory control systems, metal processing equipment, etc.

n

Need to continue carrying out a project while the team

changes

(17)

The salary software system – an example of software

interfaces

Salary processing

system Attendance

control system

Bank information

systems

Money transfers to employees’ bank account accounts

Monthly attendance report, including overtime calculations

Input interface

(18)

The characteristics of the SQA environment process

n

Need to continue maintaining the software system

for years

5

Customers who develop or purchase a software

system expect to continue utilizing it for a long period,

usually for 5–10 years. During the service period, the

need for maintenance will eventually arise. In most

cases, the developer is required to supply these

services directly.

5

Internal “customers”, in cases where the software has

been developed in-house, share the same

(19)

ISO 9001:2000 Standard

n

ISO 9001:2000 is the quality assurance standard that applies

to software engineering.

n

The standard contains 20 requirements that must be present

for an effective quality assurance system.

n

The requirements defined by ISO 9001:2000 address topics

such as:

5 management responsibility, quality system, contract review, design control, document and data control, product identification and

(20)

Quality Perspectives and Expectations

n

In Kitchenham & Pfleeger (1996):

5

Transcendental view: seen/not-defined

5

User view: fitness for purpose

5

Manufacturing view: conformance to standards

5

Product view: inherent characteristics

(21)

People’s Roles and Responsibilities

n About software quality, people may have different views and expectations based

on their roles and responsibilities

n Mainly two groups:

5 Consumers of software products and services

g Customers, users, non-human users (other systems) g External view (black box)

g Quality expectations:

u Can be different for different users ( usability for novice and reliability for sophisticated users)

u Correctness, performance, maintainability

5 Producers of software products and services

g anyone involved with the development, management, maintenance, marketing,

and service of software products

g Internal view (white box) g Quality expectations:

u Fulfil contractual obligations

u Design, size, complexity, change

(22)

Quality Frameworks and ISO-9126

n ISO-9126—hierarchical framework for quality definition, organized

into quality characteristics and sub-characteristics with six top-level

quality characteristics/dimensions:

5 Functionality: what is needed?

g Suitability, Accuracy, Interoperability, Security

5 Reliability: function correctly

g Maturity, fault tolerance, recoverability

5 Usability: effort to use

g Understandability, learnability, operability

5 Efficiency: resource needed

g Time, resource

5 Maintainability: correct/improve/adapt

g Analyzability, changeability, stability, testability

5 Portability: one environment to another

(23)

Alternative frameworks and focus on correctness

n

Quality measure for IBM,s software products

5 CUPRIMDS (capability, usability, performance, reliability, installation, maintenance, documentation, and service)

n Quality attributes for Web-based applications

5 reliability, usability, and security—primary attributes

5 availability, scalability, maintainability, and time to market—secondary attributes

g performance (or efficiency) and reliability would take precedence over usability and

maintainability for real-time software products. On the contrary, it might be the other way round for mass market products for end users.

n

Correctness is typically the most important aspect of quality

(24)

CORRECTNESS AND DEFECTS

n

Error:

5

incorrect/missing human action – conceptual

mistakes

n

Fault:

5

An incorrect step, process, or data definition in a

computer program.

n

Failure:

5

The inability of a system or component to perform its

required functions within specified performance

(25)

Correctness and Defects

n

We also extend errors to include

error sources or the root

causes

for the missing or incorrect actions, such as human

misconceptions, misunderstandings, etc.

n

Failures, faults, and errors are collectively referred to as

defects in literature.

n

Software problems or defects, are also commonly referred to

as “bugs”. However, the term bug is never precisely defined

n

Moreover, we use

defect detection and removal

for the overall

concept and activities related to what many people commonly

call

“debugging”.

5 Specific activities related to defect discovery, including testing, inspection, etc.

(26)
(27)

Concepts Related to Defects

n The relationship is not necessarily 1-to- 1:

n A single error may cause many faults, such as in the case that a

wrong algorithm is applied in multiple modules and causes multiple faults, and a single fault may cause many failures in repeated executions.

n Conversely, the same failure may be caused by several faults,

such as an interface or interaction failure involving multiple

modules, and the same fault may be there due to different errors.

n Sometimes, an error source, such as e5, may not cause any fault

injection, and a fault, such as f4, may not cause any failure, under the given scenarios or circumstances. Such faults are typically

(28)

Concepts Related to Defects

n

It should be noted that only a portion of the software faults,

and in some cases only a small portion of them, will turn into

software failures in either the early or later stages of the

software’s application.

n

Other software faults will remain hidden, invisible to the

(29)

Correctness Oriented Properties and Measurements

n

Failure properties and direct failure measurement

5 Failure properties include information about the specific failures, what they are, how they occur, etc. These properties can be

measured directly by examining failure count, distribution, density etc.

n

Failure likelihood and reliability measurement

5 How often or how likely a failure is going to occur is of critical concern to software users and customers. This likelihood is

(30)

Correctness Oriented Properties and Measurements

n

Failure severity measurement and safety assurance

5 Accidents, which are defined to be failures with severe

(31)
(32)

Defects in the context of QA and quality engineering

n

Three generic ways to deal with defects include:

5

defect prevention

5

defect detection and removal

5

defect containment

n

Quality engineering can also be viewed as

defect

management

. In addition to the execution of the

planned QA activities, quality engineering also

includes:

5

quality planning before specific QA activities are

carried out

5

measurement, analysis, and feedback to monitor and

(33)

Causes of Software Errors

n Faulty definition of requirements

5 Erroneous definition of requirements

5 Incomplete definition of requirements

5 Inclusion of unnecessary requirements, functions that are not expected to be needed in the near future

n Client-developer communication failures

5 Misunderstanding of (i) client’s instructions as stated in the requirement documents, (ii) requirement changes, (iii) client’s response to design problem

n Deliberate deviation from requirements

n Logical design errors

5 Process definitions that contain sequencing errors

5 Erroneous definition of boundary conditions

5 Omission of required software states

(34)

Causes of Software Errors

n Coding errors

5 misunderstanding the design documentation, linguistic errors in the programming languages, errors in the application of CASE and other development tools, errors in data selection, and so forth.

n Non-compliance with documentation and coding instructions

5 Team members who need to coordinate their own codes with code modules developed by “non-complying” team members can be expected to encounter more than the usual number of difficulties when trying to understand the

software developed by the other team members.

5 Individuals replacing the “non-complying” team member (who has retired or been promoted) will find it difficult to fully understand his or her work.

5 The design review team will find it more difficult to review a design prepared by a non-complying team.

n Shortcomings of the testing process

5 Incomplete test plans; failure to report, document and correct detected errors;

n Procedure errors

n Documentation errors

Figure

Illustration of Concepts Related to Defects

References

Related documents

The projected gains over the years 2000 to 2040 in life and active life expectancies, and expected years of dependency at age 65for males and females, for alternatives I, II, and

19% serve a county. Fourteen per cent of the centers provide service for adjoining states in addition to the states in which they are located; usually these adjoining states have

National Conference on Technical Vocational Education, Training and Skills Development: A Roadmap for Empowerment (Dec. 2008): Ministry of Human Resource Development, Department

SLNs combine the advantages of different colloidal carriers, like emulsions, liposome’s, (physically acceptable) polymeric nanoparticles (controlled drug release from

This essay asserts that to effectively degrade and ultimately destroy the Islamic State of Iraq and Syria (ISIS), and to topple the Bashar al-Assad’s regime, the international

innovation in payment systems, in particular the infrastructure used to operate payment systems, in the interests of service-users 3.. to ensure that payment systems

Based on Handen (2000) five dimensions (strategy, organization, technology, segmentation, process) for effective implementation for CRM strategy, the study considers