• No results found

Lecture 9

N/A
N/A
Protected

Academic year: 2020

Share "Lecture 9"

Copied!
26
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Quality Engineering

BS(SE)-VI

Dr. Assad Abbas

Department of Computer Science

(2)

Topics

n

QA Activities and Defect Management/Handling

1.

Defect Prevention and Associated Techniques

2.

Defect Detection and Removal, related Techniques

(3)
(4)

Quality Assurance (QA)

n

QA can be viewed as to

ensure

that few, if any, defects

remain in the software system when it is delivered to its

customers or released to the market.

(5)

Defect Perspective

n Examine the QA technique dealing with errors, faults, or failures. n This examination can be broken down into two parts:

5 Detection or observation of specific problems from specific defect perspectives.

5 Type of follow-up actions that deal with the observed or detected problems.

n

We can view different QA activities as attempting to

prevent

,

(6)

Classification: QA as Dealing with Defects

n

A close examination of how different QA

alternatives deal with defects can yield a

generic

classification scheme

that can be used to help us

better select, adapt and use different QA

(7)

A Classification Scheme

n

We can classify these

QA

alternatives into the following three generic

categories:

5

Defect Prevention through error blocking or error source removal

g

Eliminating certain error sources

g

Fault prevention or blocking by breaking the causal relationships

5

Defect reduction through fault detection and removal

g Inspection g Testing

5

Defect containment through failure prevention and containment

g Use of fault-tolerance techniques

g containment measures to avoid catastrophic consequences, such as

(8)

Graphical Depiction of the Classification Scheme

09/22/2020 • The barrier between the

input to software

development activities (left box) and the software system (middle box)

represents defect prevention activities.

• The curved barrier between the software system (middle box) and the usage scenario and observed behavior (right box) represents defect or fault removal activities such as inspection and testing.

• The straight barrier to the right of and close to the above fault removal barrier represents failure prevention activities such as fault

tolerance.

• The last barrier,

(9)

1. Defect Prevention

n

The QA alternatives commonly referred to as defect prevention activities

can be used for most software systems

5 to reduce the chance for defect injections and the subsequent cost to deal with these injected defects.

n

Most of the defect prevention activities assume that there are known

error sources or missing incorrect actions that result in fault injections, as

follows:

5 If human misconceptions are the error sources, education and training can help us remove these error sources

5 If imprecise designs and implementations that deviate from product specifications or design intentions are the causes for faults, formal methods can help us prevent such deviations.

5 If non-conformance to selected processes or standards is the problem that leads to fault injections, then process conformance or standard enforcement can help use prevent the injection of related faults.

(10)

Defect Prevention: Education and Training

n

Education and training provide people-based solutions for error

source elimination.

n

The

people factor

is the most important factor that determines

the quality and, ultimately, the success or failure of most

software projects.

n

Education and training of software professionals can help them

control, manage, and improve the way they work.

n

The education and training effort should focus on the following

areas:

5

Product and domain specific knowledge.

5

Software development knowledge and expertise.

5

Knowledge about development methodology, technology, and

tools.

(11)

Defect Prevention: Formal Method

n

Formal development methods (formal methods) includes

formal specification and verification.

n

Formal specification is concerned with producing an

unambiguous set of product specifications

so that customer

requirements, as well as environmental constraints and design

intentions, are correctly reflected, thus reducing the chances

of accidental fault injections.

n

Formal verification checks the

conformance of software

(12)

Formal Techniques

n To specify and verify the “correctness” of software system:

1. The oldest and most influential formal method is the axiomatic approach

5Pre-condition: A set of formal conditions describing the program state

before the execution of a program

5Post-condition: A set of formal conditions describing the program state

after the program execution

2. Predicate transformer based on weakest precondition ideas, and

program calculus or functional approach heavily based on mathematical functions and symbolic executions.

3. Various other limited scope or semi-formal techniques also exist, which check for certain properties instead of proving the full correctness of programs.

(13)

Other Defect Prevention Techniques

n

Besides the formal methods,

appropriate use

of other software

methodologies or technologies can also help reduce the chances of

fault injections.

n

A

better managed process

can also eliminate many systematic

problems. For example, not having a defined process or not following it

for system configuration management may lead to inconsistencies or

interface problems among different software components.

n

Sometimes,

specific software tools

can also help reduce the chances of

fault injections.

(14)

2. Defect Reduction

n

For most large software systems in use today, it is

unrealistic

to expect the defect prevention activities discussed

previously to be 100% effective in preventing accidental fault

injections.

(15)

Defect Reduction: Inspection

n

Direct fault detection and removal

5

Critical examinations of software artifacts by human

inspectors aimed at

discovering and fixing faults

in

the software systems.

(16)

Defect Reduction: Inspection…

n

The basic ideas of inspection are outlined below:

5

Inspections are

critical reading and analysis

of software code or other

software artifacts, such as designs, product specifications, test plans,

etc.

5

Inspections are typically conducted by

multiple human inspectors

,

through some coordination process. Multiple inspection phases or

sessions might be used.

5

Faults are detected directly in inspection by human inspectors, either

during their

individual inspections

or various

types of group sessions

.

5

Identified faults need to be

removed

as a result of the inspection

process, and their removal also needs to be

verified

.

5

The inspection processes vary, but typically include some

planning and

follow-up

activities in addition to the core inspection activity.

5

The

formality and structure

of inspections may vary, from very informal

reviews and walkthroughs, to fairly formal variations of Fagan

(17)
(18)

Defect Reduction: Testing

n

Failure observation and fault removal

n

Testing is one of the most important parts of

QA

and the most

commonly performed

QA

activity.

n

Testing involves the

execution of software

and the

observation

of the program behavior or outcome.

n

If a failure is observed, the

execution record

is then analyzed to

locate and fix the fault(s) that caused the failure.

n

Types:

(19)
(20)

Other Techniques and Risk Identification

n

Static based Techniques:

5

Inspection

5

formal model based analyses

g such as algorithm analysis, decision table analysis, boundary

value analysis, finite-state machine and Petri-net modeling, control and data flow analyses, software fault trees.

n

Dynamic Execution based Techniques:

5

symbolic execution, simulation, and prototyping

n

In-Field Measurement and Related Analyses:

(21)
(22)

3. Defect Containment

n Because of the large size and high complexity of most software systems in use

today, the defect reduction activities can only reduce the number of faults to a fairly low level, but not completely eliminate them.

n For software systems where failure impact is substantial, such as many

real-time control software sub-systems used in medical, nuclear, transportation, and other embedded systems, this low defect level and failure risk may still be

inadequate.

n On the other hand, these few remaining faults may be triggered under rare

conditions or unusual dynamic scenarios, making it unrealistic to attempt to generate the huge number of test cases to cover all these conditions or to perform exhaustive inspection based on all possible scenarios.

n Instead, some other means need to be used to prevent failures by breaking the

(23)

Defect Containment: Software Fault Tolerance

n

Software fault tolerance ideas originate from

fault

tolerance designs

in traditional hardware systems

that require higher levels of reliability, availability, or

dependability.

n

In such systems,

spare parts and backup units

are

(24)

Defect Containment: Software Fault Tolerance…

n

The primary software fault tolerance techniques include recovery

blocks, N-version programming (NVP), and their variations

n

Recovery blocks

use

repeated executions

(or redundancy over

time) as the basic mechanism for fault tolerance. If dynamic failures

in some local areas are detected, a portion of the latest execution is

repeated, in the hope that this repeated execution will not lead to the

same failure. Therefore, local failures will not propagate to global

failures, although some time-delay may be involved.

n

NVP

uses

parallel redundancy

, where N copies, each of a different

version, of programs fulfilling the same functionality are running in

parallel. The decision algorithm in NVP makes sure that local failures

in limited number of these parallel versions will not compromise

(25)

Fault Tolerance

(26)

References

1.

Software Quality Engineering Testing, Quality

Assurance, and Quantifiable Improvement, Jeff

Tian, Chapter 02, 13, 16, Wiley, 2005.

2.

http://asq.org/pub/sqp/past/vol3_issue3/

References

Related documents

Only active full-time regular employees (faculty, administration and staff) who have completed a minimum of four consecutive years of active, continuous, regular, full-time

in the area provided, the activities of their classes, assignments, operations performed, etc. All entries and computations are to be made, in pencil, by the student

• Unstained cells or complete isotype control stains are improper controls for determining positive vs. negative expression in

The size fractions generated by the size characterisation of the feed were analysed to determine the concentration and distribution of elements in the original carbon ash. Similarly

In vivo measurement images of a GA patient; (a) fundus photograph, (b) fun- dus auto-fluorescence image, en face projection images of (c) global-phase-corrected

Locally advanced prostate cancer (LAPC), androgen deprivation therapy (ADT), androgen receptor (AR), dose-escalation, external beam radiotherapy (EBRT), conformal radiotherapy

 Step 3: Create Customer Satisfaction or Modify Customer Satisfaction Complete all necessary fields, and click the Save to return to the Customer. Satisfaction page, or click

The development of in vitro methods to culture metabolic competent hepatocytes can have different applications such as the generation of cells for liver engraphment