Robustness testing

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Robustness testing is any quality assurance methodology focused on testing the robustness of software. Robustness testing has also been used to describe the process of verifying the robustness (i.e. correctness) of test cases in a test process.

ANSI and IEEE have defined robustness as the degree to which a system or component can function correctly in the presence of invalid inputs or stressful environmental conditions.[1]

The term "robustness testing" was first used by the Ballista project at Carnegie Mellon University. They performed testing of operating systems for dependability based on the data types of POSIX API, producing complete system crashes in some systems. [2] The term was also used by OUSPG and VTT researchers taking part in the PROTOS project in the context of software security testing.[3] Eventually the term Fuzzing (which security people use for mostly non-intelligent and random robustness testing) extended to also cover model-based robustness testing.

An overview of robustness testing methods and tools can be found in the state of the art report[4] of the AMBER research project.

See also[edit]


  1. ^ "Standard Glossary of Software Engineering Terminology (ANSI)". The Institute of Electrical and Electronics Engineers Inc. 1991.
  2. ^ Kropp, Koopman, Siewiorek. 1998. Automated Robustness Testing of Off-the_Shelf Software Components. Proceedings of FTCS'98.
  3. ^ Kaksonen, Rauli. 2001. A Functional Method for Assessing Protocol Implementation Security (Licentiate thesis). Espoo. Technical Research Centre of Finland, VTT Publications 448. 128 p. + app. 15 p. ISBN 951-38-5873-1 (soft back ed.) ISBN 951-38-5874-X (on-line ed.).
  4. ^ Aad van Moorsel, Henrique Madeira (eds.). D2.2 State of the Art in Resilience Assessment, Measurement and Benchmarking, Chapter 13 Robustness Testing, 2009. Available online: