I want to apply an integrity test to a software by giving it input which is based on its output of a previous calculation. If the new output is then again the same as the previous output, the software has passed this check.

Is there an English term that describes this kind of test? Integrity test? Self-consistency test? Or more on the technicality of the test something like feedback test?

EDIT: It is a scientific model fitting software, where the result is a best-fit model, and the input an observation. So I simulate an observation of the best-fit model and put that back into the fitting software. Then I want to see if the result is the same as the previous best-fit model. If the test fails, the results might e.g. 'drift-off' (if the model would be the percentage of male vs female students, feeding an observation from the last result might increase the percentage of males, and an observation of that fed back into the software might increase the percentage further).

I realize from the answers and comments that this test might not have a common/well-known English name, so I might ask on statistic or software QA. Fixed point test seems to be the term that describes best what I'm looking for.

However, some answers are clearly not what I was looking for:

regression testing does not refer to giving a (modified) result back as input, but just to compare archived results with current results.

recursion seems to apply an algorithm, not a test. Also, in recursion algorithms, the idea is mostly that the result changes over time.

  • You wouldn't happen to be implementing - and, of course, testing - a compiler?
    – doppelfish
    Mar 24 '12 at 14:14
  • No, its more like a scientific model fitting software, where the result is a best-fit model, and the input an observation. So I simulate an observation of the best-fit model and put that back into the fitting software. Then I want to see if the result is the same as the previous best-fit model.
    – xubuntix
    Mar 24 '12 at 14:20
  • 1 - "apply...to some software (or a program)" not "apply on....a software", 2 - Is this a statistical procedure? If so, statistics.SE would know better; it is statistical jargon, not general language or even programming.
    – Mitch
    Mar 24 '12 at 17:54
  • Is this for numerical software? Is the input an approximation, which the algorithm then makes better (so you can repeatedly submit the output as input)? The test of when to stop this process is a convergence test.
    – Mitch
    Mar 24 '12 at 17:57
  • 1
    There is a wide variety of answers, each of which is consistent with the question, but none of which is consistent with another. I think this indicates that the question is poorly worded and incomplete.
    – amcnabb
    Mar 24 '12 at 19:18

I don't think this type of test is common enough to have its own name. My best suggestion is to call it a "fixed point test." This is not a well-known type of test, but "fixed point" is a term from mathematics that means "a point that is mapped to itself by the function." In other words, a point x for which f(x) = x.


The term "fixed point" is well known in mathematics, but "fixed point test" isn't common, so this name (or any other) should always be accompanied by a clear description.

  • The Fixed Point Theorem only holds for continuous transformations, though. Mar 24 '12 at 15:49
  • 2
    While theorems that guarantee fixed points may typically apply to continuous transformations only, almost any transformation can have fixed points, regardless of continuity. (Of course some functions never do, eg derangements.) Mar 24 '12 at 16:03
  • 1
    The problem with using fixed point here is that especially in the context of computers, fixed point is used to refer to a number representation format where the location of the decimal point is 'fixed' and not allowed to float as in 'floating point'. I would advise avoiding this unnecessary overloading of names.
    – Jim
    Mar 24 '12 at 17:39
  • @Jim: your advice about overloading might be a little late for the communities involved that meet in the situation described: those concerned with numerical computing use 'fixed point' for computer representation of numbers; those concerned with the mathematical properties of functions have numerous 'fixed point' theorems surrounding amcnabb's answer, a common mathematical situation.
    – Mitch
    Mar 24 '12 at 23:26
  • @Mitch: you misunderstand my point. I am aware that each community uses 'fixed point' in their own way. I was advising that xubuntix not 'mix' the two by using 'fixed point' in a mathematical sense in his computer programming context.
    – Jim
    Mar 24 '12 at 23:35

If you are testing that current results match up with previously-achieved results, that is known as regression testing.

It seems unlikely to me that you are looking for a fixed point as mentioned in a previous answer, and also unlikely that you are testing if the function is idempotent, or that you are just running a loopback test.

  • Testing a function that should be idempotent to see if it is fact idempotent by giving it back its own output and ensuring it doesn't change it further is an idempotence test. It is used for things like optimizers that should return an unoptimizable result so further passes should do nothing. Mar 25 '12 at 4:13

Recursion is a usual term for feeding output back as input, though since it's modified, you could call it a Modified Recursive test, which sounds appropriately impressive.

Or, if you're designing for psychologists, and the data are modified by later observation, instead of algorithm, then you can call it Bayesian testing.


In statistics, this would be a measure of test-retest reliability.


There are a number of terms that might be used.

In software engineering having people who write software use the software they have written is known as eating your own dog food. This is a form of testing in that as users of the software they are more likely to fix problems quicker and add features that they find useful.

In engineering a feedback loop describes a situation where some of the output is fed back to the input.

In the mathematics of numerical methods an iterative algorithm is one that repeatedly applies some algoritm, often using the output of the previous iteration as input to the next.

A fixed-point is one or more values that a particular use of the two above approaches might converge to. A fixed-point algorithm is one whose output is guaranteed to converge to a single, fixed value, for some range of input values.

A convergence test, as the name implies, checks whether the series of output values has approached some point to within some acceptable lower/upper bound and does not show any signs of significant changes in value again..

The term recursion really applies to the structure of an algorithm, ie a problem is broken up into subproblems that are solved by calling the same algorithm, which breaks them up ... , until a very simple subproblem is reached whose solution is known; the known solution is returned and this is used to calculate the answer of the next level up, ... final answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.