Static slicing is a popular program analysis used in software engineering to find which parts of a program affect other parts. Unfortunately, static slicing often produces large and imprecise results because of its conservative nature. Dynamic slicing can be an alternative in some cases, but it requires detailed runtime information that can be hard or impossible to obtain or recreate. This is often the case when users report bugs in deployed software. In this paper, we significantly improve the precision of static slicing through PRIOSLICE, a novel technique that exploits the insight that not all statements in a static slice are equally likely to affect another statement such as a failing point. PRIOSLICE first computes a probabilistic model of the dependencies in the program. In this model, some data dependencies are more likely to occur than others and control dependencies are less likely than data dependencies to propagate effects (e.g., errors). PRIOSLICE then traverses the program backwards, like static slicing, but in an order defined by the computed dependence probabilities. Our study of fault localization on various Java subjects indicates that PRIOSLICE can help localize faults much more effectively than existing static-slicing approaches.
Sensitivity analysis is used in many fields to determine how different parts of a system respond to variations in stimuli. Softwaredevelopment tasks, such as change-impact analysis, can also benefit from sensitivity analysis. In this paper, we present SENSA, a novel dynamic-analysis technique and tool that uses sensitivity analysis and execution differencing for estimating the influence of program statements on the rest of the program. SENSA not only identifies the statements that can be affected by another statement, but also quantifies those effects. Quantifying effects in programs can greatly increase the effectiveness of tasks such as change-impact analysis by helping developers prioritize and focus their inspection of those effects. Our studies on four Java subjects indicate that SENSA can predict the impact of changes much more accurately than the state of the art: forward slicing. The SENSA prototype tool is freely available to the community for download.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.