TY - JOUR
T1 - Precise Concolic Unit Testing of C Programs using Extended Units and Symbolic Alarm Filtering
AU - Kim, Yunho
AU - Choi, Yunja
AU - Kim, Moonzoo
N1 - Publisher Copyright:
© 2018 Copyright held by the owner/author(s).
PY - 2018
Y1 - 2018
N2 - 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 andclosely relevant 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.
AB - 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 andclosely relevant 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.
UR - http://www.scopus.com/inward/record.url?scp=85048439145&partnerID=8YFLogxK
U2 - 10.1145/3180155.3180253
DO - 10.1145/3180155.3180253
M3 - Conference article
AN - SCOPUS:85048439145
SN - 0270-5257
VL - 2018-January
SP - 315
EP - 326
JO - Proceedings - International Conference on Software Engineering
JF - Proceedings - International Conference on Software Engineering
T2 - 40th International Conference on Software Engineering, ICSE 2018
Y2 - 27 May 2018 through 3 June 2018
ER -