Automatic Synthesis of Test Cases to Identify Software Redundancy
This work addresses the challenge of automating execution scenario generation for software redundancy detection, making the technique more practical, though it is incremental as it builds on prior work.
The paper tackles the problem of manually generating execution scenarios needed for an existing technique that automatically synthesizes equivalent method sequences to identify software redundancy, and shows that the proposed approach correctly generates these scenarios for the Java class Stack within reasonable execution time.
Software system can include redundant implementation elements, such as, different methods that can produce indistinguishable results. This type of redundancy is called intrinsic if it is already available in the software, although not intentionally planned. Redundancy can be a key element to increase the reliability of a system. Some fault tolerance and self-healing techniques exploit the redundancy to avoid failures at runtime. Unfortunately, inferring which operations are equivalent manually can be expensive and error prone. A technique proposed in previous work allows to automatically synthesizes method sequences that are equivalent to a target method. However this technique needs an execution scenario to work. Currently, this execution scenario is generated manually that is expensive and makes the technique hard to use. This paper proposes a technique to generate execution scenarios for a target method for which we are searching equivalent sequences. The experimental results obtained on the Java class Stack show that the proposed approach correctly generates execution scenarios within reasonable execution time. Besides, the execution scenarios generated allow to maximize the effectiveness of the technique described above.