  There has been a significant amount of interest regarding the use of
diversity-based testing techniques in software testing over the past two
decades. Diversity-based testing (DBT) technique uses similarity metrics to
leverage the dissimilarity between software artefacts - such as requirements,
abstract models, program structures, or inputs - in order to address a software
testing problem. DBT techniques have been used to assist in finding solutions
to several different types of problems including generating test cases,
prioritising them, and reducing very large test suites. This paper is a
systematic survey of DBT techniques that summarises the key aspects and trends
of 144 papers that report the use of 70 different similarity metrics with 24
different types of software artefacts, which have been used by researchers to
tackle 11 different types of software testing problems. We further present an
analysis of the recent trends in DBT techniques and review the different
application domains to which the techniques have been applied, giving an
overview of the tools developed by researchers to do so. Finally, the paper
identifies some DBT challenges that are potential topics for future work.
