Chinese Journal of Computers (计算机学报) 2013/36:12 PP.2455-2467
Correct time behavior is an important aspect for time sensitive software. However, it is difficult to get right. Real-time failures can be introduced not just during the development but also maintenance. So maintainers without time information of the software tend to have more chances to introduce unintended time behaviors. Few practical works have been done on collecting the time-related information before the software evolves, which we call time change impact analysis. In this paper, we propose a novel, practical framework to get high-level information about the impact of time before new code is added to the time-sensitive project. Our main insight is that by reminding maintainers some places (or points) in the source code, which largely affect the execution time, maintainers can be more cautious when updating such places. Because these points have a leverage effect that multiplies the task time, we call them time-leverage points. Our framework integrates a disturbing based testing technique to find these points for maintainers. The technique disturbs the evaluation time by instrumenting different codes in software. When summarizing the time changes, we can measure the time impact of points. For a real project, we also integrate several static program analysis techniques to reduce the false negatives and improve the scalability of our framework. We implement our method as a prototype and evaluate the method on Mlardalen WCET Benchmark suite and Free Lossless Audio Codec (FLAC) project. The result shows that our framework successfully detected the time-leverage points in software.