Reviews, Walkthroughs & Inspections: 1. Formal Definitions Quality Control (QC)
Reviews, Walkthroughs & Inspections: 1. Formal Definitions Quality Control (QC)
1. Formal Definitions
A set of techniques designed to verify and validate the quality of work products and observe whether
requirements are met.
Software Element
Every deliverable or in-process document produced or acquired during the Software Development Life
Cycle (SDLC) is a software element.
Static Testing
Dynamic Testing
The benefit is clear once you think about it. If you can find a problem in the requirements before it turns
into a problem in the system that will save time and money. The following statistics would be mind
boggling.
M.E. Fagan "Design and Code Inspections to Reduce Errors in Program Development", IBM Systems
Journal, March 1976.
Systems Product
Applications Product
82% of all the defects found during inspection of design and code
A.F. Ackerman, L. Buchwald, and F. Lewski, "Software Inspections: An Effective Verification Process," IEEE
Software, May 1989.
Operating System
Marilyn Bush, "Improving Software Quality: The Use of Formal Inspections at the Jet Propulsion
Laboratory", Proceedings of the 12th
International Conference on Software Engineering, pages 196-199, IEEE Computer Society Press, Nice,
France, March 1990.
The following diagram of Fagan (Advances in Inspections, IEEE Transactions on Software Engineering)
captures the importance of Static Testing. The lesson learned could be summarized in one sentence -
Spend a little extra earlier or spend much more later.
The statistics, the above stories and Fagan’s diagram emphasizes the need for Static Testing. It is
appropriate to state that not all static testing involves people sitting at a table looking at a document.
Sometimes automated tools can help. For C programmers, the lint program can help find potential bugs in
programs. Java programmers can use tools like the JTest product to check their programs against a
coding standard.
To get value from static testing, we have to start at the right time. For example, reviewing the
requirements after the programmers have finished coding the entire system may help testers design test
cases. However, the significant return on the static testing investment is no longer available, as testers
can't prevent bugs in code that's already written. For optimal returns, a static testing should happen as
soon as possible after the item to be tested has been created, while the assumptions and inspirations
remain fresh in the creator's mind and none of the errors in the item have caused negative consequences
in downstream processes. Effective reviews involve the right people. Business domain experts must attend
requirements reviews, system architects must attend design reviews, and expert programmers must
attend code reviews. As testers, we can also be valuable participants, because we're good at spotting
inconsistencies, vagueness, missing details, and the like. However, testers who attend review meetings do
need to bring sufficient knowledge of the business domain, system architecture, and programming to each
review. And everyone who attends a review, walkthrough or inspection should understand the basic
ground rules of such events.
The following diagram of Somerville (Software Engineering 6th Edition) communicates, where Static
Testing starts.
3. Reviews
• Reviews
• Walkthroughs
• Inspections
What is Reviews?
A meeting at which the software element is presented to project personnel, managers, users, customers
or other interested parties for comment or approval. The software element can be Project Plans, URS,
SRS, Design Documents, code, Test Plans, User Manual.
To ensure that:
Reviews - Input
Reviews Meeting
Reviews - Outputs
4. Walkthrough
Walkthrough Definition
A technique in which a designer or programmer leads the members of the development team and other
interested parties through the segment of the documentation or code and the participants ask questions
and make comments about possible errors, violation of standards and other problems.
Walkthrough - Objectives
• To find defects
• To consider alternative implementations
• To ensure compliance to standards & specifications
Walkthrough Input
• A statement of objectives
• The software element for examination
• Standards for the development of the software
• Distribution of materials to the team members, before the meeting
• Team members shall examine and come prepared for the meeting
• Check list for defects
Walkthrough- Meeting
5. Inspection
Inspection Definition
A visual examination of software element to detect errors, violations of development standards and other
problems. An inspection is very rigorous and the inspectors are trained in inspection techniques.
Determination of remedial or investigative action for a defect is a mandatory element of a software
inspection, although the solution should not be determined in the inspection meeting.
Inspection Objectives
• To verify that the software element satisfies the specifications & conforms to applicable standards
• To identify deviations
• To collect software engineering data like defect and effort
• To improve the checklists, as a spin-off
Inspection Input
Inspection Meeting
• Introducing the participants and describing their role (by the Moderator)
• Presentation of the software element by non - author
• Inspectors raise questions to expose the defects
• Recording defects - a defect list details the location, description and severity of the defect
• Reviewing the defect list - specific questions to ensure completeness and accuracy
• Making exit decision
Inspection - Output
Objectives:
Group Dynamics:
Material Volume:
Presenter
7. Advantages
Fault Density
(Number of faults found during inspection) / (Total number of faults during development)
Maintenance Vs Inspection
"Number of corrections during the first six months of operational phase" and "Number of defects found in
inspections" for different projects of comparable size
Communication Factors
Being aware of, and correcting any conditions, either physical or emotional, that are draining off the
participants attention, shall ensure that the meeting is fruitful i.e. Maximum number of defects is found
during the early stages of software development life cycle.