
Automated Test Data Generation
Investigator
Description
In this project, we address the problem of automated test data
generation for commonly used coverage based criteria for sequential
programs. We have developed a new program execution based approach to
generate test data for sequential programs using iterative relaxation
methods. We have developed new algorithms to generate test data for
statement, branch, data flow and path coverage based on this approach.
Our techniques can handle programs using arrays, records, pointers and loops.
Our experiments show that our techniques are practical since the average
time taken to generate a test case is of the order of a few seconds.
Our techniques automatically generated test data for
a large percentage of coverage elements in the programs considered
for experimentation. Our techniques are powerful in detecting infeasible
linear paths as well as in indicating potentially infeasible nonlinear
paths. Currently we are incorporating our techniques in building
a tool to generate test data for scientific applications.


Testing Multi-threaded Programs
Investigator
Description
Many applications such as multimedia, scientific
simulations and high performance
applications are multithreaded in nature.
It is important to thoroughly test these applications during their
development phase to establish confidence in their reliability.
Testing multithreaded applications is a difficult problem posing many
challenges. We have developed a hierarchy of practical
test coverage criteria for structural testing of multithreaded
programs. This coverage criteria addresses the problems posed
by state space explosion for testing multithreaded applications.
We are developing numerical techniques for test
data generation that use arithmetic
constraints to model the interactions among multiple threads in a program.
A technique that guarantees reproducible behavior
during separate executions is necessary to enable testing and debugging of
multithreaded applications. We are also exploring techniques
that guarantee reproducibility of execution behavior of a multithreaded
program for the same input.
Publications
-
Neelam Gupta, Zachary V. Heidepriem,
``A New Structural Coverage Criteria for Dynamic Detection of Program Invariants'',
18th IEEE International Conference on Automated Software Engineering (ASE'03),
Montreal, Quebec, Canada, October 6-10, 2003.
-
Neelam Gupta
``Generating Test Data for Dynamically Discovering Likely Program Invariants'',
ICSE 2003 Workshop on Dynamic Analysis to be held at International Conference
on Software Engineering (ICSE 2003), Portland, Oregon, USA, May 3-10, 2003.
-
Srinivas Visvanathan, Neelam Gupta
``Generating Test Data for Functions with Pointer Inputs'',
17th IEEE International Conference on Automated Software Engineering (ASE'02),
Edinburgh, UK, September 2002.
-
Neelam Gupta, Rajiv Gupta
`` Data Flow Testing''
The Compiler Design Handbook: Optimizations and
Machine Code Generation,
CRC Press, 2002.
-
Neelam Gupta, Praveen Rao
`` Program Execution Based Module Cohesion Measurement''
16th IEEE International Conference on Automated Software Engineering (ASE'01),
San Diego, USA, November 2001.
Nominated for Best Paper Award
-
Neelam Gupta
``A Hierarchy of Structural Coverage Criteria for Testing Multithreaded
Programs'',
International Conference on Parallel and Distributed Processing
Techniques and Applications (PDPTA'2001),
Las Vegas, Nevada, USA, June 2001.
-
Neelam Gupta, Aditya P. Mathur, Mary Lou Soffa,
``Generating Test Data for Branch Coverage",
15th IEEE International Conference on Automated Software Engineering (ASE'00),
Grenoble, France, September 2000.
-
Neelam Gupta, Aditya P. Mathur, Mary Lou Soffa,
``UNA Based Iterative Test Data Generation and its Evaluation'',
14th IEEE International Conference on Automated Software Engineering (ASE'99),
Cocoa Beach, Florida, USA, October 1999.
-
Neelam Gupta, Aditya P. Mathur, Mary Lou Soffa,
``Automated Test Data Generation Using an Iterative Relaxation Method'',
ACM SIGSOFT Sixth International Symposium on Foundations of
Software Engineering(FSE-6),
Orlando, Florida, USA, November 1998.