Sei sulla pagina 1di 17



j Inspection directly detects and corrects software

j Software inspection deals with software defects

already injected into the software system by detecting
their presence through critical examination.
Difference between Inspection and Testing.

j Main difference is that inspection is for all kind of

    but testing is for only  

j ëe should not wait for the availability of executable
programs before one can start performing inspection.
j So inspection is a kind of techniques that supports
defects removal at early phases, but not by testing
j Various software artifacts available late in the
development process can be inspected but not tested.
j Examples are, products release and support plans,
user manuals, project schedule and other management


The major inspection process consists of the following.
u ^lanning and preparation.
u Inspection or collection.
u xollection and follow up.
The generic testing process.

j Inspection planning needs to answer the following

u ëhat are the objectives and goal of the inspection.

u ëhat are the software artifacts to be inspected or the

object of the inspection.

u ëhat are the overall process, techniques and follow-

up activities of the inspection process


j This step is typically refers to as Inspection


j The focus of this step is to detect faults in the

software artifacts inspected, and record the
inspection results so that these faults can be
resolved in the next step.
xorrection and Follow-Up
j The discovered faults need to be corrected by people
who are responsible for it.

j For example in the design or code inspection, the

responsible designer or programmer.

j There should be some follow-up activities to verify

and fix.

j Sometimes, new inspection round can be planned.

j Ñ 

 methods includes  



j Formal specification is concerned to the set of

product specifications so that customer requirements
as well as environmental constraints are correctly

j Formal verification checks the conformance of

software design or code against these formal

j To keep system operational even under software
problems, thus tolerating local faults to avoid global
j Most important fault tolerance techniques is to use
the recovery blocks.
j ëhen the back-up is provided by the same program,
we have the recovery block or checkpoints.

j ëhen back-up is provided by different

program(running in parallel) is known as duplication.
-  | 

j -ero-Defect Software means " !,"

Development (-DSD) is a practice of developing
software that is maintained in the highest quality state
throughout the entire development process.

j There are some basic rules are there for -DSD


‰ ut the end of every day you work on a particular

project, build the current version of your software,
and test it for basic functionality.

‰ Test your program, make a list of anything you

would consider a "defect," and resolve to fix all
defects before implementing any new features.

‰ ëhen most people think of  
  & ',
they think of testing, The most rigorous testing will
typically find less than 70% of all bugs in a program,
and there are certain types of bugs that testing will
rarely find.
‰ For many software organizations that code
inspections are far more cost-effective than testing.
‰ So one hour of code review is equivalent to two or
more hours of methodical testing.
‰ Keep a list of the types of error in your code, and run
down your list whenever reviewing new code.

A. ussume full responsibility for every bug.

4. Handle change effectively.
6. Set Qu objectives at the beginning of every
6. Treat the quality of your code at the same
level of importance as the quality of your

( )! 
j V^ is another technique to tolerate software faults by
directly introducing duplication into the software itself.
j It is more suitable than recovery blocks when timely
decisions or performance are critical, such as in many
real time system, such as.
´    )
j The basic functional unit of the software system
consist of  parallel independent version of the
program with identical functionality. version1,
version2, versionA«««««««««.

j The system input is distributed to all the  versions.

j The individual output for each version is fed to a

decision unit.

j The decision unit determines the system output using

a specific decision algorithm.

j The most commonly used algorithm is a simple

majority basis.

j The decision algorithm determines the degree of

fault tolerance for the software product.

j For example when the system majority rule is used,

and the system output would be the correct one.

j If half of the versions are operational and produce

correct result.

j Then according to this algorithm the overall system

is fault tolerant up to ( 2-1)