skip to main content
research-article

An empirical characterization of software bugs in open-source Cyber–Physical Systems

Published: 01 October 2022 Publication History

Abstract

Background:

Cyber-Physical Systems (CPSs) are systems in which software and hardware components interact with each other. Understanding the specific nature and root cause of CPS bugs would help to design better verification and validation (V&V) techniques for these systems such as domain-specific mutants.

Aim:

We look at CPS bugs from an open-source perspective, trying to understand what kinds of bugs occur in a set of open-source CPSs belonging to different domains.

Method:

We analyze 1151 issues from 14 projects related to drones, automotive, robotics, and Arduino. We apply a hybrid card-sorting procedure to create a taxonomy of CPS bugs, by extending a previously proposed taxonomy specific to the automotive domain.

Results:

We provide a taxonomy featuring 22 root causes, grouped into eight high-level categories. Our qualitative and quantitative analyses suggest that 33.4% of the analyzed bugs occurring in CPSs are peculiar to those and, consequently, require specific care during verification and validation activities.

Conclusion:

The taxonomy provides an overview of the root causes related to bugs found in open-source CPSs belonging to different domains. Such root causes are related to different components of a CPS, including hardware, interface, configuration, network, data, and application logic.

Highlights

We empirically derive a taxonomy of Cyber-Physical Systems (CPSs) Bugs.
The taxonomy extends a previous one from autonomous vehicles.
The taxonomy features 22 root causes for bugs.
Root causes concern hardware, interface, configuration, network, or logic.
33.4% of the analyzed bugs are CPS-specific.

References

[1]
Academies of Sciences, A 21st Century Cyber-Physical Systems Education, National Academies Press, 2017.
[2]
Aghajani Emad, Nagy Csaba, Vega-Márquez Olga Lucero, Linares-Vásquez Mario, Moreno Laura, Bavota Gabriele, Lanza Michele, Software documentation issues unveiled, in: Proceedings of the 41st International Conference on Software Engineering, ICSE 2019, Montreal, QC, Canada, May 25-31, 2019, 2019, pp. 1199–1210,.
[3]
Alsolami Fawaz, Alqurashi Fahad A., Hasan Mohammad Kamrul, Saeed Rashid A., Abdel-Khalek Sayed, Ishak Anis Ben, Development of self-synchronized drones’ network using cluster-based swarm intelligence approach, IEEE Access 9 (2021) (2021) 48010–48022,.
[4]
Antoniol, Giuliano, Ayari, Kamel, Penta, Massimiliano Di, Khomh, Foutse, 2008. Is it a bug or an enhancement?: a text-based approach to classify change requests. In: Proceedings of the 2008 Conference of the Centre for Advanced Studies on Collaborative Research, October 27-30, 2008, Richmond Hill, Ontario, Canada. Vol. 23.
[5]
Arnaoudova Venera, Penta Massimiliano Di, Antoniol Giuliano, Linguistic antipatterns: what they are and how developers perceive them, Empir. Softw. Eng. 21 1 (2016) (2016) 104–158.
[6]
Artzi Shay, Kim Sunghun, Ernst Michael D., ReCrash: Making software failures reproducible by preserving object states, in: Vitek Jan (Ed.), ECOOP 2008 - Object-Oriented Programming, 22nd European Conference, Paphos, Cyprus, July 7-11, 2008, Proceedings, in: Lecture Notes in Computer Science, vol. 5142, Springer, 2008, pp. 542–565,.
[7]
Baheti Radhakisan, Gill Helen, Cyber-physical systems, in: The Impact of Control Technology. Vol. 12, 2011, pp. 161–166. 1, 2011.
[8]
Bettenburg Nicolas, Just Sascha, Schröter Adrian, Weiß Cathrin, Premraj Rahul, Zimmermann Thomas, Quality of bug reports in eclipse, in: Cheng Li-Te, Orso Alessandro, Robillard Martin P. (Eds.), Proceedings of the 2007 OOPSLA Workshop on Eclipse Technology EXchange, ETX 2007, Montreal, Quebec, Canada, October 21, 2007, ACM, 2007, pp. 21–25,.
[9]
Birchler, Christian, Ganz, Nicolas, Khatiri, Sajad, Gambi, Alessio, Panichella, Sebastiano, 2022a. Cost-effective simulation-based test selection in self-driving cars software with SDC-scissor. In: The 29th IEEE International Conference on Software Analysis, Evolution, and Reengineering.
[10]
Birchler Christian, Khatiri Sajad, Derakhshanfar Pouria, Panichella Sebastiano, Panichella Annibale, Single and multi-objective test cases prioritization for self-driving cars in virtual environments, in: ACM Transactions on Software Engineering and Methodology, 2022, TOSEM, 2022,.
[11]
Borges Hudson, Valente Marco Tulio, What’s in a GitHub star? Understanding repository starring practices in a social coding platform, J. Syst. Softw. 146 (2018) 112–129,. 2018.
[12]
Boufaied, Chaima, Jukss, Maris, Bianculli, Domenico, Briand, Lionel Claude, Parache, Yago Isasi, 2021. Signal-based properties of cyber-physical systems: Taxonomy and logic-based characterization. In: International Conference on Software Engineering. 2021.
[13]
Brinberg David, McGrath Joseph E, Validity and the Research Process, SAGE Publications, 1985, Incorporated.
[14]
Brugge Bernd, Dutoit Allen, Object-Oriented Software Engineering using UML, Patterns, and Java, Pearson International, 2013.
[15]
Chandra Satish, Fink Stephen J., Sridharan Manu, Snugglebug: a powerful approach to weakest preconditions, in: Hind Michael, Diwan Amer (Eds.), Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, Dublin, Ireland, June 15-21, 2009, ACM, 2009, pp. 363–374,.
[16]
Cohen Jacob, A coefficient of agreement for nominal scales, Educ. Psychol. Meas. 20 1 (1960) (1960) 37–46.
[17]
Delgado-Pérez Pedro, Habli Ibrahim, Gregory Steve, Alexander Rob, Clark John A., Medina-Bulo Inmaculada, Evaluation of mutation testing in a nuclear industry case study, IEEE Trans. Reliab. 67 4 (2018) 1406–1419. 2018.
[18]
Dowson Mark, The ariane 5 software failure, in: SIGSOFT Softw. Eng. Notes. Vol. 22, 1997, p. 84. 2 March 1997.
[19]
Dueñas Santiago, Cosentino Valerio, Robles Gregorio, Gonzalez-Barahona Jesus M, Perceval: software project data at your will, in: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, ACM, 2018, pp. 1–4.
[20]
Fang Xinran, Feng Wei, Wei Te, Chen Yunfei, Ge Ning, Wang Cheng-Xiang, 5G embraces satellites for 6g ubiquitous IoT: Basic models for integrated satellite terrestrial networks, IEEE Internet Things J. 8 18 (2021) (2021) 14399–14417,.
[21]
Fischer-Nielsen Anders, Fu Zhoulai, Su Ting, Wasowski Andrzej, The forgotten case of the dependency bugs: on the example of the robot operating system, in: Rothermel Gregg, Bae Doo-Hwan (Eds.), ICSE-SEIP 2020: 42nd International Conference on Software Engineering, Software Engineering in Practice, Seoul, South Korea, 27 June - 19 July, 2020, ACM, 2020, pp. 21–30,.
[22]
Franco, Anthony Di, Guo, Hui, Rubio-González, Cindy, 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, Urbana, IL, USA, October 30 - November 03, 2017. pp. 509–519.
[23]
Garcia Joshua, Feng Yang, Shen Junjie, Almanee Sumaya, Xia Yuan, Chen Qi Alfred, A comprehensive study of autonomous vehicle bugs, in: ICSE ’20: 42nd International Conference on Software Engineering, Seoul, South Korea, 27 June - 19 July, 2020, ACM, 2020, pp. 385–396.
[24]
Gunawi, Haryadi S., Hao, Mingzhe, Leesatapornwongsa, Tanakorn, Patana-anake, Tiratat, Do, Thanh, Adityatama, Jeffry, Eliazar, Kurnia J., Laksono, Agung, Lukman, Jeffrey F., Martin, Vincentius, Satria, Anang D., 2014. What bugs live in the cloud? A study of 3000+ issues in cloud systems. In: Proceedings of the ACM Symposium on Cloud Computing. In: (SOCC ’14), vol. 7, Seattle, WA, USA, p. 14, 978-1-4503-3252-1.
[25]
Herzig, Kim, Just, Sascha, Zeller, Andreas, 2013. It’s not a bug, it’s a feature: how misclassification impacts bug prediction. In: 35th International Conference on Software Engineering, ICSE ’13, San Francisco, CA, USA, May 18-26 2013. pp. 392–401.
[26]
Huang Jeff, Zhang Charles, Dolby Julian, CLAP: recording local executions to reproduce concurrency failures, in: Boehm Hans-Juergen, Flanagan Cormac (Eds.), ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, Seattle, WA, USA, June 16-19, 2013, ACM, 2013, pp. 141–152,.
[27]
Humbatova Nargiz, Jahangirova Gunel, Bavota Gabriele, Riccio Vincenzo, Stocco Andrea, Tonella Paolo, Taxonomy of real faults in deep learning systems, in: Rothermel Gregg, Bae Doo-Hwan (Eds.), ICSE ’20: 42nd International Conference on Software Engineering, Seoul, South Korea, 27 June - 19 July, 2020, ACM, 2020, pp. 1110–1121,.
[28]
Jahangirova, Gunel, Tonella, Paolo, 2020. An empirical evaluation of mutation operators for deep learning systems. In: 13th IEEE International Conference on Software Testing, Validation and Verification, ICST 2020, Porto, Portugal, October 24-28, 2020. pp. 74–84.
[29]
Jia Yue, Harman Mark, Higher order mutation testing, Inf. Softw. Technol. 51 10 (2009) (2009) 1379–1393.
[30]
Jin Wei, Orso Alessandro, BugRedux: REproducing field failures for in-house debugging, in: Glinz Martin, Murphy Gail C., Pezzè Mauro (Eds.), 34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland, IEEE Computer Society, 2012, pp. 474–484,.
[31]
Just, René, Jalali, Darioush, Inozemtseva, Laura, Ernst, Michael D., Holmes, Reid, Fraser, Gordon, 2014. Are mutants a valid substitute for real faults in software testing?. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (FSE-22), Hong Kong, China, November 16 - 22 2014. pp. 654–665.
[32]
Kim Sun-Woo, Clark John A., McDermid John Alexander, Investigating the effectiveness of object-oriented testing strategies using the mutation method, Softw. Test. Verif. Reliab. 11 3 (2001) (2001) 207–225.
[33]
Lions, Jacques-Louis, Lbeck, Lennart, Fauquembergue, Jean-Luc, Kahn, Gilles, Kubbat, Wolfgang, Levedag, Stefan, Mazzini, Leonardo, Thomson, Didier Merle, O’Halloran, Colin, 1996. ARIANE 5 Flight 501 Failure.Report By the Inquiry Board. Technical Report, http://sunnyday.mit.edu/nasa-class/ariane5-report.html.
[34]
Liu Haopeng, Wang Xu, Li Guangpu, Lu Shan, Ye Feng, Tian Chen, FCatch: Automatically detecting time-of-fault bugs in cloud systems, SIGPLAN Not. 53 (2018) 419–431. 2 March2018, 0362-1340.
[35]
Ma Yu-Seung, Offutt Jeff, Kwon Yong Rae, Mujava: an automated class mutation system, Softw. Test. Verif. Reliab. 15 2 (2005) (2005) 97–133.
[36]
Martin Diego, Panichella Sebastiano, The cloudification perspectives of search-based software testing, in: Proceedings of the 12th International Workshop on Search-Based Software Testing, SBST@ICSE 2019, Montreal, QC, Canada, May 27, 2019, IEEE / ACM, 2019, pp. 5–6.
[37]
Nagappan, Nachiappan, Ball, Thomas, 2005. Static analysis tools as early indicators of pre-release defect density. In: Proceedings of the International Conference on Software Engineering. ICSE, pp. 580–586.
[38]
Narayanasamy Satish, Pokam Gilles, Calder Brad, BugNet: Continuously recording program execution for deterministic replay debugging, in: 32st International Symposium on Computer Architecture (ISCA 2005), 4-8 June 2005, Madison, Wisconsin, USA, IEEE Computer Society, 2005, pp. 284–295,.
[39]
Panichella Sebastiano, Zaugg Nik, An empirical investigation of relevant changes and automation needs in modern code review, Empir. Softw. Eng. 25 6 (2020) 4833–4872. 2020.
[40]
Park Junkil, Ivanov Radoslav, Weimer James, Pajic Miroslav, Son Sang Hyuk, Lee Insup, Security of cyber-physical systems in the presence of transient sensor faults, ACM Trans. Cybern. Phys. Syst. 1 (3) (2017) 15:1–15:23.
[41]
Rosner B., Fundamentals of Biostatistics, seventh ed., Brooks/Cole, Boston, MA, 2011.
[42]
Satchidanandan Bharadwaj, Kumar Panganamala Ramana, Secure control of networked cyber-physical systems, in: 55th IEEE Conference on Decision and Control, CDC 2016, Las Vegas, NV, USA, December 12-14 2016, IEEE, 2016, pp. 283–289,.
[43]
Soltani Mozhan, Panichella Annibale, Deursen Arie van, Search-based crash reproduction and its impact on debugging, IEEE Trans. Softw. Eng. 46 12 (2020) (2020) 1294–1317,.
[44]
Soulier P., Li Depeng, Williams J.R., A survey of language-based approaches to cyber-physical and embedded system development, Tsinghua Sci. Technol. 20 2 (2015) (2015) 130–141,.
[45]
Spencer Donna, Card sorting: designing usable categories, 2009, Rosenfeld Media.
[46]
Stocco Andrea, Weiss Michael, Calzana Marco, Tonella Paolo, Misbehaviour prediction for autonomous driving systems, in: Rothermel Gregg, Bae Doo-Hwan (Eds.), International Conference on Software Engineering, ACM, 2020, pp. 359–371,.
[47]
Tan, Lin, Yuan, Ding, Krishna, Gopal, Zhou, Yuanyuan, 2007. /*Icomment: bugs or bad comments?*/. In: Proceedings of the 21st ACM Symposium on Operating Systems Principles 2007, SOSP 2007, Stevenson, Washington, USA, October 14-17 2007. pp. 145–158.
[48]
Törngren Martin, Sellgren Ulf, Complexity Challenges in Development of Cyber-Physical Systems, Springer International Publishing, Cham, 2018, pp. 478–503. 978-3-319-95246-8.
[49]
Uncles Mark D., Kwok Simon, Designing research with in-built differentiated replication, J. Bus. Res. 66 9 (2013) 1398–1405,. 2013, 0148-2963, Advancing Research Methods in Marketing.
[50]
Vásquez Mario Linares, Bavota Gabriele, Tufano Michele, Moran Kevin, Penta Massimiliano Di, Vendome Christopher, Bernal-Cárdenas Carlos, Poshyvanyk Denys, Enabling mutation testing for android apps, in: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2017, Paderborn, Germany, September 4-8 2017, ACM, 2017, pp. 233–244.
[51]
Voas Jeffrey M., McGraw Gary, Software Fault Injection: Inoculating Programs Against Errors, John Wiley & Sons, Inc., USA, 1997, 0471183814.
[52]
Wang, Dinghua, Li, Shuqing, Xiao, Guanping, Liu, Yepang, Sui, Yulei, 2021. An exploratory study of autopilot software bugs in unmanned aerial vehicles. In: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. pp. 20–31.
[53]
Wen, Fengcai, Nagy, Csaba, Bavota, Gabriele, Lanza, Michele, 2019. A large-scale empirical study on code-comment inconsistencies. In: Proceedings of the 27th International Conference on Program Comprehension, ICPC 2019, Montreal, QC, Canada, May 25-31 2019. pp. 53–64.
[54]
Xu Wuzhi, Offutt Jeff, Luo Juan, Testing web services by XML perturbation, in: 16th International Symposium on Software Reliability Engineering (ISSRE 2005), 8-11 November 2005, Chicago, IL, USA, 2005, pp. 257–266,.
[55]
Yalçin Siddika Berna Örs, Demirci Ömer, Soltekin M. Murat Enes, Designing and implementing secure automotive network for autonomous cars, in: 29th Signal Processing and Communications Applications Conference, SIU 2021, Istanbul, Turkey, June 9-11, IEEE, 2021, pp. 1–4,. 2021.
[56]
Zampetti Fiorella, Kapur Ritu, Penta Massimiliano Di, Panichella Sebastiano, Dataset of the Paper ”an Empirical Characterization of Software Bugs in Open-Source Cyber-Physical Systems”, 2022,.
[57]
Zhang D., Feng G., Shi Y., Srinivasan D., Physical safety and cyber security analysis of multi-agent systems: A survey of recent advances, IEEE/CAA J. Autom. Sin. 8 2 (2021) (2021) 319–333,.
[58]
Zhou Yu, Gu Ruihang, Chen Taolue, Huang Zhiqiu, Panichella Sebastiano, Gall Harald C., Analyzing APIs documentation and code to detect directive defects, in: Uchitel Sebastián, Orso Alessandro, Robillard Martin P. (Eds.), Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20-28 2017, IEEE / ACM, 2017, pp. 27–37,.
[59]
Zhou Husheng, Li Wei, Kong Zelun, Guo Junfeng, Zhang Yuqun, Yu Bei, Zhang Lingming, Liu Cong, DeepBillboard: systematic physical-world testing of autonomous driving systems, in: ICSE ’20: 42nd International Conference on Software Engineering, Seoul, South Korea, 27 June - 19 July 2020, ACM, 2020, pp. 347–358.
[60]
Zhou Yu, Wang Changzhi, Yan Xin, Chen Taolue, Panichella Sebastiano, Gall Harald C., Automatic detection and repair recommendation of directive defects in java API documentation, IEEE Trans. Softw. Eng. 46 9 (2020) (2020) 1004–1023,.
[61]
Zhou Y., Yu F.R., Chen J., Kuo Y., Cyber-physical-social systems: A state-of-the-art survey, challenges and opportunities, IEEE Commun. Surv. Tutor. 22 1 (2020) 389–425,. 2020.
[62]
Zimmermann Thomas, Premraj Rahul, Bettenburg Nicolas, Just Sascha, Schröter Adrian, Weiss Cathrin, What makes a good bug report?, IEEE Trans. Softw. Eng. 36 5 (2010) 618–643,. 2010.

Cited By

View all
  • (2024)ROCAS: Root Cause Analysis of Autonomous Driving Accidents via Cyber-Physical Co-mutationProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695530(1620-1632)Online publication date: 27-Oct-2024
  • (2024)On the Accuracy of GitHub's Dependency GraphProceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering10.1145/3661167.3661175(242-251)Online publication date: 18-Jun-2024
  • (2024)State Reconciliation Defects in Infrastructure as CodeProceedings of the ACM on Software Engineering10.1145/36607901:FSE(1865-1888)Online publication date: 12-Jul-2024
  • Show More Cited By

Index Terms

  1. An empirical characterization of software bugs in open-source Cyber–Physical Systems
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image Journal of Systems and Software
      Journal of Systems and Software  Volume 192, Issue C
      Oct 2022
      312 pages

      Publisher

      Elsevier Science Inc.

      United States

      Publication History

      Published: 01 October 2022

      Author Tags

      1. Cyber-Physical Systems
      2. Open-source
      3. Bugs
      4. Defects taxonomy

      Qualifiers

      • Research-article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 01 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)ROCAS: Root Cause Analysis of Autonomous Driving Accidents via Cyber-Physical Co-mutationProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695530(1620-1632)Online publication date: 27-Oct-2024
      • (2024)On the Accuracy of GitHub's Dependency GraphProceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering10.1145/3661167.3661175(242-251)Online publication date: 18-Jun-2024
      • (2024)State Reconciliation Defects in Infrastructure as CodeProceedings of the ACM on Software Engineering10.1145/36607901:FSE(1865-1888)Online publication date: 12-Jul-2024
      • (2024)How Does Simulation-Based Testing for Self-Driving Cars Match Human Perception?Proceedings of the ACM on Software Engineering10.1145/36437681:FSE(929-950)Online publication date: 12-Jul-2024
      • (2024)SBFT Tool Competition 2024 - CPS-UAV Test Case Generation TrackProceedings of the 17th ACM/IEEE International Workshop on Search-Based and Fuzz Testing10.1145/3643659.3643931(29-32)Online publication date: 14-Apr-2024
      • (2024)An Exploratory Investigation of Log Anomalies in Unmanned Aerial VehiclesProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639186(1-13)Online publication date: 20-May-2024
      • (2024)A Failure Model Library for Simulation-Based Validation of Functional SafetyComputer Safety, Reliability, and Security10.1007/978-3-031-68606-1_2(18-32)Online publication date: 17-Sep-2024
      • (2023)A Survey on Automated Driving System Testing: Landscapes and TrendsACM Transactions on Software Engineering and Methodology10.1145/357964232:5(1-62)Online publication date: 24-Jul-2023
      • (2023)Cost-effective simulation-based test selection in self-driving cars software▪Science of Computer Programming10.1016/j.scico.2023.102926226:COnline publication date: 1-Mar-2023
      • (2023)Towards a taxonomy of Roxygen documentation in R packagesEmpirical Software Engineering10.1007/s10664-023-10345-428:4Online publication date: 15-Jul-2023
      • Show More Cited By

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media