Random testing

This is a form of black-box testing in which test cases are chosen at random or using a pseudo-randon algorithm. The aim is to show a cross-section of use as is to be expected at an operation level; this allows non-functional attributes such as reliabilty and performance to be tested.

Regression testing

Regression testing is any type of software testing which seeks to uncover software regressions. Such regressions occur whenever software functionality that was previously working correctly stops working as intended. Typically, regressions occur as an unintended consequence of program changes.

See also regression testing on Wikipedia.


In software terminology, a release specifically refers to version of a software application defined for a specific purpose - e.g. as a product or test release.

Cf. release management on Wikipedia.


Several performance attributes of software components or applications can be grouped together under the heading reliability. Reliability is the ability of a software application to keep up its performance level over a defined period of time.

Cf. reliability on Wikipedia.


In this context, a requirement describes a necessary capability or characteristic needed by the user to reach a certain goal, or to solve a defined problem.

Requirements-based testing

This is testing that results from defining test aims and conditions according to the requirements of the product. The aim is to be certain that specific requirements - both functional and non-functional (e.g. reliability, usability) are fulfilled.


This refers to a repeat of a test case which produced a fault or failure after work has been carried out ot remove the error. The aim is to test whether the corrective action was successful or not.


Refers to an evaluation of a sotware application or of a project stage with the aim of recognising deficiencies or discrepancies and highlighting areas for improvement.

The main types of review are:

Cf. Wikipedia on code reviews.

Reviewable (review-ready)

Once code has reached a certain stage of development - i.e. first draft partially or wholly complete - then it is reviewable or review-ready. Before this point, there is not much point in reviewing it due to its incomplete nature.


In this context, robustness is the degree to which a software application or component can function correctly running on invalid or defect input and/or under stressful environmental conditions.

Cf. robustness on Wikipedia.

Robustness testing

Approach to testing robustness .See Negative testing.


Description of the skills, qualifications and profiles required from staff during the software develoipement process.

When granting access to software programs, the term "role" or "use role" is in use.

See Wikipedia on role-oriented programming for more details.