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

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

Testing and Quality Assurance
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
Chapter 4 Quality Assurance in Context
Static Technique. Static Technique - Review  A way of testing software work products  Program code, requirement spec., design spec.  Test plan, test.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
1 Software Testing and Quality Assurance Lecture 2 Software Verification & Validation.
Software Testing and Quality Assurance
Overview Lesson 10,11 - Software Quality Assurance
Lecture 13 Revision IMS Systems Analysis and Design.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
SE 555 Software Requirements & Specification Requirements Validation.
Software Testing and Quality Assurance: Introduction and Terminology
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Verification and Validation
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
Chapter 13: Defect Prevention & Process Improvement
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Inspections and Walkthroughs By. Adnan khan.
Ch.4: QA in Context  QA and the overall development context Defect handling/resolution How alternative QA activities fit in process Alternative perspectives:
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
CLEANROOM SOFTWARE ENGINEERING.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Lecture 16 Formal Technical Reviews (FTRs) (also know as inspections) FOR0383 Software Quality Assurance 9/19/20151Dr Andy Brooks Don´t review in your.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Chapter 6: Testing Overview Basic idea of testing - execute software and observe its behavior or outcome. If failure is observed, analyze execution record.
Phil Cronin Anne Hill Allen Schones CIS841 Summer on Campus 1998 IN-PROCESS INSPECTIONS FOR OBJECT ORIENTED DESIGNS.
- Component Inspection. -Usability Testing. -Unit Testing. -System Testing.
Week 2 Quality Assurance Quality Assurance in Context
Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Using Human Component Mapping TO ANALYSE & INTEGRATE HUMAN FACTORS ISSUES & RECORDS WITH RAILWAY HAZARD LOGS 1 Dr. Amanda C. Elliott, Simon Macmull & Harry.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Formal Technical Reviews Matt Graham 18 November 2004 EECS 814 University of Kansas.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Quality Assurance.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Unit III Static Testing. static testing Testing of a component or system at requirements or implementation level without execution of any software, e.g.,
INFO 637Lecture #71 Software Engineering Process II Product Implementation INFO 637 Glenn Booker.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Inspection and Review The main objective of an Inspection or a Review is to detect defects. This activity and procedure was first formalized by Mike Fagan.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Software Engineering Lecture 8: Quality Assurance.
Advances In Software Inspection
Testing and Debugging. Testing Fundamentals  Test as you develop Easier to find bugs early rather than later Prototyping helps identify problems early.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
Peer Review Presented by : Basker George. Peer ( 同等的人 ) Review( 回顾 ) During the development of software, defects are inevitably ( 不可避免 ) injected. Defect.
VERIFICATION AND VALIDATION TECHNIQUES. The goals of verification and validation activities are to assess and improve the quality of the work products.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Static and Integration Testing. Static Testing vs Dynamic Testing  To find defects  This testing includes verification process  without executing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
1 Software Testing and Quality Assurance Motivation and Review of Software Verification & Validation (2)
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Engineering (CSI 321)
Software Quality Engineering
Verification and Validation
Chapter 14: Inspection Basic Concept and Generic Process
Software Quality Assurance
QA Reviews Lecture # 6.
Testing, Inspection, Walkthrough
Chapter 10: Testing and Quality Assurance
Presentation transcript:

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.  Defect containment: Fault tolerance and failure containment (safety assurance).

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. 

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?

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)

Fagan Inspection 1. 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

Fagan Inspection 3. 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

Fagan Inspection 5. 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

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

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

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

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“

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

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)

A program segment (left) and its permutation (right) 1. input (x); 2. if (x > 0) then 3. y  x; 4. else 5. y  -x; 6. output (y); 1. y  x; 2. if (x > 0) then 3. else 4. output (y); 5. y  -x; 6. input (x);

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)

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

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.

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

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.