Software Engineering Principles and Practices / Software Quality Assurance

Reviews and Audit

In Software Engineering, Reviews and Audits are the primary "Quality Gatekeepers." While they both involve examining the software, they serve different purposes: Reviews are technical and focus on finding defects in the code or design, while Audits are administrative and focus on ensuring the team is following the correct processes.


🏛️ Software Reviews

A review is a meeting or process where a work product (Requirements, Design, Code, or Test Plan) is examined by one or more people to find errors or improvements.

Types of Reviews:

  1. Formal Technical Review (FTR) / Inspection:

    • The most rigorous type. It follows a strict process with defined roles (Moderator, Reader, Recorder).

    • Goal: To uncover errors in logic, function, or implementation before they reach the testing phase.

  2. Walkthrough:

    • The author of the work product "walks" the team through the document or code.

    • Goal: To explain the logic and gather informal feedback.

  3. Peer Review (Desk Check):

    • A casual check where one developer looks at another’s code. In modern DevOps, this is usually done via Pull Requests.


📜 Software Audits

An audit is an independent evaluation of software products or processes to verify compliance with standards, guidelines, or contractual agreements.

  • Who performs it? Usually an external team or an internal "Quality Assurance" department (not the developers).

  • What is checked? "Are we following the SRS?" "Are we using the approved coding standards?" "Is the documentation up to date?"

Two Key Audit Types in SCM:

  1. Functional Configuration Audit (FCA): Verifies that the software actually performs all the functions defined in the Requirements (SRS).

  2. Physical Configuration Audit (PCA): Verifies that the software and documentation are complete and ready for delivery to the customer.


📊 Reviews vs. Audits: The Key Differences

Feature

Reviews

Audits

Primary Goal

Finding technical bugs/defects.

Ensuring process compliance.

Participants

The project team (Peers).

Independent evaluators/QA.

Focus

The "Internal" logic and quality.

The "External" standards and rules.

Timing

Frequent (e.g., after every module).

Occasional (e.g., at the end of a milestone).


🏗️ The "Review Meeting" Rules

To keep reviews productive and avoid "team friction," the industry follows these standard rules:

  • Review the product, not the person: Don't get personal; focus on the code.

  • Limit the time: Meetings should rarely exceed 2 hours to avoid "Review Fatigue."

  • Keep it small: 3 to 5 people is the "sweet spot" for finding errors.

  • Take notes: A "Recorder" must track every issue found so it can be fixed later.


💡 Why do we do this?

Studies show that Reviews can find up to 60-90% of errors in a software product. It is significantly cheaper to find a logic error during a design review than to find it during system testing when the code is already written.