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.