Incremental Techniques in Automated Test Case Generation
In this dissertation, we propose to use incremental techniques to solve this problem in which we save some information during an execution and reuse it in the next incremental execution. Doing so we avoid redundant work. We apply these techniques in two systematic techniques: bounded exhaustive test case generation and symbolic execution.
For the former, we use state-of-the-art tool Korat to generate structures according the given specification. We extend it to work in incremental fashion. Our implementation enables iterative deepening and translates to breadth-first exploration of the search space.
For the latter, we extend KLEE for symbolic execution to work incrementally for test suite maintenance. We use as much test cases as possible from the previous execution and for the newer version generate test cases only for the newly introduced paths. We also take care of infeasible paths, which may travel through different code versions and be attempted for solution uselessly. We show that it performs better than the naive invocation of KLEE on the newer version of code.
List of Publications from Thesis Work
1. Rauf, Affan, Muhammad Nawaz, and Junaid Haroon Siddiqui. "Effective State Encoding for Breadth-First Generation of Complex Structures." IEEE Transactions on Reliability 68, no. 3 (2019): 1154-1167.
Available at: https://ieeexplore.ieee.org/abstract/document/8733194
2. Rauf, Affan, Muhammad Nawaz, and Junaid Haroon Siddiqui. "Efficient iterative deepening for bounded exhaustive generation of complex structures." In Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, ACM, 2018.
Available at: https://dl.acm.org/citation.cfm?id=3195002