This paper presents a symbolic-execution-based approach and its implementation by POM/JLEC for checking the logical equivalence between two programs in the system replacement context. The primary contributions lie in the development of POM/JLEC, a fully automatic equivalence checker for Java enterprise systems. POM/JLEC consists of three main components: Domain Specific Pre-Processor for extracting the target code from the original system and adjusting it to a suitable scope for verification, Symbolic Execution for generating symbolic summaries, and solver-based EQuality comparison for comparing the symbolic summaries together and returning counter examples in the case of non-equivalence. We have evaluated POM/JLEC with a large-scale benchmark created from the function layer code of an industrial enterprise system. The evaluation result with 54% test cases passed shows the feasibility for deploying its mature version into software development industry.
['Phan Thi Thanh Huyen', 'Daisuke Shimbara', 'Shinya Sakaida', 'Hideto Ogawa']
POM/JLEC: An Automatic Program Equivalence Checker for Java Enterprise Systems