Abstract
Integer overflow is one of the most dangerous defects for programs. Many kinds of static analysis techniques and dynamic test methods have been provided to detect it, not only for programs with source code but also with binary code. One of the most important problems which restrict their effectiveness is the test oracle problem. Especially for scientific computing programs and other complex programs integer overflow detection, it is not an easy work because there is often no test oracle to indicate whether it is an integer overflow error, unless the program throws an exception or leads to crash. And more important, in most cases, the program will be an undistinguished performance, when an integer overflow happens. Thus, integer overflows cannot be detected as soon as possible. To help address the problem, this paper proposes a technique in which metamorphic relations are plugged in the program for runtime-testing integer overflows. In order to illustrate the feasibility and evaluate the effectiveness of our method, two case studies are introduced. The results show that, metamorphic relations cannot only alleviate the oracle problem, but can also be used to detect integer overflow effectively, which will prevent the inducing sink accidents. Our method will also be helpful to other kinds of fault detection.
Get full access to this article
View all access options for this article.
