Lecture 4-2

Formal Inspection; Git

CS 300 Lecture 4-2
Bart Massey

Inspection, Testing and Formal Methods

  • The three pillars of V&V

  • We will talk about testing soon

  • Formal Methods are mostly outside the scope of this course

    • I really want to talk about Z shortly
  • Inspection is the big deal


  • Several kinds: desk checking, code walkthroughs, Fagan Inspection

  • Get in the habit of desk checking all code before trying to use it for the first time

  • Do a Fagan Inspection of difficult or interesting code

Fagan Inspection

  • Due to M.E. Fagan

  • Goal: Remove defects in work product

  • Plan: Group examination of work product

Fagan Inspection Phases

  • Planning Phase: Prepare materials, invite participants, set meeting

  • Overview Phase: Brief participants on materials, assign roles

  • Preparation Phase: Participants individually review materials

  • Inspection Meeting

  • Rework Phase: Author deals with issues

  • Followup Phase: Moderator checks work

Inspection Meeting Construction

  • 4-6 people

    • Need enough people to handle roles
    • No management
  • Max 2 hours (even then, take a break)

  • Max 500 lines of work product

Inspection Meeting Organization

  • Role-based

    • Author: Person who wrote the work material

    • Passive unless asked direction questions

    • Reader: Reads the work material

    • Moderator: Runs the meeting

    • Reviewer: Raises issues

    • Recorder: Records issues

Inspection Meeting Conduct

  • Author: Sits and waits for questions

    • When questioned, responds briefly and to the point
  • Reader: Reads a line of work product when requested by the Moderator

  • Moderator: Enforces the meeting rules; sets the pace

  • Reviewer: After each line of work product is read, says "stop" if issue is noted, then gives the issue

    • No attempt is made to correct the issue
    • Discussion should be limited to making sure the issue is recorded correctly
    • When in doubt, an issue is recorded
  • Recorder: Records issues on a standard form


  • Author disposes of each issue as they see fit

    • Root cause analysis and propagation happens here
    • It is still the author's work product
  • Moderator checks author's work

  • Issues are archived, and post-correction steps are taken

    • Regression tests are written
    • Mitigation measures are decided


  • DVCS concepts

  • Repo setup

  • Commits

  • Remotes

    • Push, Pull
  • Branching

  • Merging

  • Rebasing


  • Accounts

  • Services

    • Repo storage
    • Issue tracker
    • Wiki
    • Email list
    • etc
  • SSH keys

Last modified: Tuesday, 20 October 2015, 10:43 PM