Types of test

There are many different tests that can be carried out.

Validation and verification tests

Validation tests make sure that the system only allows 'sensible' data to be entered. Unless the input data is sensible, the computer could crash or produce results that don't make sense.

Verification tests clarify that the program is working as intended and is producing the outputs that were expected. This will be based on criteria set out in the first stage of the development cycle.

Functional and non-functional tests

Functional tests look at a specific function within the program. The purpose of a functional test is to see if all of the system or units work in the way that a user would expect them to work. It involves checking against a list of the functions the software was designed to perform (a specification) and to see if it does what it was intended to do.

Non-functional tests look at the bigger picture of how a program performs. For example, a program might perform as expected (functional) with one user, but then crash unexpectedly if multiple users use it (non-functional).

Typical non-functional tests include:

  • load test - testing how well the system performs if accessed by many users at the same time
  • volume test - testing to check whether they can withstand large amounts of data
  • performance test - testing how quickly the software can perform tasks or testing over very long periods of time
  • security test - testing for unauthorised access