Neural Network Guided Evolutionary Fuzzing for Finding Traffic Violations of Autonomous Vehicles

Self-driving cars and trucks, autonomous vehicles (avs), should not be accepted by regulatory bodies and the public until they have much higher confidence in their safety and reliability — which can most practically and convincingly be achieved by testing. But existing testing methods are inadequate for checking the end-to-end behaviors of av controllers against complex, real-world corner cases involving interactions with multiple independent agents such as pedestrians and human-driven vehicles. While test-driving avs on streets and highways fails to capture many rare events, existing simulation-based testing methods mainly focus on simple scenarios and do not scale well for complex driving situations that require sophisticated awareness of the surroundings. To address these limitations, we propose a new fuzz testing technique, called AutoFuzz, which can leverage widely-used av simulators’ API grammars to generate semantically and temporally valid complex driving scenarios (sequences of scenes). To efficiently search for traffic violations-inducing scenarios in a large search space, we propose a constrained neural network (NN) evolutionary search method to optimize AutoFuzz. Evaluation of our prototype on one state-of-the-art learning-based controller, two rule-based controllers, and one industrial-grade controller in five scenarios shows that AutoFuzz efficiently finds hundreds of traffic violationsin high-fidelity simulation environments. For each scenario, AutoFuzz can find on average 10-39% more unique traffic violationsthan the best-performing baseline method. Further, fine-tuning the learning-based controller with the traffic violationsfound by AutoFuzz successfully reduced the traffic violationsfound in the new version of the av controller software.

[1]  B. Miller,et al.  The Relevance of Classic Fuzz Testing: Have We Solved This One? , 2020, IEEE Transactions on Software Engineering.

[2]  Baiming Chen,et al.  Adversarial Evaluation of Autonomous Vehicles in Lane-Change Scenarios , 2020, IEEE Transactions on Intelligent Transportation Systems.

[3]  Baishakhi Ray,et al.  A Survey on Scenario-Based Testing for Automated Driving Systems in High-Fidelity Simulation , 2021, ArXiv.

[4]  Haiyan Zhao,et al.  Targeting Requirements Violations of Autonomous Driving Systems by Dynamic Evolutionary Search , 2021, 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[5]  Paolo Arcaini,et al.  Targeting Patterns of Driving Characteristics in Testing Autonomous Driving Systems , 2021, 2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST).

[6]  Rupak Majumdar,et al.  Paracosm: A Test Framework for Autonomous Driving Simulations , 2021, FASE.

[7]  Ersin Yumer,et al.  Exploring Adversarial Robustness of Multi-Sensor Perception Systems in Self Driving , 2021, CoRL.

[8]  R. Urtasun,et al.  AdvSim: Generating Safety-Critical Scenarios for Self-Driving Vehicles , 2021, 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).

[9]  Wenhao Ding,et al.  Multimodal Safety-Critical Scenarios Generation for Decision-Making Algorithms Evaluation , 2020, IEEE Robotics and Automation Letters.

[10]  K. Tomsovic,et al.  ConAML: Constrained Adversarial Machine Learning for Cyber-Physical Systems , 2020, AsiaCCS.

[11]  Zhisheng Hu,et al.  Detecting Safety Problems of Multi-Sensor Fusion in Autonomous Driving , 2021, ArXiv.

[12]  Ezekiel O. Soremekun,et al.  Inputs from Hell: Learning Input Distributions for Grammar-Based Test Generation , 2021 .

[13]  Marcel Böhme,et al.  Boosting fuzzer efficiency: an information theoretic perspective , 2020, ESEC/SIGSOFT FSE.

[14]  Saurabh Jha,et al.  AV-FUZZER: Finding Safety Violations in Autonomous Driving Systems , 2020, 2020 IEEE 31st International Symposium on Software Reliability Engineering (ISSRE).

[15]  Paolo Arcaini,et al.  Generating Avoidable Collision Scenarios for Testing Autonomous Driving Systems , 2020, 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST).

[16]  Renjie Liao,et al.  Testing the Safety of Self-driving Vehicles by Simulating Perception and Prediction , 2020, ECCV.

[17]  Lars Grunske,et al.  Evolutionary Grammar-Based Fuzzing , 2020, SSBSE.

[18]  Zhi Quan Zhou,et al.  Metamorphic Fuzz Testing of Autonomous Vehicles , 2020, ICSE.

[19]  Junjie Shen,et al.  Drift with Devil: Security of Multi-Sensor Fusion based Localization in High-Level Autonomous Driving under GPS Spoofing (Extended Version) , 2020, USENIX Security Symposium.

[20]  Suman Jana,et al.  MTFuzz: fuzzing with a multi-task neural network , 2020, ESEC/SIGSOFT FSE.

[21]  Roxana Geambasu,et al.  Pythia: Grammar-Based Fuzzing of REST APIs with Coverage-guided Feedback and Learning-based Mutations , 2020, ArXiv.

[22]  Q. Lu,et al.  LGSVL Simulator: A High Fidelity Simulator for Autonomous Driving , 2020, 2020 IEEE 23rd International Conference on Intelligent Transportation Systems (ITSC).

[23]  Tao Wei,et al.  Fooling Detection Alone is Not Enough: Adversarial Attack against Multiple Object Tracking , 2020, ICLR.

[24]  Wenhao Ding,et al.  Learning to Collide: An Adaptive Safety-Critical Scenarios Generating Method , 2020, 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[25]  Richard Bowden,et al.  Training Adversarial Agents to Exploit Weaknesses in Deep Control Policies , 2020, 2020 IEEE International Conference on Robotics and Automation (ICRA).

[26]  Kalyanmoy Deb,et al.  Pymoo: Multi-Objective Optimization in Python , 2020, IEEE Access.

[27]  Wei Li,et al.  DeepBillboard: Systematic Physical-World Testing of Autonomous Driving Systems , 2018, 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE).

[28]  Zsolt Szalay,et al.  Conflicts of Automated Driving With Conventional Traffic Infrastructure , 2020, IEEE Access.

[29]  Yong Tang,et al.  EcoFuzz: Adaptive Energy-Saving Greybox Fuzzing as a Variant of the Adversarial Multi-Armed Bandit , 2020, USENIX Security Symposium.

[30]  Vladlen Koltun,et al.  Learning by Cheating , 2019, CoRL.

[31]  Matthew O'Kelly,et al.  Efficient Black-box Assessment of Autonomous Vehicle Safety , 2019, ArXiv.

[32]  Ruigang Liang,et al.  Seeing isn't Believing: Towards More Robust Adversarial Attack Against Real World Object Detectors , 2019, CCS.

[33]  T. Saeed Road Infrastructure Readiness for Autonomous Vehicles , 2019 .

[34]  Gordon Fraser,et al.  Generating effective test cases for self-driving cars from police reports , 2019, ESEC/SIGSOFT FSE.

[35]  Kevin Fu,et al.  Adversarial Sensor Attack on LiDAR-based Perception in Autonomous Driving , 2019, CCS.

[36]  Gordon Fraser,et al.  Automatically testing self-driving cars with search-based procedural content generation , 2019, ISSTA.

[37]  Mykel J. Kochenderfer,et al.  Critical Factor Graph Situation Clusters for Accelerated Automotive Safety Validation , 2019, 2019 IEEE Intelligent Vehicles Symposium (IV).

[38]  Krzysztof Czarnecki,et al.  GeoScenario: An Open DSL for Autonomous Driving Scenario Representation , 2019, 2019 IEEE Intelligent Vehicles Symposium (IV).

[39]  Gregory Dudek,et al.  Generating Adversarial Driving Scenarios in High-Fidelity Simulators , 2019, 2019 International Conference on Robotics and Automation (ICRA).

[40]  Tong Duy Son,et al.  Simulation-Based Testing Framework for Autonomous Driving Development , 2019, 2019 IEEE International Conference on Mechatronics (ICM).

[41]  Sanjit A. Seshia,et al.  VERIFAI: A Toolkit for the Design and Analysis of Artificial Intelligence-Based Systems , 2019, ArXiv.

[42]  Abhik Roychoudhury,et al.  Coverage-Based Greybox Fuzzing as Markov Chain , 2016, IEEE Transactions on Software Engineering.

[43]  Russ Tedrake,et al.  Scalable End-to-End Autonomous Vehicle Testing via Rare-event Simulation , 2018, NeurIPS.

[44]  Annibale Panichella,et al.  Testing Autonomous Cars for Feature Interaction Failures using Many-Objective Search , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[45]  Sarfraz Khurshid,et al.  DeepRoad: GAN-Based Metamorphic Testing and Input Validation Framework for Autonomous Driving Systems , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[46]  Junfeng Yang,et al.  NEUZZ: Efficient Fuzzing with Neural Program Learning , 2018, ArXiv.

[47]  Mykel J. Kochenderfer,et al.  Adaptive Stress Testing for Autonomous Vehicles , 2018, 2018 IEEE Intelligent Vehicles Symposium (IV).

[48]  Atul Prakash,et al.  Robust Physical-World Attacks on Deep Learning Visual Classification , 2018, 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.

[49]  Lionel C. Briand,et al.  Testing Vision-Based Control Systems Using Learnable Evolutionary Algorithms , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[50]  Hao Chen,et al.  Angora: Efficient Fuzzing by Principled Search , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[51]  Markus Maurer,et al.  Scenarios for Development, Test and Validation of Automated Vehicles , 2018, 2018 IEEE Intelligent Vehicles Symposium (IV).

[52]  Suman Jana,et al.  DeepTest: Automated Testing of Deep-Neural-Network-Driven Autonomous Cars , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[53]  Aleksander Madry,et al.  Towards Deep Learning Models Resistant to Adversarial Attacks , 2017, ICLR.

[54]  Germán Ros,et al.  CARLA: An Open Urban Driving Simulator , 2017, CoRL.

[55]  Koushik Sen,et al.  FairFuzz: A Targeted Mutation Strategy for Increasing Greybox Fuzz Testing Coverage , 2017, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[56]  Other Contributors Are Indicated Where They Contribute The Free Software Foundation , 2017 .

[57]  Philip Koopman,et al.  Robustness Testing of Autonomy Software , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[58]  Herbert Bos,et al.  VUzzer: Application-aware Evolutionary Fuzzing , 2017, NDSS.

[59]  Lionel C. Briand,et al.  Testing advanced driver assistance systems using multi-objective search and neural networks , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[60]  Fabian Schuldt,et al.  Defining and Substantiating the Terms Scene, Situation, and Scenario for Automated Driving , 2015, 2015 IEEE 18th International Conference on Intelligent Transportation Systems.

[61]  Lionel C. Briand,et al.  A Hitchhiker's guide to statistical tests for assessing randomized algorithms in software engineering , 2014, Softw. Test. Verification Reliab..

[62]  Andreas Zeller,et al.  Fuzzing with Code Fragments , 2012, USENIX Security Symposium.

[63]  Xuejun Yang,et al.  Finding and understanding bugs in C compilers , 2011, PLDI '11.

[64]  S. Sawilowsky New Effect Size Rules of Thumb , 2009 .

[65]  Adam Kiezun,et al.  Grammar-based whitebox fuzzing , 2008, PLDI '08.

[66]  Pedram Amini,et al.  Fuzzing: Brute Force Vulnerability Discovery , 2007 .

[67]  Wassim G. Najm,et al.  Pre-Crash Scenario Typology for Crash Avoidance Research , 2007 .

[68]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[69]  KalyanmoyDebandSamirAgrawal KanpurGeneticAlgorithmsLaboratory,et al.  A Niched-Penalty Approach for Constraint Handling in Genetic Algorithms , 2002 .

[70]  A. Vargha,et al.  A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong , 2000 .

[71]  Kalyanmoy Deb,et al.  Simulated Binary Crossover for Continuous Search Space , 1995, Complex Syst..

[72]  Barton P. Miller,et al.  An empirical study of the reliability of UNIX utilities , 1990, Commun. ACM.

[73]  J. Anthony Capon,et al.  Elementary statistics for the social sciences , 1988 .