Precise Concolic Unit Testing of C Programs using Extended Units and Symbolic Alarm Filtering

Author email: yunho.kin03@gmail.com
Tool name: CONBRIO
Description: Automated unit testing reduces manual effort to write unit test drivers/stubs and generate unit test inputs. However, automatically generated unit test drivers/stubs raise false alarms because they often over-approximate real contexts of a target function f and allow infeasible executions of f. To solve this problem, we have developed a concolic unit testing technique CONBRIO. To provide realistic context to f, it constructs an extended unit of f that consists of f and closelyrelevant functions to f. Also, CONBRIO filters out a false alarm by checking feasibility of a corresponding symbolic execution path with regard to f's symbolic calling contexts obtained by combining symbolic execution paths of f's closely related predecessor functions. In the experiments on the crash bugs of 15 real-world C programs, CONBRIO shows both high bug detection ability (i.e. 91.0% of the target bugs detected) and high precision (i.e. a true to false alarm ratio is 1:4.5). Also, CONBRIO detects 14 new bugs in 9 target C programs studied in papers on crash bug detection techniques.
Bibtex: @inproceedings{10.1145/3180155.3180253, author = {Kim, Yunho and Choi, Yunja and Kim, Moonzoo}, title = {Precise Concolic Unit Testing of C Programs Using Extended Units and Symbolic Alarm Filtering}, year = {2018}, isbn = {9781450356381}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3180155.3180253}, doi = {10.1145/3180155.3180253}, booktitle = {Proceedings of the 40th International Conference on Software Engineering}, pages = {315–326}, numpages = {12}, location = {Gothenburg, Sweden}, series = {ICSE ’18} }
Link to public pdf: https://dl.acm.org/doi/abs/10.1145/3180155.3180253
Link to tool webpage: http://swtv.kaist.ac.kr/tools/conbrio
Link to demo: Not provided by authors
Category: None
Year and Conference: 2018, ICSE
Terms of use