Systematic Approaches to Improve Test Case Prioritization Using Requirements and Risks
Abstract
The use of system requirements and their risks enables software testers to identify more important test cases that can reveal faults associated with risky components. Having identified important test cases, software testers can manage the testing schedule more effectively by running such test cases earlier so that they can detect then fix faults sooner, especially, in regression testing. Some work in this area has been done, but the previous approaches and studies have some limitations, such as an improper use of requirements risks in prioritization and an inadequate evaluation method. To address the limitations, we implemented a new requirements risk-based prioritization technique and evaluated it considering whether the proposed approach detects faults earlier overall and also detects faults associated with risky components earlier. Then, we proposed an enhanced risk-based test case prioritization approach that estimates requirements risks systematically with a fuzzy expert system. Next, we performed an experiment on an enterprise cloud application to measure the fault detection rate of different test suites that are prioritized based on two requirements factors and requirements risks. Finally, we employed a systematic risk estimation mechanism using a fuzzy expert system to make our test prioritization process more efficient and more effective. We also provide guidance and understanding to practitioners and researchers on the use of requirements and risk-based test prioritization on different types of software systems through the family of empirical studies performed in this dissertation. Further, we compared our novel requirements risks-based approaches with other existing industrial approaches. These comparisons will help practitioners and researchers to effectively employ prioritization techniques on their working environments.