UnitTestBot: Automated Unit Test Generation for C Code in Integrated Development Environments.

Dmitry Ivanov, Alexey Babushkin, Saveliy Grigoryev, Pavel Iatchenii, Vladislav Kalugin, Egor Kichin,Egor Kulikov,Aleksandr Misonizhnik,Dmitry Mordvinov, Sergey Morozov,Olga Naumenko, Alexey Pleshakov,Pavel Ponomarev,Svetlana Shmidt,Alexey Utkin, Vadim Volodin, Arseniy Volynets

ICSE Companion(2023)

引用 0|浏览3
暂无评分
摘要
Symbolic execution (SE) is one of the most promising techniques for automated unit test generation, which is claimed to streamline the testing process and reduce developers' effort. There are symbolic execution engines working for Java, C, C#, C++, Python, .NET. The KLEE dynamic symbolic execution engine is one of the most elaborated ones - it is built on top of the LLVM compiler infrastructure and can automatically generate inputs for C code unit testing. There are numerous attempts to apply KLEE to real-life software projects, while the industry experience still shows little transfer from research to practice. The extensions to popular integrated development environments (IDEs) are supposed to be breaking down this barrier. As far as there are not so many working tools like this, we share our experience of implementing the KLEE-based Visual Studio Code and CLion extensions for generating ready-to-use test cases- UnitTestBot for C code - and describe the challenges we had to rise to. We also share the solutions we came up with: without introducing "new" techniques, we made automated unit test generation really automated and supplemented it with the simple wizard interface. That was enough for turning an effective but demanding technology into a user-friendly tool, which is easy to adopt. Finally, we provide examples of running UnitTestBot on the open-source projects as well as Huawei nonpublic code.
更多
查看译文
关键词
software testing,automated unit test generation,symbolic execution,KLEE,integrated development environment
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要