Multi-objective Test Suite Prioritization Using Concolic Testing
Gayatri Nayak1, Mitrabinda Ray2
1GayatriNayak, Department of Computer Science & Engineering, Siksha O Anusandhan Deemed to be University, Bhubaneswar, India.
2Mitrabinda Ray, Department of Computer Science & Engineering, Siksha O Anusandhan Deemed to be University, Bhubaneswar, India.
Manuscript received on 02 June 2019 | Revised Manuscript received on 10 June 2019 | Manuscript published on 30 June 2019 | PP: 214-217 | Volume-8 Issue-8, June 2019 | Retrieval Number: E6308038519/19©BEIESP
Open Access | Ethics and Policies | Cite | Mendeley | Indexing and Abstracting
© The Authors. Blue Eyes Intelligence Engineering and Sciences Publication (BEIESP). This is an open access article under the CC-BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/)
Abstract: Test suite prioritization is a testing procedure where test cases of individual test suite are ordered to maximize fault detection potential. Test Prioritization is an effective method, because it helps to cover more number of faults in executing less number of test cases. During our literature survey, we found many test case prioritization approaches, considering either branch coverage or path coverage. But, we feel it is not a complete coverage testing adequacy method. Because, there is no guaranty that a hundred percent branch coverage will lead to cover all paths of a program under test. Thus, we present a multi-objective test suite prioritization approach to prioritize the test suites of a system using concolic testing to achieve testing adequacy. Here, we have considered branch coverage and path coverage as multiple objectives for measuring strength of a test suite and ranking them. The sole reason behind choosing concolic testing method is that it always gives higher code coverage score with minimal number of test inputs. Because it is a hybrid testing method that uses concrete and symbolic execution with in-built mathematical model named constraint solver. Therefore, in this work, we have used concolic testing to test Java programs and obtain results like test suites, branch coverage percentage, and path coverage percentage. Then, these results are used by Test Suite Weight Evaluator Algorithm for prioritizing the test suites. This prioritization method is targeting to achieve high branch coverage, high path coverage. We have validated our proposed approach by executing twenty standard Java programs.
Keyword: Test Case Prioritization, Path coverage, Branch Coverage, Concolic Testing.
Scope of the Article: Software and System Testing Methods