Software verification

This is an old revision of this page, as edited by Fdiotalevi (talk | contribs) at 05:54, 18 June 2004. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Software verification is a broad and complex discipline of software engineering. The goal of software verification is to assure that a software fully satisfies all requirements expressed by a customer.

There are two main types of verification:

  • Dynamic verification, also known as Test
  • Static verification, also known as Analysis

Dynamic verification (Test)

Dynamic verification is performed during the execution of a software, and dynamically checks its behaviour; it is commonly known as Test phase. Depending on the scope of tests, we can categorize them in three families:

  • Test in the small: a test that check a single funtion or class (Unit test)
  • Test in the large: a test that check a group of classes, such as
    • Module test (a single module)
    • Integration test (more than one module)
    • System test (the entire system)
  • Acceptance test: a formal test defined to check acceptance criteria for a software
    • Functional test
    • Non functional test (performance, stress test)

Static verification (Analysis)

Static verification is a process to check some requirements of a software doing a physical inspection of it. For example: