This is a term used to describe a group of characterstics of a software application (e.g. performance, reaction speed, memory usage) in terms of performance and materials used (hardware, harddisk memory, CPU) under defined conditions.

Generally, efficiency is dependent on the burden placed on the system. Efficiency is therefore used to show how economically a software application or algorhythm employs the resources available to it.

Cf. algorhythmic efficiency on Wikipedia.

Equivalence class

Also known as an equivalence partition, this is the proportion of the input into or output out of a test object which is assumed to behave in the same way as a single domain.

The domains concerned are referred to as input equivalence class or output equivalance class of output domains; both valid and invalid data must be considered.

Equivalence classification

This is the way of dividing and classifying input and output data into a limited number of classes in which the elements contained have identical functional behaviour.


In programming, an error refers specifically to human action that produces an incorrect or unexpected system result. Different aspects of this definition are as follow:

  • Action on the part of a software developer which leads to a fault in the software - i.e. a programming error.
  • A user who operates the software in such a way as to produce an unwelcome result - i.e. usage error.
  • An action or omission (either deliberate or accidental) which leads to the desired software functionality being impaired.

See the Wikipedia articles on software bugs and lusers for further discussion of this topic.

Error/fault tolerance

Error tolerance is about how a software application functions when erroneous inputs are entered, either by users or through incorrect signals and stimuli - the crux is whether the software can keep the required performance level (this is also known as robustness.

Furthermore, error tolerance shows how or whether a software keeps up a pre-defined performance level in the face of faults from within the system itself. This is termed reliability.

Cf. Fault-tolerant system in Wikipedia.

Error guessing

In this approach to test design, cases are designed and selected based on the experience and knowledge of the tester, often a testing manager.

This is a form of black box testing (cf. Wikipedia).

Exception handling

This describes the response of a software system to erroneous input, either resulting from a human user, another component or an internal failure.

Cf. exception handling in Wikipedia.

Exhaustive testing

In this form of testing, all combinations of all input values along with all possible preconditions are exectued.

This kind of testing is, due to the high level of effort it requires, only rarely implemented.

Exploratory testing

In this approach to testing, the tester continues to develop the test cases during testing; he or she then designs further test cases and improves existing ones based on the results gained during testing.

External failure

This is when a failure passes through testing and is then received by the end user.

Extreme programming (XP)

This is method of developing software that aims to meet and respond to customer requirements by taking small steps.

See Wikipedia for a good discussion of extreme programming as well as criticism of it as a method.