1 / 51

Reviews and Inspections

Reviews and Inspections. Software Testing and Verification Lecture 13. Prepared by Stephen M. Thebaut, Ph.D. University of Florida. Required Readings. D. Gause and G. Weinberg, “Making Meetings Work for Everybody,” Exploring Requirements: Quality Before Design , Dorset House, 1989.

Download Presentation

Reviews and Inspections

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reviews and Inspections Software Testing and Verification Lecture 13 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

  2. Required Readings • D. Gause and G. Weinberg, “Making Meetings Work for Everybody,” Exploring Requirements: Quality Before Design, Dorset House, 1989. • M. Fagan, “Design and Code Inspections to Reduce Errors in Program Development,” IBM Systems Journal, Vol. 15, No. 3, July 1976. (cont’d)

  3. Required Readings (cont’d) • B. Grady and T. Van Slack, “Key Lessons in Achieving Widespread Inspection Use,”IEEE Software, July, 1994. • Sauer, et al., “The Effectiveness of Software Development Technical Reviews: A Behaviorally Motivated Program of Research,” IEEE TSE, Vol. 26, No. 1, 2000.

  4. About Meetings • “Reviews and Inspections” are a form of human-based testing that involves people working together cooperatively. • Thus, we begin with a few basic axioms (ala Gause and Weinberg) regardingmeetings…

  5. D. Gause and G. Weinberg, “Making Meetings Work for Everybody,” Exploring Requirements: Quality Before Design, Dorset House, 1989.

  6. Meetings can be terrible... • Ever been to a really BAD meeting? • Meetings as measurements: If your meetings are terrible, then your entire process is probably sick. • In order for meetings to be effective, they need to be made safe…

  7. Safe to attend... • Establish a no-interruption policy, but also set time limitsfor individual speakers so that everyone will be able to participate. • Outlaw personal attacksand put-downs. • Finish on time, but schedule a continuation of the meeting if business isn’t finished. • Use a related issues listand ensure follow-upfor important off-topic matters that come up.

  8. And safe NOT to attend... • To remove uncertainty about what will be covered, publish an agenda and stick to it. • Handle “emergency issues”in a way that will not hurt people who were not invited. • Be sure people who shouldattendare identified and explicitly invitedin advance. • Gently confront those present who should not attendimmediately but unobtrusively – preferably before the meeting starts.

  9. Other Meeting Axioms • Meetings should be as small as possible, but no smaller. • Keep the agenda short. (A meeting that tries to do too many things does none well.) • Design meetings to have the appropriate structure and pace. • Identify someone to act asafacilitator. • Be prepared!(95% of meetings that fail do so because of inadequate preparation.)

  10. M. Fagan, “Design and Code Inspections to Reduce Errors in Program Development,” IBM Systems Journal, Vol. 15, No. 3, July 1976.

  11. What are Reviews & Inspections? • Involve people examining a work-product / document (requirements, user manuals, design, test plan, test cases, source code, etc.) with the aimof discovering anomalies and defects. • More formal than walkthroughs or desk-checking • Can be more effective than (machine-based) testing after system implemen-tation. (As demonstrated in many studies.)

  12. Quotes and Notes from Fagan’s Paper • “An ingredient (of inspections) that gives max-imum play to the planning, measurement, and control elements (of software development) is consistent and vigorous discipline.” • “...finding errors by inspection and reworking them earlier in the process reduces the overall rework time and increases productivity…” (cont’d)

  13. Quotes and Notes from Fagan’s Paper (cont’d) • “…we first describe…places at which inspections are important. Then we discuss factors that affect productivity and the operations involved with inspections. Finally, we compare inspections and walk-throughs…”

  14. Proposed Inspection Types and Levels • Product • I0: component level design • I1: unit level design (“design complete”) • I2: code inspection • Test • IT1: test plans • IT2: test cases • Publications • PI0 - PI2

  15. Update on Inspection Types and Levels • In addition to those originally proposed by Fagan, IBM now undertakes the following inspections: • DR1- DR3inspections on requirements, product-level design, and system-level design, and • IT1/2inspections expanded to unit, component, product, and system testing levels.

  16. Code Inspections – the People Involved • Moderator: • the key person; the coach • technically competent, but preferably someone working on a different project • Trained and experienced in facilitation • Designer • Coder/Implementer (author/owner) • Tester

  17. I1 (“Design Complete”) Inspection Process • Overview (whole team) • Preparation (individual) using… • ranked distributions of error types • checklists of clues on finding errors (cont’d)

  18. I1 (“Design Complete”) Inspection Process (cont’d) • Inspection (whole team) • a “reader” is chosen by the moderator† • every element of logic and every branch is considered • objective is to find errors; no specific solution hunting is permitted • moderator prepares written report within one day †Which team member should NOT assume this role? (cont’d)

  19. I1 (“Design Complete”) Inspection Process (cont’d) • Rework (owner) • Follow-up (moderator) • if > 5% of material has been reworked, the entire element is re-inspected

  20. Other Considerations/Observations • “...people have to be taught or prompted to find errors effectively.” • (inspection results) “...should not under any circumstances be used for programmer performance appraisal.” • (acceptance of inspections) “...is related to the success of the inspections (people) have experienced, the conduct of the trained moderator, and the attitude demonstrated by management.” (cont’d)

  21. Other Considerations/Observations (cont’d) • “The most marked effect of inspections on the development process is to change the old adage that design is not complete until testing is completed…” • “...in one case...approximately two thirds of all errors reported during development (were) found by...inspections...”

  22. Inspections versus Walkthroughs: “Comparison of Key Properties”

  23. Inspections versus Walkthroughs: “Comparison of Key Properties”

  24. Inspections versus Walkthroughs: “Comparison of Key Properties”

  25. Inspections versus Walkthroughs: “Comparison of Key Properties”

  26. Inspections versus Walkthroughs: “Comparison of Key Properties”

  27. Inspections versus Walkthroughs: “Comparison of Key Properties”

  28. Inspections versus Walkthroughs: “Comparison of Key Properties”

  29. Inspecting Modified Code • “Since most modifications are small...they are often erroneously regarded as trivially simple and handled accordingly; ...In the author’s opinion, all modifications are well worth inspecting...” • “Human tendency is to consider the ‘fix,’ or correction, to a problem to be error-free itself. ...The number of bad fixes can be...reduced by some simple inspection after clean compilation of the fix.”

  30. B. Grady and T. Van Slack, “Key Lessons in Achieving Widespread Inspection Use,”IEEE Software, July, 1994.

  31. Notes from the Grady and Van Slack Paper • On the value of Inspections: • ROI: some can achieve 100:1; based on HP data, you can expect10:1. • “We estimate that roughly 1/3 of all HP software costs are rework, and inspections can save 60% of these costs.” • Lessons at HP suggest inspections are appropriate for ALL software development organizations.

  32. Influences on Inspections at HP • History of hardware reviews (first software reviews were walk-throughs) • Fagan’s “very influential” paper which introduced the term “software inspection.” • Tom Gilb’s 1988 SE Manamement book • focus on EARLY life-cycle artifacts • measures of the inspection process itself • use of these measures for process improvement

  33. HP’s Inspection Process • Focus on software “documents” as opposed to code • Goal: to ensure that documents are clear, self-explanatory, correct, and consistent with all related documents • Five roles: inspectors, scribe, owner, moderator, chief moderator (process owner and champion)

  34. HP’s Inspection Process (cont’d) • Seven steps: • planning (moderator and owner plan inspection and create packet) • kickoff (brief team meeting) • preparation (individuals find issues) • logging meeting (team meets to find and log issues) (cont’d)

  35. HP’s Inspection Process (cont’d) • Seven steps: • planning (moderator and owner plan inspection and create packet) • kickoff (brief team meeting) • preparation (individuals find issues)* • logging meeting (team meets to find and log issues)* * cf. Fagan’s description of these steps. (cont’d)

  36. HP’s Inspection Process (cont’d) • Seven steps: (cont’d) • cause/prevention (brainstorm causes and recommendations) • rework (verify and fix defects) • follow-up (moderator)

  37. HP’s Inspection Process (cont’d) • Seven steps: (cont’d) • cause/prevention (brainstorm causes and recommendations)* • rework (verify and fix defects) • follow-up (moderator) * “The process step that varies the most…” Why?

  38. Technology Transfer Lessons • Importance of communicating successes • Clearly defining who is responsible for process improvement • A high-level, compelling vision (shape-up or else...) • Readily available training (including MANAGEMENT training) (cont’d)

  39. Technology Transfer Lessons (cont’d) • Consulting to create an environment for success BEFORE training is begun • adapt the objectives/process as needed • find a chief moderator/champion • benchmark the current process • follow-up to ensure success

  40. Sauer, et al., “The Effectiveness of Software Development Technical Reviews: A Behaviorally Motivated Program of Research,” IEEE TSE, Vol. 26, No. 1, 2000.

  41. Questions Posed by Sauer, et al., Regarding Technical Reviews • What makes reviews effective at defect detection? • How can weimprove review performance within the current review design? • What design alternatives would theory predict to be more effective? Approach: applying behavioral theory of group performance

  42. Controversy Regarding the Inspection / Logging Meeting “…20 years after Fagan’s seminal paper, debate continues over whether a key component of inspections, the group meeting, is necessary for defect detection because it is not clear whether, in the context of a process in which individual preparation focuses on defect detection,significant numbers of defects are discovered through reviewers interacting (synergy).”

  43. Results from the Behavioral Theory of Group Performance Suggest: • Increasing inspectors’ defect detection expertise (e.g., through appropriate selection an/or training) should have the largest impact on performance. • The interacting group meeting does not improve performance in discovering new defects. (cont’d)

  44. Results from the Behavioral Theory of Group Performance Suggest: (cont’d) • The performance advantage of an interacting group is a function of the level of false positives discovered by individuals. • An expert pair performs the discrimination task (identifying false positives) as well as any larger group. • Above a critical limit, performance declines with group size.

  45. Implications for Practice • Under current review designs, performance may be improved by: • selecting better reviewers, • providing (better) training, • fine-tuning the size of reviews, and • providing aids to expertise (e.g., error checklists). (cont’d)

  46. Implications for Practice (cont’d) • Using alternative designs, performance may be improved by separating the tasks of defect collection and defect discrimination. • Managing Reviews: past view that review performance should be collective, not individualistic, should change. Individuals’ review performance shouldbe assessed in staff appraisals.

  47. Reviews and Inspections Summary

  48. Reviews and Inspections Summary • Disciplined, human-based testing (e.g., inspections) can be very effective. • Human-based testing is applicable to code, design, requirements, testware, publications, etc. • The exclusive objective of inspections should be defect detection. (cont’d)

  49. Summary (cont’d) • Inspection results are useful for process tracking and improvement. • Performance may be improved by increasing expertise and fine-tuning group size. • Separating the tasks of defect collection and defect discrimination may be a useful design alternative for reviews. (cont’d)

  50. Summary (cont’d) • Inspection results should never be used in programmer performance appraisals... • Individuals’ review performance shouldbe assessed in staff appraisals... (Can you reconcile these two statements?)

More Related