  Random testing (RT) is a well-studied testing method that has been widely
applied to the testing of many applications, including embedded software
systems, SQL database systems, and Android applications. Adaptive random
testing (ART) aims to enhance RT's failure-detection ability by more evenly
spreading the test cases over the input domain. Since its introduction in 2001,
there have been many contributions to the development of ART, including various
approaches, implementations, assessment and evaluation methods, and
applications. This paper provides a comprehensive survey on ART, classifying
techniques, summarizing application areas, and analyzing experimental
evaluations. This paper also addresses some misconceptions about ART, and
identifies open research challenges to be further investigated in the future
work.
