MAESTRO: Automated test generation framework for high test coverage and reduced human effort in automotive industry

Yunho Kim,Dongju Lee,Junki Baek,Moonzoo Kim
DOI: https://doi.org/10.1016/j.infsof.2019.106221
IF: 3.9
2020-07-01
Information and Software Technology
Abstract:Context:The importance of automotive software has been rapidly increasing because software controls many components of motor vehicles such as smart-key system, tire pressure monitoring system, and advanced driver assistance system. Consequently, the automotive industry spends a large amount of human effort to test automotive software and is interested in automated testing techniques to ensure high-quality automotive software with reduced human effort. Objective:Applying automated test generation techniques to automotive software is technically challenging because of false alarms caused by imprecise test drivers/stubs and lack of tool supports for symbolic analysis of bit-fields and function pointers in C. To address such challenges, we have developed an automated testing framework MAESTRO. Method:MAESTROautomatically builds a test driver and stubs for a target task (i.e., a software unit consisting of target functions). Then, it generates test inputs to a target task with the test driver and stubs by applying concolic testing and fuzzing together in an adaptive way. In addition, MAESTROtransforms a target program that uses bit-fields into a semantically equivalent one that does not use bit-fields. Also, MAESTROsupports symbolic function pointers by identifying the candidate functions of a symbolic function pointer through static analysis. Results: MAESTROachieved 94.2% branch coverage and 82.3% MC/DC coverage on the four target modules (238 KLOC) developed by Hyundai Mobis. Furthermore, it significantly reduced the cost of coverage testing by reducing the manual effort for coverage testing by 58.8%. Conclusion: By applying automated testing techniques, MAESTROcan achieve high test coverage for automotive software with significantly reduced manual testing effort.
computer science, information systems, software engineering
What problem does this paper attempt to address?