0% found this document useful (0 votes)
1K views

LEC 8 - SQE - Defect Prev, Reduction and Containment

The document discusses various defect prevention, reduction, and containment techniques for software development. It focuses on the importance of education and training for software professionals to help prevent defects from being introduced. Specific topics covered include defect prevention through process conformance, formal methods, and tools/technologies; defect reduction via static and dynamic testing; and defect containment using fault tolerance and failure prevention techniques.

Uploaded by

SaMee KHan
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)
1K views

LEC 8 - SQE - Defect Prev, Reduction and Containment

The document discusses various defect prevention, reduction, and containment techniques for software development. It focuses on the importance of education and training for software professionals to help prevent defects from being introduced. Specific topics covered include defect prevention through process conformance, formal methods, and tools/technologies; defect reduction via static and dynamic testing; and defect containment using fault tolerance and failure prevention techniques.

Uploaded by

SaMee KHan
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/ 13

Samra Siddiqui

 Defect Prevention Techniques


 Defect Reduction
 Defect Containment
 Education and training

 Process conformance and standards


enforcement

 Tools/technologies and techniques

 Formal Methods
 Education and training of software professionals can help them control,
manage, and improve the way they work.

 The elimination of these human misconceptions will help prevent certain types
of fault from being injected into software products.
The education and training effort for error source
elimination should focus on the following areas:

 Product and domain specific knowledge

 If the people involved are not familiar with


the product type or application domain,
there is a good chance that wrong solutions
will be implemented

 Knowledge about the specific


development/testing tools used by the
organization

 Also plays an important role in developing


high- quality software products.
 General Software Development Knowledge and expertise

 It plays an important role in developing high quality software products

 For example lack of expertise with requirements analysis and product


specification usually leads to many problems and rework in design, coding
and testing phases
 Development Process Knowledge used by the organization

 If the project personnel do not have a good understanding of the


development process involved, there is a little chance that a process can
be implemented correctly.

 For example if the people involved in incremental software development


do not know how the individual development efforts for different
increments fit together, the uncoordinated development may lead to many
interface or interaction problems.
 Appropriate use of software methodologies can also help reduce the
chances of fault injections.

 Problems with low quality “fat software” could be addressed by disciplined


methodologies and return to essentials for high quality “Lean software”

 A better managed process can also eliminate many systematic problems. For
example not having the defined process or not following it for software
configuration management may lead to inconsistencies or interface
problems among different software components.

 Specific software tools can also help reduce the chances of fault injections.

 For example Syntax directed editor that automatically balances out each
open parenthesis, “{”, with a close parenthesis, “}”, can help reduce
syntactical problems in programs written in the C language
 Formal methods includes formal specification and formal verification

 Formal specification is concerned with producing an


unambiguous set of product specifications so that the
customer requirements, as well as environmental constraints
and design intensions are correctly reflected.

 Formal verification checks the conformance of software


design or code against these formal specifications, thus
ensuring that the software is fault free with respect to its
formal specification.
2. Defect reduction through fault detection and removal
 Detect and remove faults once they have been injected

 Two categories:

 Static Testing
 (Inspection of software code, design etc., Reviews, Walkthroughs, desk
checking etc)

 Dynamic Testing
 Test a program by executing test scripts e.g White box testing, black box
testing etc
3.Defect containment through failure prevention and
Containing the failures to local areas

 Limiting the damage

 Fault tolerance techniques are used to break the casual


relation between faults and failures so that local faults will
not cause global failures, thus “tolerating” these local faults

 Failure Containment measures to avoid disastrous


consequences, such as death, personal injury and severe
property in case of failures
 Fault-tolerance or graceful degradation is the property that
enables a system to continue operating properly in the event of
the failure of some of its components.
 If its operating quality decreases at all, the decrease is
proportional to the severity of the failure.

 Software fault tolerance makes the assumption that the system


has unavoidable and undetectable faults and aims to make the
system to operate correctly even in the presence of faults.

 Using a variety of Software methods, faults are detected and


recovery is accomplished

You might also like