According to recent study, a number of poorly explored aspects, like program structure and not producing high-quality random inputs for testing, can have a significant impact on the overall efficacy of the testing process. Existing concolic testers found to be more cost-effective than random testers for code coverage. Modified condition/decision coverage (MC/DC) has gained its popularity as the strongest criterion for safety-critical systems proposed by RTCA/DO-178B(C), after multiple condition coverage (MCC). This paper proposes a new source code transformation technique that produces additional test cases to achieve higher MC/DC. The technical contribution of this work is threefold. First, it uses a pattern-based code transformation technique that produces effective MC/DC test cases. This pattern-based approach guides the concolic tester to generate test cases as per the MC/DC requirements. Second, the generated patterns are further simplified to minimize the execution time. Third, we have developed a tool named “Java MC/DC Analyzer” to measure MC/DC score for the input programs. The proposed approach is experimented on thirty Java programs and achieved an average increase of 32.86% MC/DC score which validates our work. Also, we have compared our approach with other code transformation techniques and reported a significant improvement.
Read full abstract