Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Raúl A. Santelices is active.

Publication


Featured researches published by Raúl A. Santelices.


international conference on software engineering | 2009

Lightweight fault-localization using multiple coverage types

Raúl A. Santelices; James A. Jones; Yanbing Yu; Mary Jean Harrold

Lightweight fault-localization techniques use program coverage to isolate the parts of the code that are most suspicious of being faulty. In this paper, we present the results of a study of three types of program coverage—statements, branches, and data dependencies—to compare their effectiveness in localizing faults. The study shows that no single coverage type performs best for all faults—different kinds of faults are best localized by different coverage types. Based on these results, we present a new coverage-based approach to fault localization that leverages the unique qualities of each coverage type by combining them. Because data dependencies are noticeably more expensive to monitor than branches, we also investigate the effects of replacing data-dependence coverage with an approximation inferred from branch coverage. Our empirical results show that (1) the cost of fault localization using combinations of coverage is less than using any individual coverage type and closer to the best case (without knowing in advance which kinds of faults are present), and (2) using inferred data-dependence coverage retains most of the benefits of combinations.


automated software engineering | 2008

Test-Suite Augmentation for Evolving Software

Raúl A. Santelices; Pavan Kumar Chittimalli; Taweesup Apiwattanapong; Alessandro Orso; Mary Jean Harrold

One activity performed by developers during regression testing is test-suite augmentation, which consists of assessing the adequacy of a test suite after a program is modified and identifying new or modified behaviors that are not adequately exercised by the existing test suite and, thus, require additional test cases. In previous work, we proposed MATRIX, a technique for test-suite augmentation based on dependence analysis and partial symbolic execution. In this paper, we present the next step of our work, where we (I) improve the effectiveness of our technique by identifying all relevant change-propagation paths, (2) extend the technique to handle multiple and more complex changes, (3) introduce the first tool that fully implements the technique, and (4) present an empirical evaluation performed on real software. Our results show that our technique is practical and more effective than existing test-suite augmentation approaches in identifying test cases with high fault-detection capabilities.


international symposium on software testing and analysis | 2010

Exploiting program dependencies for scalable multiple-path symbolic execution

Raúl A. Santelices; Mary Jean Harrold

This paper presents a new technique, called Symbolic Program Decomposition (or SPD), for symbolic execution of multiple paths that is more scalable than existing techniques, which symbolically execute control-flow paths individually. SPD exploits control and data dependencies to avoid analyzing unnecessary combinations of subpaths. SPD can also compute an over-approximation of symbolic execution by abstracting away symbolic subterms arbitrarily, to further scale the analysis at the cost of precision. The paper also presents our implementation and empirical evaluation showing that SPD can achieve savings of orders of magnitude in the path-exploration costs of multiple-path symbolic execution. Finally, the paper presents a study that examines the use of SPD for a particular application: change analysis for test-suite augmentation.


automated software engineering | 2007

Efficiently monitoring data-flow test coverage

Raúl A. Santelices; Mary Jean Harrold

Structural testing of software requires monitoring the softwares execution to determine which program entities are executed by a test suite. Such monitoring can add considerable overhead to the execution of the program, adversely affecting the cost of running a test suite. Thus, minimizing the necessary monitoring activity lets testers reduce testing time or execute more test cases. A basic testing strategy is to cover all statements or branches but a more effective strategy is to cover all definition-use associations (DUAs). In this paper, we present a novel technique to efficiently monitor DUAs, based on branch monitoring. We show how to infer from branch coverage the coverage of many DUAs, while remaining DUAs are predicted with high accuracy by the same information. Based on this analysis, testers can choose branch monitoring to approximate DUA coverage or instrument directly for DUA monitoring, which is precise but more expensive. In this paper, we also present a tool, called DUA-Forensics, that we implemented for this technique along with a set of empirical studies that we performed using the tool


Testing: Academic & Industrial Conference - Practice And Research Techniques (TAIC PART'06) | 2006

MATRIX: Maintenance-Oriented Testing Requirements Identifier and Examiner

Taweesup Apiwattanapong; Raúl A. Santelices; Pavan Kumar Chittimalli; Alessandro Orso; Mary Jean Harrold

This paper presents a new test-suite augmentation technique for use in regression testing of software. Our technique combines dependence analysis and symbolic evaluation and uses information about the changes between two versions of a program to (1) identify parts of the program affected by the changes, (2) compute the conditions under which the effects of the changes are propagated to such parts, and (3) create a set of testing requirements based on the computed information. Testers can use these requirements to assess the effectiveness of the regression testing performed so far and to guide the selection of new test cases. The paper also presents MATRIX, a tool that partially implements our technique, and its integration into a regression-testing environment. Finally, the paper presents a preliminary empirical study performed on two small programs. The study provides initial evidence of both the effectiveness of our technique and the shortcomings of previous techniques in assessing the adequacy of a test suite with respect to exercising the effect of program changes


international conference on software testing, verification, and validation | 2010

Precisely Detecting Runtime Change Interactions for Evolving Software

Raúl A. Santelices; Mary Jean Harrold; Alessandro Orso

Developers often make multiple changes to software. These changes are introduced to work cooperatively or to accomplish separate goals. However, changes might not interact as expected or may produce undesired side effects. Thus, it is crucial for software-development tasks to know exactly which changes interact. For example, testers need this information to ensure that regression test suites test the combined behaviors of changes. For another example, teams of developers must determine whether it is safe to merge variants of a program modified in parallel. Existing techniques can be used to detect at runtime potential interactions among changes, but these reports tend to be coarse and imprecise. To address this problem, in this paper, we first present a formal model of change interactions at the code level, and then describe a new technique, based on this model, for detecting at runtime such interactions with accuracy. We also present the results of a comparison of our technique with other techniques on a set of Java subjects. Our results clearly suggest that existing techniques are too inaccurate and only our technique, of all those studied, provides acceptable confidence in detecting real change interactions occurring at runtime.


international conference on software testing verification and validation | 2011

Applying aggressive propagation-based strategies for testing changes

Raúl A. Santelices; Mary Jean Harrold

Test-suite augmentation for evolving software -- the process of augmenting a test suite to adequately test software changes -- is necessary for any program that undergoes modifications as part of its development and maintenance cycles. Recently, we presented a new technique for test-suite augmentation based on leveraging the propagation conditions for the effects of changes. Although empirical studies show that this technique can be quite effective for testing changes, the experiments have been limited because of the complexity of the implementation. In this paper, we present a new and more efficient approach for propagation-based testing of changes that can reach much longer propagation-distances and can focus the testing more precisely on those behaviors of changes that can actually affect the output. Using an implementation of this new approach, we performed a study on a set of changes on Java programs for which we compared, to a much larger extent than possible before, our propagation-based strategies with other existing techniques for testing changes. The results of the study not only confirm the superior effectiveness of propagation-based strategies over these other techniques for testing changes, but also quantify that superiority and clarify the conditions under which our approach is most effective.


Proceedings of the 3rd international workshop on Software quality assurance | 2006

Subsumption of program entities for efficient coverage and monitoring

Raúl A. Santelices; Saurabh Sinha; Mary Jean Harrold

Program entities such as branches, def-use pairs, and call sequences are used in diverse software-development tasks. Reducing a set of entities to a small representative subset through subsumption saves monitoring overhead, focuses the developers attention, and provides insights into the complexity of a program. Previous work has solved this problem for entities of the same type, and only for some types. In this paper we introduce a novel and general approach for subsumption of entities of any type based on predicate conditions. We discuss applications of this technique, and address future steps.


international conference on software engineering | 2009

Automated scalable test-suite augmentation for evolving software

Raúl A. Santelices; Mary Jean Harrold

A major challenge in software testing is adequately testing the effects of changes. The goal of my doctoral research is to provide a precise analysis of the effects of changes in software to effectively automate the testing of changes. In this proposal, I first describe my research problem and discuss related work. Then, I present my approach, research questions, work performed so far, and ongoing and future work. Finally, I list the expected contributions of my Thesis.


Archive | 2010

Probabilistic Slicing for Predictive Impact Analysis

Raúl A. Santelices; Mary Jean Harrold

Collaboration


Dive into the Raúl A. Santelices's collaboration.

Top Co-Authors

Avatar

Mary Jean Harrold

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Alessandro Orso

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Taweesup Apiwattanapong

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

James A. Jones

University of California

View shared research outputs
Top Co-Authors

Avatar

Yanbing Yu

Georgia Institute of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge