Exhaustive Test-case Generation using Symbolic Execution

Software testing has been one of the major challenges in the development of software for enterprise systems because it accounts for 30% to 50% of the total development cost required. Meanwhile, such testing has become increasingly important, because the upcoming paradigm for information and communications technology (ICT) system development, such as test-driven development and continuous integration, is directed at automated testing. Over a period, Fujitsu Laboratories has pursued R&D of software testing, mainly focusing on the test-case generation, which has a major impact on ensuring software quality and minimizing the development cost required. Such test-case generation has been successfully realized in the test function of the FUJITSU Software Interdevelop Designer—Fujitsu’s business application development platform. We recognized early on the great potential of symbolic execution, a method that has become a popular academic research topic today. This paper presents an exhaustive test-case generation technology that utilizes symbolic execution. It also describes three issues to be overcome for its practical application, aiming to improve the efficiency of program unit testing and regression tests for version upgrades. This is followed by accounts of the approaches adopted to overcome these issues. This paper also introduces some cases in which we evaluated its application to working software assets.