Professional Documents
Culture Documents
Chapter 16 Notes
Chapter 16 Notes
Chapter 16 Notes
Defects and faults are synonymous in the context of the software process, referring to
quality problems discovered after software release.
A clear distinction is made between "errors" (quality problems found before release) and
"defects" (quality problems found post-release) in this book.
The goal of software quality control is to remove quality problems, with a focus on
eliminating defects.
Errors and defects have di erent economic, business, psychological, and human
impacts.
The software engineering community generally considers defects, errors, faults, and
bugs to be synonymous, regardless of when they are discovered.
Recognizing when a problem is discovered matters, and e orts should be made to find
problems before customers and end users encounter them.
This book primarily focuses on technical or peer reviews, including casual reviews,
walkthroughs, and inspections.
Technical reviews (TRs) are the most e ective quality control filter conducted by
software engineers and stakeholders for all project team members.
TRs are essential for finding errors early and improving software quality.
Design activities introduce a significant number of errors and defects in the software
process.
Review techniques can be highly e ective in uncovering design flaws, reducing the cost
of subsequent activities.
The time spent on reviews is generally less than the time required to rewrite bad code,
making reviews a cost-e ective quality control measure.
As development progresses, the cost of finding and fixing errors increases, especially
when defects are propagated.
Detecting and correcting a single error early in the process is more cost-e ective than
addressing multiple errors downstream.
To ensure software quality, various actions are required in software engineering, each
involving dedicated human e ort.
With finite project e ort, organizations should assess the e ectiveness of these actions
by defining metrics.
Several metrics can be collected for technical reviews, o ering insights into their
e icacy:
Preparation e ort (Ep): E ort required to review a work product before the actual
review.
Rework e ort (Er): E ort dedicated to correcting errors uncovered during the
review.
Review e ort (Ereview): The sum of e ort measures for reviews (Ep + Ea + Er).
Work product size (WPS): A measure of the size of the reviewed work product.
Total errors found (Errtot): The sum of errors found (Errminor + Errmajor).
Error density: Represents errors found per unit of work product reviewed (Errtot /
WPS).
These metrics help assess the e ectiveness of reviews and provide cost-benefit
insights.
Review metrics data can be collected across many projects, allowing for the estimation
of errors to be found in new documents before review.
E ectiveness and cost benefits of reviews are typically assessed after they have been
conducted, metrics collected, and downstream quality measured through testing.
Technical reviews are categorized as formal or informal based on their level of formality.
They include activities like desk checks with colleagues or informal meetings.
Checklists can be used to guide informal reviews and help reviewers focus on important
aspects.
FTRs are structured and comprehensive review meetings with specific roles and
preparation.
The review meeting is attended by the review leader, all reviewers, and the producer.
A review summary report and issues list are completed after the review.
PMEs are used to assess projects after completion, focusing on lessons learned.
PME documents are considered valuable for the project's historical record.
Agile development includes both informal and formal reviews at various stages.
The sprint review meeting is a formal review with the product owner.
The sprint retrospective is similar to a project postmortem meeting for lessons learned.
These sections cover the classification of reviews, emphasizing the importance of planning,
preparation, and structured meetings in FTRs. It also highlights the relevance of informal
reviews and agile practices like Scrum in the software development process.