skip to main content
10.1145/3377811.3380397acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Open Access

A comprehensive study of autonomous vehicle bugs

Published:01 October 2020Publication History

ABSTRACT

Self-driving cars, or Autonomous Vehicles (AVs), are increasingly becoming an integral part of our daily life. About 50 corporations are actively working on AVs, including large companies such as Google, Ford, and Intel. Some AVs are already operating on public roads, with at least one unfortunate fatality recently on record. As a result, understanding bugs in AVs is critical for ensuring their security, safety, robustness, and correctness. While previous studies have focused on a variety of domains (e.g., numerical software; machine learning; and error-handling, concurrency, and performance bugs) to investigate bug characteristics, AVs have not been studied in a similar manner. Recently, two software systems for AVs, Baidu Apollo and Autoware, have emerged as frontrunners in the open-source community and have been used by large companies and governments (e.g., Lincoln, Volvo, Ford, Intel, Hitachi, LG, and the US Department of Transportation). From these two leading AV software systems, this paper describes our investigation of 16,851 commits and 499 AV bugs and introduces our classification of those bugs into 13 root causes, 20 bug symptoms, and 18 categories of software components those bugs often affect. We identify 16 major findings from our study and draw broader lessons from them to guide the research community towards future directions in software bug detection, localization, and repair.

References

  1. August 2019. 46 Corporations Working On Autonomous Vehicles. https://www.cbinsights.com/research/autonomous-driverless-vehicles-corporations-list/.Google ScholarGoogle Scholar
  2. August 2019. Apollo Cyber RT. https://github.com/ApolloAuto/apollo/tree/master/cyber.Google ScholarGoogle Scholar
  3. August 2019. Autoware: Open-source software for urban autonomous driving. https://github.com/CPFL/Autoware.Google ScholarGoogle Scholar
  4. August 2019. Baidu Apollo: An open autonomous driving platform. http://apollo.auto/.Google ScholarGoogle Scholar
  5. August 2019. Baidu hits the gas on autonomous vehicles with Volvo and Ford deals. https://techcrunch.com/2018/11/01/baidu-volvo-ford-autonomous-driving/.Google ScholarGoogle Scholar
  6. August 2019. Baidu starts mass production of autonomous buses. https://www.dw.com/en/baidu-starts-mass-production-of-autonomous-buses/a-44525629.Google ScholarGoogle Scholar
  7. August 2019. Bazel. https://bazel.build/.Google ScholarGoogle Scholar
  8. August 2019. CMake. https://cmake.org/.Google ScholarGoogle Scholar
  9. August 2019. A Comprehensive Study of Autonomous Vehicle Bugs - Artifact Website. http://tiny.cc/cps_bug_analysis.Google ScholarGoogle Scholar
  10. August 2019. Fatal Tesla Crash Exposes Gap In Automaker's Use Of Car Data. https://www.forbes.com/sites/alanohnsman/2018/04/16/tesla-autopilot-fatal-crash-waze-hazard-alerts/#7bb735fb5572.Google ScholarGoogle Scholar
  11. August 2019. Github: The CARMA platform. https://github.com/usdot-fhwa-stol/CARMAPlatform.Google ScholarGoogle Scholar
  12. August 2019. Self-Driving Tesla Was Involved in Fatal Crash, U.S. Says. https://www.nytimes.com/2016/07/01/business/self-driving-tesla-fatal-crash-investigation.html.Google ScholarGoogle Scholar
  13. August 2019. Self-Driving Uber Car Kills Pedestrian in Arizona, Where Robots Roam. https://www.nytimes.com/2018/03/19/technology/uber-driverless-fatality.html.Google ScholarGoogle Scholar
  14. August 2019. Tesla: Autopilot was on during deadly Mountain View crash. https://www.mercurynews.com/2018/03/30/tesla-autopilot-was-on-during-deadly-mountain-view-crash/.Google ScholarGoogle Scholar
  15. August 2019. Tesla driver dies in first fatal crash while using autopilot mode. https://www.theguardian.com/technology/2016/jun/30/tesla-autopilot-death-self-driving-car-elon-musk.Google ScholarGoogle Scholar
  16. August 2019. The 18 Companies Most Likely to Get Self-driving Dars on the Road First. https://www.businessinsider.com/the-companies-most-likely-to-get-driverless-cars-on-the-road-first-2017-4.Google ScholarGoogle Scholar
  17. August 2019. There are some scary similarities between Tesla's deadly crashes linked to Autopilot. https://qz.com/783009/the-scary-similarities-between-teslas-tsla-deadly-autopilot-crashes/.Google ScholarGoogle Scholar
  18. August 2019. Two Years On, A Father Is Still Fighting Tesla Over Autopilot And His Son's Fatal Crash. https://jalopnik.com/two-years-on-a-father-is-still-fighting-tesla-over-aut-1823189786.Google ScholarGoogle Scholar
  19. August 2019. Uber Self-Driving Car Crash: What Really Happened. https://www.forbes.com/sites/meriameberboucha/2018/05/28/uber-self-driving-car-crash-what-really-happened.Google ScholarGoogle Scholar
  20. August 2019. Udacity: Self-Driving Fundamentals: Featuring Apollo. https://www.udacity.com/course/self-driving-car-fundamentals-featuring-apollo-ud0419.Google ScholarGoogle Scholar
  21. August 2019. USDOT: The CARMA platform. https://highways.dot.gov/research/research-programs/operations/CARMA.Google ScholarGoogle Scholar
  22. August 2019. Waymo Launches Self-driving car Service Waymo One. https://techcrunch.com/2018/12/05/waymo-launches-self-driving-car-service-waymo-one.Google ScholarGoogle Scholar
  23. August 2019. Waymo's autonomous cars have driven 8 million miles on public roads. https://www.theverge.com/2018/7/20/17595968/waymo-self-driving-cars-8-million-miles-testing.Google ScholarGoogle Scholar
  24. August 2019. You can take a ride in a self-driving Lyft during CES. https://www.theverge.com/2018/1/2/16841090/lyft-aptiv-self-driving-car-ces-2018.Google ScholarGoogle Scholar
  25. Karl J Åström and Björn Wittenmark. 2013. Adaptive control. Courier Corporation.Google ScholarGoogle Scholar
  26. Peter Biber and Wolfgang Straßer. 2003. The normal distributions transform: A new approach to laser scan matching. In Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003)(Cat. No. 03CH37453), Vol. 3. IEEE, 2743--2748.Google ScholarGoogle ScholarCross RefCross Ref
  27. N. Cacho, E. A. Barbosa, J. Araujo, F. Pranto, A. Garcia, T. Cesar, E. Soares, A. Cassio, T. Filipe, and I. Garcia. 2014. How Does Exception Handling Behavior Evolve? An Exploratory Study in Java and C# Applications. In 2014 IEEE International Conference on Software Maintenance and Evolution. 31--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Yulong Cao, Chaowei Xiao, Dawei Yang, Jing Fang, Ruigang Yang, Mingyan Liu, and Bo Li. 2019. Adversarial Objects Against LiDAR-Based Autonomous Driving Systems. arXiv preprint arXiv:1907.05418 (2019).Google ScholarGoogle Scholar
  29. R. Coelho, L. Almeida, G. Gousios, and A. v Deursen. 2015. Unveiling Exception Handling Bug Hazards in Android Based on GitHub and Google Code Issues. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. 134--145. Google ScholarGoogle ScholarCross RefCross Ref
  30. SAE On-Road Automated Vehicle Standards Committee et al. 2014. Taxonomy and definitions for terms related to on-road motor vehicle automated driving systems. SAE Standard J 3016 (2014), 1--16.Google ScholarGoogle Scholar
  31. Melvin E Conway. 1968. How do committees invent. Datamation 14, 4 (1968), 28--31.Google ScholarGoogle Scholar
  32. Anthony Di Franco, Hui Guo, and Cindy Rubio-Gonzalez. 2017. A Comprehensive Study of Real-world Numerical Bug Characteristics. In Proceedings of the 32Nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2017). IEEE Press, Piscataway, NJ, USA, 509--519. http://dl.acm.org/citation.cfm?id=3155562.3155627 event-place: Urbana-Champaign, IL, USA.Google ScholarGoogle ScholarCross RefCross Ref
  33. Kevin Eykholt, Ivan Evtimov, Earlence Fernandes, Bo Li, Amir Rahmati, Florian Tramer, Atul Prakash, Tadayoshi Kohno, and Dawn Song. 2018. Physical Adversarial Examples for Object Detectors. In USENIX Workshop on Offensive Technologies (WOOT).Google ScholarGoogle Scholar
  34. Kevin Eykholt, Ivan Evtimov, Earlence Fernandes, Bo Li, Amir Rahmati, Chaowei Xiao, Atul Prakash, Tadayoshi Kohno, and Dawn Song. 2017. Robust physicalworld attacks on deep learning models. arXiv preprint arXiv:1707.08945 (2017).Google ScholarGoogle Scholar
  35. Carlos E Garcia, David M Prett, and Manfred Morari. 1989. Model predictive control: theory and practice - a survey. Automatica 25, 3 (1989), 335--348.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Ali Ghanbari, Samuel Benton, and Lingming Zhang. 2019. Practical program repair via bytecode mutation. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 19--30.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Dirk Holz, Alexandru E Ichim, Federico Tombari, Radu B Rusu, and Sven Behnke. 2015. Registration with the point cloud library: A modular framework for aligning in 3-D. IEEE Robotics & Automation Magazine 22, 4 (2015), 110--124.Google ScholarGoogle ScholarCross RefCross Ref
  38. Md Johirul Islam, Giang Nguyen, Rangeet Pan, and Hridesh Rajan. 2019. A Comprehensive Study on Deep Learning Bug Characteristics. arXiv:1906.01388 [cs] (June 2019). http://arxiv.org/abs/1906.01388 arXiv: 1906.01388.Google ScholarGoogle Scholar
  39. Guoliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, and Shan Lu. 2012. Understanding and Detecting Real-world Performance Bugs. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '12). ACM, New York, NY, USA, 77--88. event-place: Beijing, China. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Tanakorn Leesatapornwongsa, Jeffrey F. Lukman, Shan Lu, and Haryadi S. Gunawi. 2016. TaxDC: A Taxonomy of Non-Deterministic Concurrency Bugs in Datacenter Distributed Systems. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '16). ACM, New York, NY, USA, 517--530. event-place: Atlanta, Georgia, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XIII). ACM, New York, NY, USA, 329--339. event-place: Seattle, WA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Manish Motwani, Sandhya Sankaranarayanan, René Just, and Yuriy Brun. 2018. Do automated program repair techniques repair hard and important bugs? Empirical Software Engineering 23, 5 (01 Oct 2018), 2901--2947. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Nvidia. 2010. CUDA Programming guide.Google ScholarGoogle Scholar
  44. Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y Ng. 2009. ROS: an open-source Robot Operating System. In ICRA workshop on open source software, Vol. 3. Kobe, Japan, 5.Google ScholarGoogle Scholar
  45. Carolyn B. Seaman, Forrest Shull, Myrna Regardie, Denis Elbert, Raimund L. Feldmann, Yuepu Guo, and Sally Godfrey. 2008. Defect Categorization: Making Use of a Decade of Widely Varying Historical Data. In Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM '08). ACM, New York, NY, USA, 149--157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Marija Selakovic and Michael Pradel. 2016. Performance Issues and Optimizations in JavaScript: An Empirical Study. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16). ACM, New York, NY, USA, 61--72. event-place: Austin, Texas. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. F. Thung, S. Wang, D. Lo, and L. Jiang. 2012. An Empirical Study of Bugs in Machine Learning Systems. In 2012 IEEE 23rd International Symposium on Software Reliability Engineering. 271--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Yuchi Tian, Kexin Pei, Suman Jana, and Baishakhi Ray. 2018. Deeptest: Automated Testing of Deep-neural-network-driven Autonomous Cars. In International Conference on Software Engineering (ICSE).Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Yuchi Tian and Baishakhi Ray. 2017. Automatically Diagnosing and Repairing Error Handling Bugs in C. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). ACM, New York, NY, USA, 752--762. event-place: Paderborn, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Bogdan Vasilescu, Yue Yu, Huaimin Wang, Premkumar Devanbu, and Vladimir Filkov. 2015. Quality and productivity outcomes relating to continuous integration in GitHub. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM, 805--816.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Zhiyuan Wan, David Lo, Xin Xia, and Liang Cai. 2017. Bug characteristics in blockchain systems: a large-scale empirical study. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). IEEE, 413--424.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Greg Welch and Gary Bishop. 1995. An introduction to the Kalman Filter. (1995).Google ScholarGoogle Scholar
  53. X. Xia, L. Bao, D. Lo, and S. Li. 2016. "Automated Debugging Considered Harmful" Considered Harmful: A User Study Revisiting the Usefulness of Spectra-Based Fault Localization Techniques with Professionals Using Real Bugs from Large Systems. In 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME). 267--278. Google ScholarGoogle ScholarCross RefCross Ref
  54. Mengshi Zhang, Yuqun Zhang, Lingming Zhang, Cong Liu, and Sarfraz Khurshid. 2018. DeepRoad: GAN-based Metamorphic Testing and Input Validation Framework for Autonomous Driving Systems. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE 2018). ACM, New York, NY, USA, 132--142. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Yuhao Zhang, Yifan Chen, Shing-Chi Cheung, Yingfei Xiong, and Lu Zhang. 2018. An Empirical Study on TensorFlow Program Bugs. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2018). ACM, New York, NY, USA, 129--140. event-place: Amsterdam, Netherlands. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Yue Zhao, Hong Zhu, Ruigang Liang, Qintao Shen, Shengzhi Zhang, and Kai Chen. 2018. Seeing isn't Believing: Practical Adversarial Attack Against Object Detectors. arXiv preprint arXiv:1812.10217 (2018).Google ScholarGoogle Scholar
  57. Hucheng Zhou, Jian-Guang Lou, Hongyu Zhang, Haibo Lin, Haoxiang Lin, and Tingting Qin. 2015. An empirical study on quality issues of production big data platform. In Proceedings of the 37th International Conference on Software Engineering-Volume 2. IEEE Press, 17--26.Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. A comprehensive study of autonomous vehicle bugs

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering
      June 2020
      1640 pages
      ISBN:9781450371216
      DOI:10.1145/3377811

      Copyright © 2020 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 October 2020

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate276of1,856submissions,15%

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader