Random testing: Difference between revisions

Content deleted Content added
No edit summary
Line 49:
According to the seminal paper on random testing by D. Hamlet
<blockquote>[..] the technical, mathematical meaning of "random testing" refers to an explicit lack of "system" in the choice of test data, so that there is no correlation among different tests.<ref name=Hamlet94>{{cite book|title=Encyclopedia of Software Engineering|year=1994|publisher=John Wiley and Sons|isbn=0471540021|url=http://web.cecs.pdx.edu/~omse535/hamlet94random.pdf|author=Richard Hamlet|edition=1|editor=John J. Marciniak|accessdate=16 June 2013|chapter=Random Testing}}</ref></blockquote>
 
== Strengths and Weaknesses ==
Random testing is typically praised for the following strengths:
* It is cheap to use: it does not need to be smart about the program under test.
* It does not have any bias: unlike manual testing, it does not overlook bugs because there is misplaced trust in some code.
* It is quick to find bug candidates: it typically takes a couple of minutes to perform a testing session.
* If software is properly specified: it finds real bugs.
 
The following weaknesses are typically pointed out by detractors:
* It only finds basic bugs (f.ex. [[https://en.wikipedia.org/wiki/Null_pointer#Null_pointer]] dereferencing).
* It is only as precise as the specification and specifications are typically imprecise.
* It compares poorly with other techniques to find bugs (f.ex. [[static analysis]]).
 
== Types of random testing ==