TY - GEN
T1 - Improving structural testing of object-oriented programs via integrating evolutionary testing and symbolic execution
AU - Inkumsah, Kobi
AU - Xie, Tao
PY - 2008/11/21
Y1 - 2008/11/21
N2 - Achieving high structural coverage such as branch coverage in object-oriented programs is an important and yet challenging goal due to two main challenges. First, some branches involve complex program logics and generating tests to cover them requires deep knowledge of the program structure and semantics. Second, covering some branches requires special method sequences to lead the receiver object or non-primitive arguments to specific desirable states. Previous work has developed the symbolic execution technique and the evolutionary testing technique to address these two challenges, respectively. However, neither technique was designed to address both challenges at the same time. To address the respective weaknesses of these two previous techniques, we propose a novel framework called Evacon that integrates evolutionary testing (used to search for desirable method sequences) and symbolic execution (used to generate desirable method arguments). We have implemented our framework and applied it to test 13 classes previously used in evaluating white-box test generation tools. The experimental results show that the tests generated using our framework can achieve higher branch coverage than the ones generated by evolutionary testing, symbolic execution, or random testing within the same amount of time.
AB - Achieving high structural coverage such as branch coverage in object-oriented programs is an important and yet challenging goal due to two main challenges. First, some branches involve complex program logics and generating tests to cover them requires deep knowledge of the program structure and semantics. Second, covering some branches requires special method sequences to lead the receiver object or non-primitive arguments to specific desirable states. Previous work has developed the symbolic execution technique and the evolutionary testing technique to address these two challenges, respectively. However, neither technique was designed to address both challenges at the same time. To address the respective weaknesses of these two previous techniques, we propose a novel framework called Evacon that integrates evolutionary testing (used to search for desirable method sequences) and symbolic execution (used to generate desirable method arguments). We have implemented our framework and applied it to test 13 classes previously used in evaluating white-box test generation tools. The experimental results show that the tests generated using our framework can achieve higher branch coverage than the ones generated by evolutionary testing, symbolic execution, or random testing within the same amount of time.
UR - http://www.scopus.com/inward/record.url?scp=56249091461&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=56249091461&partnerID=8YFLogxK
U2 - 10.1109/ASE.2008.40
DO - 10.1109/ASE.2008.40
M3 - Conference contribution
AN - SCOPUS:56249091461
SN - 9781424421886
T3 - ASE 2008 - 23rd IEEE/ACM International Conference on Automated Software Engineering, Proceedings
SP - 297
EP - 306
BT - ASE 2008 - 23rd IEEE/ACM International Conference on Automated Software Engineering, Proceedings
T2 - ASE 2008 - 23rd IEEE/ACM International Conference on Automated Software Engineering
Y2 - 15 September 2008 through 19 September 2008
ER -