Welcome to DoppelTest’s documentation!

DoppelTest is a scenario-based test generation framework for revealing bugs in autonomous driving softwares. It manages and orchestrates multiple ADS instances to simultaneously operate in a scenario and discover violation that occur by or among them. Since all vehicles are controlled by an instance of the ADS under test, each of them should respect traffic rules and react properly to other road traffic participants. At least one instance will be responsible for any violation occuring.

DoppelTest is implemented in Python 3.8.10 and depends on cyber_record, DEAP, docker, NetworkX, NumPy, pandas, protobuf, Shapely, and websocket-client. More information for these libraries can be found at

DoppelTest was designed and implemented by Yuqi Huai, Yuntianyi Chen, Sumaya Almanee, Tuan Ngo, Xiang Liao, Ziwen Wan, Qi Alfred Chen and Joshua Garcia. If you have any problems using DoppelTest, please submit an issue to our GitHub repository or contact Yuqi at yhuai@uci.edu.

Known Issues

  1. DoppelTest is optimized for small maps. While we provide 7 HD maps in the release, its performance is significantly better on borregas_ave.

  2. The initial analylsis of HD map may take more time to analyze. Its efficiency is based on the number of lanes the map has. It mainly checks the relation between each pair of lanes to determine whether a valid path exists between them. You do not have to do this analysis if you trust the HD map provided. (More details in Apollo Issue #14529)

Table of Contents


Tool reference

General Information

Indices and tables


DoppelTest is distributed under the The GNU General Public License v3.0.