Motivation BNR results Russell, IEEE Software, 1991 2.5 million lines of code inspected on average, one fault found per person-hour invested 2-4 times as effective as testing on average 4.5 person-days to fix a failure reported from the field standard practice at many other companies IBM, AT&T, Tandem a career skill at your next interview, mention that you have code inspection skills Roles Moderator controls the meetings ensures conduct is focused and professional Reader paraphrases the code or documentation Recorder records any faults found Others designer, implementor, tester Procedure For a code inspection 1. Overview overview of code to be inspected 2. Preparation each team member studies the code 3. Inspection meeting reader paraphrases the code other inspectors listen and speak up only if they see a fault as soon as a fault is identified and recorded, move on to the next block of code 4. Rework remove any faults found 5. Follow-up moderator ensures that the rework has been done if more than 10% of the code is faulty run the entire inspection procedure again Inspection focus just paraphrasing: what most readers do frequently no detailed, written specifications are available so reader paraphrases line-by-line, starting with line 1 and continuing to the end other inspectors speak up when they hear something that seems wrong specialized roles for inspectors to focus on commonly occuring problems, such as: coding conventions common failures standard techniques portability in one case, one inspector focused solely on macros CSC 265 focus we do have specifications and so can inspect for "correctness wrt the specification" correctness of exported functions with respect to module interface specifications correctness of local functions with respect to header comments