skip to main content
10.1109/ICSE-SEIP.2019.00024acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Concolic testing for high test coverage and reduced human effort in automotive industry

Published: 27 May 2019 Publication History

Abstract

The importance of automotive software has been rapidly increasing because software now controls many components in motor vehicles such as window controller, smart-key system, and tire pressure monitoring system. Consequently, the automotive industry spends a large amount of human effort testing automotive software and is interested in automated software testing techniques that can ensure high-quality automotive software with reduced human effort.
In this paper, we report our industrial experience applying concolic testing to automotive software developed by Hyundai Mobis. We have developed an automated testing framework MAIST that automatically generates the test driver, stubs, and test inputs to a target task by applying concolic testing. As a result, MAIST has achieved 90.5% branch coverage and 77.8% MC/DC coverage on the integrated body unit (IBU) software. Furthermore, it reduced the cost of IBU coverage testing by reducing the manual testing effort for coverage testing by 53.3%.

References

[1]
M. Broy, "Challenges in automotive software engineering," in International Conference on Software Engineering (ICSE). New York, NY, USA: ACM, 2006, pp. 33--42.
[2]
M. Broy, I. H. Kruger, A. Pretschner, and C. Salzmann, "Engineering automotive software," Proceedings of the IEEE, vol. 95, no. 2, pp. 356--373, Feb 2007.
[3]
F. Falcini, G. Lami, and A. M. Costanza, "Deep learning in automotive software," IEEE Software, vol. 34, no. 3, pp. 56--63, May 2017.
[4]
M. Traub, A. Maier, and K. L. Barbehön, "Future automotive architecture and the impact of it trends," IEEE Software, vol. 34, no. 3, pp. 27--32, May 2017.
[5]
K. Sen, D. Marinov, and G. Agha, "CUTE: A concolic unit testing engine for C," in European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), 2005, pp. 263--272.
[6]
N. Tillmann and W. Schulte, "Parameterized unit tests," in European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), 2005.
[7]
M. Kim, Y. Kim, and Y. Choi, "Concolic testing of the multi-sector read operation for flash storage platform software," Formal Aspects of Computing, vol. 24, no. 3, pp. 355--374, May 2012.
[8]
M. Kim, Y. Kim, and Y. Jang, "Industrial application of concolic testing on embedded software: Case studies," in IEEE International Conference on Software Testing, Verification and Validation (ICST), 2012, pp. 390--399.
[9]
Y. Kim, M. Kim, Y. Kim, and Y. Jang, "Industrial application of concolic testing approach: A case study on libexif by using CREST-BV and KLEE," in International Conference on Software Engineering (ICSE), 2012, pp. 1143--1152.
[10]
Y. Kim, Y. Kim, T. Kim, G. Lee, Y. Jang, and M. Kim, "Automated unit testing of large industrial embedded software using concolic testing," in Automated Software Engineering (ASE), 2013, pp. 519--528.
[11]
"Hyundai mobis increases ai use for improved efficiency," http://www.koreaherald.com/view.php?ud=20180722000186, accessed: 2018-10-10.
[12]
"Hyundai mobis taps ai for car software," https://www.koreatimes.co.kr/www/tech/2018/07/419_252629.html, accessed: 2018-10-01.
[13]
"Hyundai mobis introduces ai-based software verification system," http://www.businesskorea.co.kr/news/articleView.html?idxno=23830, accessed: 2018-10-01.
[14]
Y. Kim, Y. Choi, and M. Kim, "Precise concolic unit testing of c programs using extended units and symbolic alarm filtering," in International Conference on Software Engineering (ICSE), 2018, pp. 315--326.
[15]
"Open hub, the open source network," https://www.openhub.net/.
[16]
C. Lattner and V. Adve, "LLVM: A compilation framework for lifelong program analysis & transformation," in Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization, ser. CGO '04, 2004.
[17]
G. Necula, S. McPeak, S. Rahul, and W. Weimer, "CIL: Intermediate language and tools for analysis and transformation of c programs," in Compiler Construction (CC), 2002.
[18]
J. Burnim, "CREST - automatic test generation tool for C," http://code.google.com/p/crest/.
[19]
C. Cadar, D. Dunbar, and D. Engler, "KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs," in Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, ser. OSDI'08, 2008, pp. 209--224.
[20]
N. Williams, B. Marre, P. Mouy, and M. Roger, "Pathcrawler: automatic generation of path tests by combining static and dynamic analysis," in EDCC, 2005.
[21]
R. Baldoni, E. Coppa, D. C. D'elia, C. Demetrescu, and I. Finocchi, "A survey of symbolic execution techniques," ACM Comput. Surv., vol. 51, no. 3, pp. 50:1--50:39, May 2018.
[22]
J. Burnim and K. Sen, "Heuristics for scalable dynamic test generation," EECS Department, University of California, Berkeley, Tech. Rep. UCB/EECS-2008-123, Sep 2008.
[23]
"Testwell CTC++," https://www.verifysoft.com/en_ctcpp.html, accessed: 2018-10-01.
[24]
N. Tillmann and J. De Halleux, "Pex: White box test generation for .NET," in Proceedings of the 2Nd International Conference on Tests and Proofs, ser. TAP'08. Berlin, Heidelberg: Springer-Verlag, 2008, pp. 134--153.
[25]
L. Ciortea, C. Zamfir, S. Bucur, V. Chipounov, and G. Candea, "Cloud9: a software testing service," ACM SIGOPS Operating Systems Review, vol. 43, no. 4, pp. 5--10, 2010.
[26]
K. Jayaraman, D. Harvison, V. Ganesh, and A. Kiezun, "jFuzz: A concolic whitebox fuzzer for Java," in NFM, 2009.
[27]
C. S. Pǎsǎreanu, P. C. Mehlitz, D. H. Bushnell, K. Gundy-Burlet, M. Lowry, S. Person, and M. Pape, "Combining unit-level symbolic execution and system-level concrete execution for testing NASA software," in Proceedings of the 2008 International Symposium on Software Testing and Analysis, 2008, pp. 15--26.
[28]
W. Visser, K. Havelund, G. Brat, and S. Park, "Model checking programs," in ASE, Sep. 2000.
[29]
P. Godefroid, N. Klarlund, and K. Sen, "DART: Directed automated random testing," in Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, 2005, pp. 213--223.
[30]
M. Kim, Y. Kim, and G. Rothermel, "A scalable distributed concolic testing approach: An empirical evaluation," in IEEE International Conference on Software Testing, Verification and Validation (ICST), April 2012, pp. 340--349.
[31]
K. Sen and G. Agha, "CUTE and jCUTE: Concolic unit testing and explicit path model-checking tools," in CAV, 2006.
[32]
"Catg: Concolic testing engine for java," https://github.com/ksen007/janala2, accessed: 2018-10-01.
[33]
D. A. Ramos and D. Engler, "Under-constrained symbolic execution: Correctness checking for real code," in Proceedings of the 24th USENIX Conference on Security Symposium, ser. SEC'15, 2015, pp. 49--64.
[34]
S. Khurshid, C. S. Păsăreanu, and W. Visser, "Generalized symbolic execution for model checking and testing," in Proceedings of the 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, ser. TACAS'03, 2003, pp. 553--568.
[35]
A. Chakrabarti and P. Godefroid, "Software partitioning for effective automated unit testing," in Proceedings of the 6th International Conference on Embedded Software, ser. EMSOFT '06. New York, NY, USA: ACM, 2006, pp. 262--271.
[36]
T. Kim, J. Park, I. Kulida, and Y. Jang, "Concolic testing framework for industrial embedded software," in 2014 21st Asia-Pacific Software Engineering Conference, vol. 2, Dec 2014, pp. 7--10.
[37]
C. Zhang, Y. Yan, H. Zhou, Y. Yao, K. Wu, T. Su, W. Miao, and G. Pu, "Smartunit: Empirical evaluations for automated unit testing of embedded software in industry," in Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice, 2018, pp. 296--305.
[38]
P. Godefroid, A. Kiezun, and M. Y. Levin, "Grammar-based white-box fuzzing," in Programming Language Design and Implementation (PLDI), 2008.
[39]
"Microsoft security risk detection," https://www.microsoft.com/en-us/security-risk-detection/.
[40]
S. Bardin and P. Herrmann, "Structural testing of executables," in International Conference on Software Testing, Verification and Validation (ICST), 2008.
[41]
S. Bardin, "OSMOSE: automatic structural testing of executables," Journal of Software Testing, Verification, and Reliability (STVR), vol. 21, no. 1, pp. 29--54, 2011.
[42]
A. Franzén, A. Cimatti, A. Nadel, R. Sebastiani, and J. Shalev, "Applying smt in symbolic execution of microcode," in Formal Methods in Computer Aided Design, Oct 2010, pp. 121--128.
[43]
G. Li, I. Ghosh, and S. P. Rajan, "Klover: A symbolic execution and automatic test generation tool for c++ programs," in Computer Aided Verification, G. Gopalakrishnan and S. Qadeer, Eds., 2011, pp. 609--615.
[44]
M. Kim and Y. Kim, "Concolic testing of the multi-sector read operation for flash memory file system," in Brazilian Symposium on Formal Methods, 2009.
[45]
Y. Park, S. Hong, M. Kim, D. Lee, and J. Cho, "Systematic testing of reactive software with non-deterministic events: A case study on lg electric oven," in 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 2, May 2015, pp. 29--38.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE-SEIP '19: Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice
May 2019
339 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 27 May 2019

Check for updates

Author Tags

  1. automated test generation
  2. automotive software
  3. concolic testing
  4. coverage testing

Qualifiers

  • Research-article

Conference

ICSE '19
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media