quality assurance

Complete

Concept

Quality Assurance

  • ensuring that the software has the required levels of quality
  • testing
  • QA = Validation + Verification

Validation

  • are you building the right system?
  • are the requirements correct?

Verification

  • are you building the system right?
  • are the requirements implemented correctly

Code Reviews

  • systematic examination of code
  • find where improvements can be made
  • methods:
    • PR reviews
    • pair programming
    • formal inspection
  • pros:
  • cons:
    • error prone - manul process

Static Analysis

  • analysis of code without actually executing it
  • identify unused variables, unhandled exceptions, style errors and stats
  • linters - clean up code style

Formal Verification

  • using mathematical techniques to prove correctness of a program
  • prove the absence of errors, whereas testing can only prove the presence of errors
  • expensive to administer - only used in safety critical software