  Autonomous driving systems have witnessed a significant development during
the past years thanks to the advance in machine learning-enabled sensing and
decision-making algorithms. One critical challenge for their massive deployment
in the real world is their safety evaluation. Most existing driving systems are
still trained and evaluated on naturalistic scenarios collected from daily life
or heuristically-generated adversarial ones. However, the large population of
cars, in general, leads to an extremely low collision rate, indicating that the
safety-critical scenarios are rare in the collected real-world data. Thus,
methods to artificially generate scenarios become crucial to measure the risk
and reduce the cost. In this survey, we focus on the algorithms of
safety-critical scenario generation in autonomous driving. We first provide a
comprehensive taxonomy of existing algorithms by dividing them into three
categories: data-driven generation, adversarial generation, and knowledge-based
generation. Then, we discuss useful tools for scenario generation, including
simulation platforms and packages. Finally, we extend our discussion to five
main challenges of current works -- fidelity, efficiency, diversity,
transferability, controllability -- and research opportunities lighted up by
these challenges.
