Abstract

Regression testing is performed whenever software undergoes modifications, which may be due to bug fixes or feature enhancements. The purpose of regression testing is to ensure that modifications to the code do not affect the existing functionality. Regression testing is costly because the test suite might be too large to execute in full. To reduce this cost, regression testing has three main approaches, i.e., test suite minimization, test case selection and test case prioritization. Test case prioritization does not eliminate any test case rather it finds an ordered list of test cases to maximize the fault detection rate. Black box prioritization prioritizes test cases based on requirements coverage, while white box approaches prioritize test cases based on code coverage. The focus of this paper is on the black box test case prioritization using requirements coverage for regression testing. Black box prioritization is independent of the code modifications, therefore, it can be started early. The proposed approach prioritizes test cases based on the complexity of requirements covered. The existing requirements based prioritization techniques assign equal importance to each requirement when prioritizing test cases based on requirements coverage, which may not maximize fault detection rate because complex requirements may need to be tested with multiple test cases. Our proposed approach assigns weights to the requirements based on their complexity, and test cases are prioritized using these weights. Comparison with existing approach shows that the proposed approach results in better prioritization of test cases because of higher average percentage of fault detection (APFD).

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call