z-logo
Premium
DEMINER : test generation for high test coverage through mutant exploration
Author(s) -
Kim Yunho,
Hong Shin
Publication year - 2019
Publication title -
software testing, verification and reliability
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.216
H-Index - 49
eISSN - 1099-1689
pISSN - 0960-0833
DOI - 10.1002/stvr.1715
Subject(s) - fuzz testing , code coverage , computer science , test case , concolic testing , software , mutation , sort , process (computing) , programming language , symbolic execution , machine learning , database , biology , biochemistry , regression analysis , gene
Summary Most software testing techniques test a target program as it is and fail to utilize valuable information of diverse test executions on many variants/mutants of the original program in test generation. This paper proposes a new test generation technique DEMINER , which utilizes mutant executions to guide test generation on the original program for high test coverage. DEMINER first generates various mutants of an original target program and then extracts runtime information of mutant executions, which covered unreached branches by the mutation effects. Using the obtained runtime information, DEMINER inserts guideposts , artificial branches to replay the observed mutation effects, to the original target programs. Finally, DEMINER runs automated test generation on the original program with guideposts and achieves higher test coverage. We implemented DEMINER for C programs through software mutation and guided test generation such as concolic testing and fuzzing. We have shown the effectiveness of DEMINER on six real‐world target programs: Busybox‐ls , Busybox‐printf , Coreutils‐sort, GNU‐find , GNU‐grep and GNU‐sed . The experiment results show that DEMINER improved branch coverage by 63.4% and 19.6% compared with those of the conventional concolic testing techniques and the conventional fuzzing techniques on average, respectively.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here