Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
169 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Search-based Automated Program Repair of CPS Controllers Modeled in Simulink-Stateflow (2404.04688v1)

Published 6 Apr 2024 in cs.SE

Abstract: Stateflow models are widely used in the industry to model the high-level control logic of Cyber-Physical Systems (CPSs) in Simulink--the defacto CPS simulator. Many approaches exist to test Simulink models, but once a fault is detected, the process to repair it remains manual. Such a manual process increases the software development cost, making it paramount to develop novel techniques that reduce this cost. Automated Program Repair (APR) techniques can significantly reduce the time for fixing bugs by automatically generating patches. However, current approaches face scalability issues to be applicable in the CPS context. To deal with this problem, we propose an automated search-based approach called FlowRepair, explicitly designed to repair Stateflow models. The novelty of FlowRepair includes, (1) a new algorithm that combines global and local search for patch generation; (2) a definition of novel repair objectives (e.g., the time a fault remained active) specifically designed for repairing CPSs; and (3) a set of mutation operators to repair Stateflow models automatically. We evaluated FlowRepair with three different case study systems and a total of nine faulty stateflow models. Our experiments suggest that (1) Flo wRepaircan fix bugs in stateflow models, including models with multiple faults; (2) FlowRepair surpasses or performs similarly to a baseline APR technique inspired by a well-known CPS program repair approach. Besides, we provide both a replication package and a live repository, paving the way towards the APR of CPSs modeled in Simulink.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (71)
  1. Modeling cyber–physical systems. Proceedings of the IEEE, 100(1):13–28, 2011.
  2. Automated test suite generation for time-continuous simulink models. In proceedings of the 38th International Conference on Software Engineering, pages 595–606, 2016.
  3. Test generation and test prioritization for simulink models with dynamic behavior. IEEE Transactions on Software Engineering, 45(9):919–944, 2018.
  4. Search-based test case prioritization for simulation-based testing of cyber-physical system product lines. Journal of Systems and Software, 149:1–34, 2019.
  5. Simulation-based test case generation for unmanned aerial vehicles in the neighborhood of real flights. In 2023 IEEE Conference on Software Testing, Verification and Validation (ICST), pages 281–292. IEEE, 2023.
  6. Testing advanced driver assistance systems using multi-objective search and neural networks. In Proceedings of the 31st IEEE/ACM international conference on automated software engineering, pages 63–74, 2016.
  7. Testing vision-based control systems using learnable evolutionary algorithms. In Proceedings of the 40th International Conference on Software Engineering, pages 1016–1026, 2018.
  8. Stress testing control loops in cyber-physical systems. ACM Transactions on Software Engineering and Methodology, 2023.
  9. Employing multi-objective search to enhance reactive test case generation and prioritization for testing industrial cyber-physical systems. IEEE Transactions on Industrial Informatics, 14(3):1055–1066, 2017.
  10. Approximation-refinement testing of compute-intensive cyber-physical models: An approach based on system identification. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, pages 372–384, 2020.
  11. Generating automated and online test oracles for simulink models with continuous and uncertain behaviors. In Proceedings of the 2019 27th acm joint meeting on european software engineering conference and symposium on the foundations of software engineering, pages 27–38, 2019.
  12. Genprog: A generic method for automatic software repair. Ieee transactions on software engineering, 38(1):54–72, 2011.
  13. Arja: Automated repair of java programs via multi-objective genetic programming. IEEE Transactions on software engineering, 46(10):1040–1067, 2018.
  14. Semfix: Program repair via semantic analysis. In 2013 35th International Conference on Software Engineering (ICSE), pages 772–781. IEEE, 2013.
  15. An empirical investigation into learning bug-fixing patches in the wild via neural machine translation. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, pages 832–837, 2018.
  16. Automated program repair in the era of large pre-trained language models. In Proceedings of the 45th International Conference on Software Engineering (ICSE 2023). Association for Computing Machinery, 2023.
  17. Less training, more repairing please: revisiting automated program repair via zero-shot learning. In Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 959–971, 2022.
  18. An analysis of the automatic bug fixing performance of chatgpt. In IEEE/ACM International Workshop on Automated Program Repair, APR@ICSE 2023, Melbourne, Australia, May 16, 2023, pages 23–30. IEEE, 2023.
  19. Automated misconfiguration repair of configurable cyber-physical systems with search: an industrial case study on elevator dispatching algorithms. In 45th IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice, SEIP@ICSE 2023, Melbourne, Australia, May 14-20, 2023, pages 396–408. IEEE, 2023.
  20. Automated repair of feature interaction failures in automated driving systems. In Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 88–100, 2020.
  21. Comparing offline and online testing of deep neural networks: An autonomous car case study. In 2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST), pages 85–95. IEEE, 2020.
  22. Can offline testing of deep neural networks replace their online testing? a case study of automated driving systems. Empirical Software Engineering, 26(5):90, 2021.
  23. Automated program repair. Communications of the ACM, 62(12):56–65, 2019.
  24. Evaluating model testing and model checking for finding requirements violations in simulink models. In Proceedings of the 2019 27th acm joint meeting on european software engineering conference and symposium on the foundations of software engineering, pages 1015–1025, 2019.
  25. Two simulink models with requirements for a simple controller of a pacemaker device. In Proceedings of 9th International Workshop on Applied, volume 90, pages 18–25, 2022.
  26. Getafix: Learning to fix bugs automatically. Proceedings of the ACM on Programming Languages, 3(OOPSLA):1–27, 2019.
  27. MathWorks. Stateflow, 2023.
  28. A survey on software fault localization. IEEE Transactions on Software Engineering, 42(8):707–740, 2016.
  29. Autorepair: Automated repair for ai-enabled cyber-physical systems under safety-critical conditions. arXiv preprint arXiv:2304.05617, 2023.
  30. Can automated program repair refine fault localization? a unified debugging approach. In Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis, pages 75–87, 2020.
  31. Evaluating and improving unified debugging. IEEE Transactions on Software Engineering, 48(11):4692–4716, 2021.
  32. Propr: property-based automatic program repair. In Proceedings of the 44th International Conference on Software Engineering, pages 1768–1780, 2022.
  33. Swarmbug: debugging configuration bugs in swarm robotics. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 868–880, 2021.
  34. A configurable validation environment for refactored embedded software: An application to the vertical transport domain. In 2017 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), pages 16–19. IEEE, 2017.
  35. A practical guide for using statistical tests to assess randomized algorithms in software engineering. In Proceedings of the 33rd International Conference on Software Engineering, ICSE ’11, page 1–10, New York, NY, USA, 2011. Association for Computing Machinery.
  36. Cure: Code-aware neural machine translation for automatic program repair. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), pages 1161–1173. IEEE, 2021.
  37. Coconut: combining context-aware neural translation models using ensemble for program repair. In Proceedings of the 29th ACM SIGSOFT international symposium on software testing and analysis, pages 101–114, 2020.
  38. Automated repair of programs from large language models. In 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE), pages 1469–1481. IEEE, 2023.
  39. Survey on test case generation, selection and prioritization for cyber-physical systems. Software Testing, Verification and Reliability, 32(1):e1794, 2022.
  40. Model-based exploration of the frontier of behaviours for deep learning system testing. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 876–888, 2020.
  41. Verification of automotive control applications using s-taliro. In 2012 American Control Conference (ACC), pages 3567–3572. IEEE, 2012.
  42. A search-based framework for automatic generation of testing environments for cyber–physical systems. Information and Software Technology, 149:106936, 2022.
  43. Pareto efficient multi-objective black-box test case selection for simulation-based testing. Information and Software Technology, 114:137–154, 2019.
  44. Performance-driven metamorphic testing of cyber-physical systems. IEEE Transactions on Reliability, 2022.
  45. Generating metamorphic relations for cyber-physical systems with genetic programming: an industrial case study. In Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 1264–1274, 2021.
  46. Learning configurations of operating environment of autonomous vehicles to maximize their collisions. IEEE Transactions on Software Engineering, 49(1):384–402, 2023.
  47. Deepbillboard: Systematic physical-world testing of autonomous driving systems. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering, pages 347–358, 2020.
  48. 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, pages 132–142, 2018.
  49. Deeptest: Automated testing of deep-neural-network-driven autonomous cars. In Proceedings of the 40th international conference on software engineering, pages 303–314, 2018.
  50. Uncertainty-wise cyber-physical system test modeling. Software & Systems Modeling, 18(2):1379–1418, 2019.
  51. Uncertainty-wise test case generation and minimization for cyber-physical systems. Journal of Systems and Software, 153:1–21, 2019.
  52. Hita: An architecture for system-level testing of healthcare iot applications. In Proceedings of the 17th European Conference on Software Architecture: Companion Proceedings. Springer, 2023. To Appear.
  53. Automatic generation of test system instances for configurable cyber-physical systems. Software Quality Journal, 25(3):1041–1083, 2017.
  54. Improving fault localization for simulink models using search-based testing and prediction models. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 359–370. IEEE, 2017.
  55. Localizing multiple faults in simulink models. In 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), volume 1, pages 146–156. IEEE, 2016.
  56. Simulink fault localization: an iterative statistical debugging approach. Software Testing, Verification and Reliability, 26(6):431–459, 2016.
  57. Effective fault localization of automotive simulink models: achieving the trade-off between test oracle effort and fault localization accuracy. Empirical Software Engineering, pages 1–47, 2018.
  58. Search-based testing for accurate fault localization in cps. In 2022 IEEE 33rd International Symposium on Software Reliability Engineering (ISSRE), pages 145–156. IEEE, 2022.
  59. Parameter optimization in control software using statistical fault localization techniques. In 2018 ACM/IEEE 9th International Conference on Cyber-Physical Systems (ICCPS), pages 220–231. IEEE, 2018.
  60. Cpsdebug: Automatic failure explanation in cps models. Int. J. Softw. Tools Technol. Transf., 23(5):783–796, oct 2021.
  61. Trace diagnostics for signal-based temporal properties. IEEE Transactions on Software Engineering, 2023.
  62. Towards the isolation of failure-inducing inputs in cyber-physical systems: is delta debugging enough? In 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 549–553. IEEE, 2022.
  63. Automatic software repair: A survey. IEEE Transactions on Software Engineering, 45(1):34–67, 2019.
  64. A novel co-evolutionary approach to automatic software bug fixing. In 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence), pages 162–168, 2008.
  65. Coevolving programs and unit tests from their specification. In Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, ASE ’07, page 397–400, New York, NY, USA, 2007. Association for Computing Machinery.
  66. Automatic patch generation learned from human-written patches. In 2013 35th International Conference on Software Engineering (ICSE), pages 802–811, 2013.
  67. Dear: A novel deep learning-based approach for automated program repair. In Proceedings of the 44th International Conference on Software Engineering, ICSE ’22, page 511–523, New York, NY, USA, 2022. Association for Computing Machinery.
  68. Improving fault localization and program repair with deep semantic features and transferred knowledge. In 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE), pages 1169–1180, 2022.
  69. Specification-guided automated debugging of cps models. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 39(11):4142–4153, 2020.
  70. Is the cure worse than the disease? overfitting in automated program repair. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, pages 532–543, 2015.
  71. Alleviating patch overfitting with automatic test generation: a study of feasibility and effectiveness for the nopol repair system. Empirical Software Engineering, 24:33–67, 2019.

Summary

We haven't generated a summary for this paper yet.