I need to clarify differences and definitions of those techniques/methodologies.

Mutation testing - testing technique, it is an intentional change of part of code to evaluate correctness of tests

Robustness testing - testing methodology, and mutation testing and fault injection are part of it, or it is something else?

Fuzz testing - testing technique, random data input to the program, it also can be used in robustness testing

Fault injection - testing technique, isn't it the same as fuzz testing?

but i am not sure of above. Is it possible to compare them telling which technique is better?

2 Answers 2


Robust is the opposite of fragile; it is the ability to function correctly under a variety of conditions -- perhaps even under conditions that change or that you did not anticipate. Robustness testing is the practice of measuring robustness.

Fault injection and mutation testing are ways to measure the robustness of your tests. They don't tell you anything about the robustness of your product.

Fuzz testing is a way to measure the robustness of your product. It doesn't tell you anything about the robustness of your tests.

I do not think it makes sense to ask whether fuzz testing or fault injection/mutation testing is better, because they serve different purposes. However, I would rank fuzz testing the highest of the three, since your ultimate goal is to measure the quality of your product. The tests themselves are a means to an end, not an end in themselves.


it is a link to ISTQB Glossary of Testing Terms. Some of terms are described there.

Mutation (back-to-back) testing: Testing in which two or more variants of a component or system are executed with the same inputs, the outputs compared, and analyzed in cases of discrepancies.

fault seeding: The process of intentionally adding defects to those already in the component or system for the purpose of monitoring the rate of detection and removal, and estimating the number of remaining defects. Fault seeding is typically part of development (prerelease) testing and can be performed at any test level (component, integration, or system).

robustness: The degree to which a component or system can function correctly in the presence of invalid inputs or stressful environmental conditions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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