Barisal, Swadhin Kumar (2022) Escalation of Modified Condition/Decision Coverage for Object-Oriented Programs. PhD thesis.
PDF (Restricted upto 168/12/2024) Restricted to Repository staff only 3318Kb |
Abstract
Software testing is acknowledged as quite possibly the best procedure to guarantee the quality of software. Particularly, white-box testing found to be a successful and effective technique to generate test cases. In the past few years, several automatic test generation techniques were proposed, among which ‘‘Symbolic Execution” (SE), ‘‘Concolic Execution” (CE) and ‘‘Dynamic Symbolic Execution” (DSE) are the state-of-art techniques. Usually, these techniques traverse different possible program execution paths based on a given coverage criterion. During this process they collect the generated symbolic constraints at conditional statements and explore the possible execution paths. The constraint solver produces an input subspace that is used to generate new test cases for finding a path on the execution tree. Some of the existing test generation tools are CUTE, CATG, KLEE, Jalangi etc. However, literature says that these tools as an individual are not competent enough for generating effective test data that could lead to increase ‘‘Modified Condition/Decision Coverage” (MC/DC) score. This is because of certain limitations associated with the testing tools. So, these tools are plugged with some additional approaches and techniques to improve the code coverage like MC/DC. Different techniques have been reported in this area to improve MC/DC score. Some of the existing work used source code transformation techniques, program repair techniques, code optimization techniques and test data integration based on hybrid techniques for achieving high MC/DC score. But, looking at the present day results, it is expected that still it needs more attention to improve MC/DC score. So, to visualize and extend the current trend of research, in our work jCUTE is used to generate test data. The primary objective of our work is to improve the test data effectiveness, which in turn helps increase MC/DC score. These effective test data are generated through different approaches that are proposed in the contributing chapters. First contribution in this thesis is to propose a hybrid mechanism to combine concolic testing and search based testing together to produce more number of effective test cases that can increase MC/DC score. Here, jCUTE is used for concolic testing and Evosuite is used for search based testing. Both tools produce test cases and then we combine these test suites to make a single test suite. This final test suite is minimized to remove all duplicate and ineffective test cases. The experimental results show that this approach achieves high MC/DC than the traditional individual techniques. Then another integrated black box approach is proposed to improve MC/DC score which shows better code coverage. The generated test cases using concolic testing are not sufficient alone to meet the required coverage level for MC/DC. Thus, our second approach combines boundary value analysis technique with concolic test generation process to populate additional test cases. This add-on technique generates more number of effective test cases by populating the original set of test cases. Now, the updated test suite is minimized so as to reduce the testing cost. This technique is compared with some of the existing techniques and found to be much more effective than the existing works. Next, a technique is proposed to prioritize the generated test cases using two different parameters such as ‘‘contribution index” (CI) and ‘‘fault exposing potential” (FEP). The MC/DC coverage is measured using the proposed ‘‘Java MC/DC Analyzer” (JMA) tool. Similarly, FEP is also auto calculated using spectral analysis of predicates present in the input program. The effectiveness of the prioritized test cases is validated using a metric called‘‘Prioritization Index” (PI), which is calculated by adding CI and FEP together. PI helps rank the test cases for prioritization. The inference from this work indicates that the code coverage should be used only as a factor for test case prioritization. Therefore, the researchers should focus on multiple parameters or factors. This research work proposes different approaches for improving test case generation process and MC/DC score. These approaches help automate MC/DC computation process. These approaches are also validated for handling small to large benchmark Java programs under different scenarios and achieve significant improvement over the traditional techniques. The final contributing work in this thesis is to propose a source code transformation technique to generate effective test cases to enhance MC/DC. This source code transformation technique is proposed using concolic testing that helps achieve high MC/DC. This code transformation technique inserts code blocks into the program without violating the program’s outcome. This helps create several new branches in the test program. This is also called program restructuring. It may be noted that this process does not modify the original code, but inserts additional code blocks in the program. These new branches help explore more paths while executing the program. This increases MC/DC score. The proposed code transformation technique is named ‘‘Pattern Based code transformation”(PBCT). PBCT uses Boolean expression (predicate) for evaluation to traverse all the possible paths during program execution. The specific boolean patterns are used to help generate effective test cases to increase MC/DC score. For this process, an in-house developed tool is used. This approach is experimented with several benchmark Java programs taken from different data repositories. These input programs are executed having minimum 4 up to 2866 number of conditions to generate effective test cases. The effectiveness of our technique is compared with the existing literature. This comparison shows that our technique achieves considerably better coverage than the existing techniques
Item Type: | Thesis (PhD) |
---|---|
Uncontrolled Keywords: | Concolic Testing; MC/DC; Program Analysis; Source Code Transformation; Search-based Testing; Test Case Prioritization |
Subjects: | Engineering and Technology > Computer and Information Science > Data Mining Engineering and Technology > Computer and Information Science |
Divisions: | Engineering and Technology > Department of Computer Science Engineering |
ID Code: | 10379 |
Deposited By: | IR Staff BPCL |
Deposited On: | 18 Dec 2022 23:21 |
Last Modified: | 18 Dec 2022 23:21 |
Supervisor(s): | Mohapatra, Durga Prasad and Sahoo, Bibhudatta |
Repository Staff Only: item control page