  Automated Driving Systems (ADS) have made great achievements in recent years
thanks to the efforts from both academia and industry. A typical ADS is
composed of multiple modules, including sensing, perception, planning, and
control, which brings together the latest advances in different domains.
Despite these achievements, safety assurance of ADS is of great significance,
since unsafe behavior of ADS can bring catastrophic consequences. Testing has
been recognized as an important system validation approach that aims to expose
unsafe system behavior; however, in the context of ADS, it is extremely
challenging to devise effective testing techniques, due to the high complexity
and multidisciplinarity of the systems. There has been great much literature
that focuses on the testing of ADS, and a number of surveys have also emerged
to summarize the technical advances. Most of the surveys focus on the
system-level testing performed within software simulators, and they thereby
ignore the distinct features of different modules. In this paper, we provide a
comprehensive survey on the existing ADS testing literature, which takes into
account both module-level and system-level testing. Specifically, we make the
following contributions: (1) we survey the module-level testing techniques for
ADS and highlight the technical differences affected by the features of
different modules; (2) we also survey the system-level testing techniques, with
focuses on the empirical studies that summarize the issues occurring in system
development or deployment, the problems due to the collaborations between
different modules, and the gap between ADS testing in simulators and the real
world; (3) we identify the challenges and opportunities in ADS testing, which
pave the path to the future research in this field.
