Verification and Validation (p. 272)

Validation


Aims to ensure that the software meets the needs of customers and other stakeholders.

Are we building the right thing?

  • Sample validation methods:
    • requirements reviews
    • prototyping
    • validation of analysis models
    • acceptance testing

Verification


Aims to ensure that the software complies with the existing requirements, specifications, or regulations.

Are we building it correctly?

  • Sample verification methods:

    • reviews
    • walkthroughs
    • inspections
    • testing
    • static code analysis
    • theorem proving
    • model checking
  • Validation often involves acceptance and suitability with external customers while verification is an internal process.

  • Software testing may address both verification and validation issues

    • validation
      • checks the observed results of test cases against the customer's needs
        • acceptance testing
    • verification
      • checks the observed results against
        • a specification (postcondition of a method)
        • the desirable and undesirable behavior from implicit requirements or expectations