SmartUnit: Empirical Evaluations for Automated Unit Testing of Embedded Software in Industry
Chengyu Zhang, Yichen Yan, Hanru Zhou, Yinbo Yao, Ke Wu, Ting Su,, Weikai Miao, Geguang Pu

TL;DR
SmartUnit is an automated testing tool for embedded software that uses dynamic symbolic execution to achieve high coverage and detect runtime exceptions, validated on real industrial and open-source projects.
Contribution
This paper introduces SmartUnit, a new automated unit testing tool tailored for embedded software, demonstrating its effectiveness in industrial and open-source contexts.
Findings
Over 90% of functions in commercial embedded software reach 100% coverage.
SmartUnit detects runtime exceptions like array out-of-bounds and division by zero.
High scalability demonstrated on open-source database projects.
Abstract
In this paper, we aim at the automated unit coverage-based testing for embedded software. To achieve the goal, by analyzing the industrial requirements and our previous work on automated unit testing tool CAUT, we rebuild a new tool, SmartUnit, to solve the engineering requirements that take place in our partner companies. SmartUnit is a dynamic symbolic execution implementation, which supports statement, branch, boundary value and MC/DC coverage. SmartUnit has been used to test more than one million lines of code in real projects. For confidentiality motives, we select three in-house real projects for the empirical evaluations. We also carry out our evaluations on two open source database projects, SQLite and PostgreSQL, to test the scalability of our tool since the scale of the embedded software project is mostly not large, 5K-50K lines of code on average. From our experimental…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
