Hiralal Agrawal
Purdue University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Hiralal Agrawal.
programming language design and implementation | 1990
Hiralal Agrawal; Joseph Robert Horgan
Program slices are useful in debugging, testing, maintenance, and understanding of programs. The conventional notion of a program slice, the static slice, is the set of all statements that might affect the value of a given variable occurrence. In this paper, we investigate the concept of the dynamic slice consisting of all statements that actually affect the value of a variable occurrence for a given program input. The sensitivity of dynamic slicing to particular program inputs makes it more useful in program debugging and testing than static slicing. Several approaches for computing dynamic slices are examined. The notion of a Dynamic Dependence Graph and its use in computing dynamic slices is discussed. The Dynamic Dependence Graph may be unbounded in length; therefore, we introduce the economical concept of a Reduced Dynamic Dependence Graph, which is proportional in size to the number of dynamic slices arising during the program execution.
Software - Practice and Experience | 1993
Hiralal Agrawal; Richard A. DeMillo; Eugene H. Spafford
Programmers spend considerable time debugging code. Symbolic debuggers provide some help but the task remains complex and difficult. Other than breakpoints and tracing, these tools provide little high‐level help. Programmers must perform many tasks manually that the tools could perform automatically, such as finding which statements in the program affect the value of an output variable for a given test case, and what was the value of a given variable when the control last reached a given program location. If debugging tools provided explicit support for these tasks, the debugging process could be automated to a significant extent.
international conference on software maintenance | 1993
Hiralal Agrawal; Joseph Robert Horgan; Edward W. Krauser; Saul London
The purpose of regression testing is to ensure that bug fixes and new functionality introduced in a new version of a software do not adversely affect the correct functionality inherited from the previous version. Efficient methods of selecting small subsets of regression test sets that can be used to ensure correct functionality are explored.<<ETX>>
programming language design and implementation | 1994
Hiralal Agrawal
Program slices have potential uses in many software engineering applications. Traditional slicing algorithms, however, do not work correctly on programs that contain explicit jump statements. Two similar algorithms were proposed recently to alleviate this problem. Both require the flowgraph and the program dependence graph of the program to be modified. In this paper, we propose an alternative algorithm that leaves these graphs intact and uses a separate graph to store the additional required information. We also show that this algorithm permits an extremely efficient, conservative adaptation for use with programs that contain only “structured” jump statements.
IEEE Computer | 1998
Hiralal Agrawal; James L. Alberi; Joseph Robert Horgan; J. Jenny Li; Saul London; W.E. Wong; Sudipto Ghosh; N. Wilde
Maintainers can use information from test analysis tools to help them understand, debug, and retest programs. The authors describe techniques and tools in Bellcores /spl chi/Suds, a system for understanding and diagnosing software bugs, including Y2K problems in legacy applications.
international symposium on software testing and analysis | 1991
Hiralal Agrawal; Richard A. DeMillo; Eugene H. Spafford
Program slices are useful in debugging. Most work on program slicing to date has concentrated on nding slices of programs involving only scalar variables. Pointers and composite variables do not lend themselves well to static analysis, especially when the language involved is not strongly-typed. When debugging a program, however, we are interested in analyzing the program behavior for testcases that reveal a fault. In this paper, we present a uniform approach to handling pointers and composite variables such as arrays, records, and unions for the purpose of obtaining dynamic program slices. The dynamic approach proposed works well even when the language involved allows unconstrained pointers and performs no runtime checks, as in C.
Archive | 2006
Hiralal Agrawal; Richard A. DeMillo; Bob Hathaway; William Hsu; Wynne Hsu; Edward William Krauser; R. J. Martin; Aditya P. Mathur; Eugene Spafford
IEEE Software | 1991
Hiralal Agrawal; R.A. De Millo; Eugene H. Spafford
Archive | 1992
Hiralal Agrawal
IEEE Software | 2007
Hiralal Agrawal; Richard A. DeMillo; Eugene H. Spafford