This comes in two varieties:

  • Static analyses of code
  • Executing the code

Note

  • Static analysis uses knowledge of the system, its domain, and the technologies used to discover problems
  • The advantages here are:
    • Cascading errors due to dynamically running code can obfuscate test results (dynamic code execution causes this). Late errors could be new or cascading.
    • Tests require an executable version of the system while inspections do not.
    • Inspections uncover inefficiencies and style issues
    • Inspections are a form of knowledge sharing and collaborative problem solving