20
Chapter 14: Inspection Basic Concept and Generic Process Fagan Inspection Other Inspection and Related Activities

Chapter 14: Inspection

Embed Size (px)

DESCRIPTION

Chapter 14: Inspection. Basic Concept and Generic Process Fagan Inspection Other Inspection and Related Activities. QA Alternatives. Defect prevention: Error blocking and error source removal. Defect removal: Inspection - this chapter. Testing, etc. - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 14: Inspection

Chapter 14: Inspection

Basic Concept and Generic Process

Fagan Inspection

Other Inspection and Related Activities

Page 2: Chapter 14: Inspection

QA Alternatives Defect prevention: Error blocking and error source

removal.

Defect removal: Inspection - this chapter. Testing, etc.

Defect containment: Fault tolerance and failure containment (safety assurance).

Page 3: Chapter 14: Inspection

Inspection as Part of QA Throughout the software process

Coding phase: code inspection Design phase: design inspection Inspection in other phases and at transitions from one phase to

another

Many different software artifacts: program code, typically requirement/design/other documents charts/models/diagrams/tables/etc.

Page 4: Chapter 14: Inspection

Generic Process and Variations Generic process/steps: Fig 14.1 (p.238)

1. Preparation (individual)2. Collection (group/meeting)3. Repair (follow-up)

Inspection Process Variations: Team organization and size (who?) Inspection objects and objectives? Number/coordination of multiple sessions? Collection technique? Detect (& classify/analyze) defects? Use of post-collection feedback?

Page 5: Chapter 14: Inspection

Fagan Inspection Fagan at IBM (earliest form of inspection)

Lead to other variations Generic process and steps

Six steps of Fagan inspection:1. Planning

2. Overview (1-to-n meeting)

3. Preparation (individual inspection)

4. Inspection (n-to-n meeting)

5. Rework

6. Follow-up

Mapping to generic inspection process in Fig 14.1 (p.238)

Page 6: Chapter 14: Inspection

Fagan Inspection1. Planning

Entry criteria: what to inspect Team size: about 4 persons Developers/testers from similar projects Inspectors not authors

2. Overview Author-inspectors meeting General background information

functional/structural/info., intentions Assign individual tasks:

coverage of important areas moderate overlap

Page 7: Chapter 14: Inspection

Fagan Inspection3. Preparation or individual inspection

Independent analysis/examination Code as well as other document Individual results:

questions/guesses potential defects

4. Inspection (generic: collection) Meeting to collect/consolidate individual inspection results Team leader/meeting moderator (1) Reader/presenter: summarize/paraphrase for individual pieces Defect identification, but not solutions No more than 2 hours Inspection report

Page 8: Chapter 14: Inspection

Fagan Inspection5. Rework

Author's response Defect fixing (solutions)

6. Follow-up Resolution verification by moderator Re-inspection?

Fagan inspection in practice Widely used in industry Evaluation studies Variations and other inspections

Page 9: Chapter 14: Inspection

Fagan Inspection: Findings Importance of preparation:

Most defect detected Actual meetings are to CONSOLIDATE defects

Other important findings: Important role of the moderator Team size and # sessions tailored to env. Prefer systematic detection techniques to ad-hoc ones More use of inspection feedback/analysis

Page 10: Chapter 14: Inspection

Other Inspection Methods Variations to Fagan inspection

size/scope and formality variations.

Alternative inspection techniques/processes: Two-person inspection Meetingless inspections Phased inspections N-fold inspections Informal check/review/walkthrough

Page 11: Chapter 14: Inspection

Reduced Size/Scope Inspection Two-person inspection

Fagan inspection simplified Author-inspector pair

reciprocal: mutually beneficial

Smaller scale program

Meetingless inspections Importance of preparation (indiv. insp.)

(most defects found during preparation) Empirical evidence 1-on-1 instead of team meetings

Page 12: Chapter 14: Inspection

Other Expanded Fagan Inspections Phased inspections

Expand Fagan inspection Multiple phases/meetings Each on a specific area/problem-type Dynamic team make-up

N-fold inspections N parallel inspections, 1 moderator Duplications => “cost“

Page 13: Chapter 14: Inspection

Informal Inspection Desk check (self conducted):

Should focus on conceptual problems Use tools for problems with syntax/spelling/format/etc.

Informal review (by others): Similar to desk check, but by others Benefit from independent/orthogonal view Group reviews for phase transitions

Walkthroughs: More organized, but still informal Leading role of author/moderator Less preparation by other participants than in inspection

Page 14: Chapter 14: Inspection

Formal Inspection: Code Reading Code reading

Focus on code Optional meetings

Code reading by stepwise abstraction Variation to code reading A formalized code reading technique Top-down decomposition and bottom-up abstraction Recent evidence of effectiveness Empirical support for the program comprehension

model Fig 14.2 (p.245)

Page 15: Chapter 14: Inspection

A program segment (left) and its permutation (right)

1. input (x);2. if (x > 0) then3. y x;4. else5. y -x;6. output (y);

1. y x;2. if (x > 0) then3. else4. output (y);5. y -x;6. input (x);

Page 16: Chapter 14: Inspection

Formal Inspection: ADR & Correctness Active design reviews (ADR)

Another formal inspection, for designs Inspector active vs. passive Author prepares questionnaires More than one meeting Scenario based (questionnaires) Overall ADR divided into small ones 2-4 persons (for each smaller ADR)

Inspection for program correctness Correctness (vs. questionnaire) of:

topology (decomposition, hierarchy) algebra (equivalence of refinements) invariance (variable relations) robustness (error handling)

Page 17: Chapter 14: Inspection

Extending Inspection: Analysis Inspection as analysis

Program/document/etc. analysis Inspection as statics analysis Testing as dynamic analysis

Other analyses Static: algorithm, decision table, boundary value,

control flow, data flow, etc. Dynamic: symbolic execution, simulation, prototyping,

timing, in-field execution, etc. Covered in SQE (various chapters), with pointers in

Section 14.3.5.

Page 18: Chapter 14: Inspection

Defect Detection Techniques Ad-hoc vs. systematic ones below Checklist-based inspection:

Similar to testing checklists (Ch.8). Basic types: artifact-/property-based.

Scenario-based inspection: Similar to usage-based testing. Scenarios ties multiple components. More a usage/external view.

Abstraction-based inspection: Similar to code reading with stepwise abstraction.

Page 19: Chapter 14: Inspection

Implementation and Effectiveness Implementation support:

Process and communication support Repository management tools Defect tracking and analysis as followup Still human intensive

Effectiveness studies Measurement: defect or effort Defect detection technique important Inspector skills/expertise also important Other factors, less than unanimous Many individual variations

Page 20: Chapter 14: Inspection

Summary Key advantages:

Wide applicability and early availability Complementary to testing & other QA Effective under many circumstances

Key limitations: Human intensive Dynamic/complex problems and interactions: Hard to

track/analyze. Hard to automate.

Comparison to other QA: Chapter 17.