BDGSE: A Symbolic Execution Technique for High MC/DC
Huangli Cai, Zhiyi Zhang, Yifan Jian, Dan Li, Zhiqiu Huang
Abstract
Huangli Cai, Zhiyi Zhang, Yifan Jian, Dan Li, Zhiqiu Huang
Abstract
Modified Condition/Decision Coverage (MC/DC) is a test coverage standard with excellent fault detection capability, which is widely used in testing safety-critical software. Symbolic execution generates test cases automatically to achieve high code coverage. However, since symbolic execution uses short-circuit evaluation to evaluate decisions, it fails to guarantee the consistency of other conditions in a decision required by the MC/DC criterion. As a result, it is incapable of generating MC/DC test cases to test safety-critical systems adequately. To solve this problem, we propose Branch Dependence Guided Symbolic Execution (BDGSE), a symbolic execution technique for high MC/DC. The approach utilizes static analysis to compute the branch dependencies, then guides symbolic execution to selectively explore paths and simplify test cases, and finally generates a small number of test cases to achieve high MC/DC coverage. Our experimental results show that BDGSE can generate high-quality test cases. Although BDGSE generates fewer test cases, it can achieve higher MC/DC coverage than SPF and random methods, and the fault detection capability of test cases generated by BDGSE is comparable to that of test cases generated by SPF.
OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Modified Condition/Decision Coverage (MC/DC) is a test coverage standard with excellent fault detection capability, which is widely used in testing safety-critical software. Symbolic execution generates test cases automatically to achieve high code coverage. However, since symbolic execution uses short-circuit evaluation to evaluate decisions, it fails to guarantee the consistency of other conditions in a decision required by the MC/DC criterion. As a result, it is incapable of generating MC/DC test cases to test safety-critical systems adequately. To solve this problem, we propose Branch Dependence Guided Symbolic Execution (BDGSE), a symbolic execution technique for high MC/DC. The approach utilizes static analysis to compute the branch dependencies, then guides symbolic execution to selectively explore paths and simplify test cases, and finally generates a small number of test cases to achieve high MC/DC coverage. Our experimental results show that BDGSE can generate high-quality test cases. Although BDGSE generates fewer test cases, it can achieve higher MC/DC coverage than SPF and random methods, and the fault detection capability of test cases generated by BDGSE is comparable to that of test cases generated by SPF.
Key concepts: Symbolic execution, Computer science, Code coverage, Concolic testing, Consistency (knowledge bases), Fault coverage, Test case, Reliability engineering