|
ABSTRACT
An important problem that arises in path oriented testing is the generation of test data that causes a program to follow a given path. In this paper, we present a novel program execution based approach using an iterative relaxation method to address the above problem. In this method, test data generation is initiated with an arbitrarily chosen input from a given domain. This input is then iteratively refined to obtain an input on which all the branch predicates on the given path evaluate to the desired outcome. In each iteration the program statements relevant to the evaluation of each branch predicate on the path are executed, and a set of linear constraints is derived. The constraints are then solved to obtain the increments for the input. These increments are added to the current input to obtain the input for the next iteration. The relaxation technique used in deriving the constraints provides feedback on the amount by which each input variable should be adjusted for the branches on the path to evaluate to the desired outcome.When the branch conditions on a path are linear functions of input variables, our technique either finds a solution for such paths in one iteration or it guarantees that the path is infeasible. In contrast, existing execution based approaches may require an unacceptably large number of iterations for relatively long paths because they consider only one input variable and one branch predicate at a time and use backtracking. When the branch conditions on a path are nonlinear functions of input variables, though it may take more then one iteration to derive a desired input, the set of constraints to be solved in each iteration is linear and is solved using Gaussian elimination. This makes our technique practical and suitable for automation.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
L.A. Clarke, "A System to Generate Test Data and SymboIicaIIy Execute Programs," IEEE Transactions on Software Engineering, Vol. SE2, No. 3, pages 215-222, September 1976.
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
 |
8
|
Arnaud Gotlieb , Bernard Botella , Michel Rueher, Automatic test data generation using constraint solving techniques, Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis, p.53-62, March 02-04, 1998, Clearwater Beach, Florida, United States
|
| |
9
|
W. H. Jessop , J. R. Kane , S. Roy , J. M. Scanlon, ATLAS-An Automated Software Testing System, Proceedings of the 2nd international conference on Software engineering, p.629-635, October 13-15, 1976, San Francisco, California, United States
|
| |
10
|
|
| |
11
|
B. Korel, A Dynamic Approach of Test Data Generation. In Conference on Software Maintenance, pages 311-317, San Diego, CA, November 1990.
|
 |
12
|
|
 |
13
|
|
| |
14
|
W. MiIIer and D.L. Spooner, "Automatic Generation of Floating-Point Test Data," IEEE Transactions on Software Engineering, Vol. SE2, No. 3, pages 223-226, September 1976.
|
| |
15
|
F. Scheid, "Numerical Analysis," Schaum' s Outline Series, McGraw-Hill Book Company, 1968.
|
CITED BY 28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Marc Fisher, II , Gregg Rothermel , Darren Brown , Mingming Cao , Curtis Cook , Margaret Burnett, Integrating automated test generation into the WYSIWYT spreadsheet testing methodology, ACM Transactions on Software Engineering and Methodology (TOSEM), v.15 n.2, p.150-194, April 2006
|
|
|
|
|
|
Cristian Cadar , Vijay Ganesh , Peter M. Pawlowski , David L. Dill , Dawson R. Engler, EXE: automatically generating inputs of death, Proceedings of the 13th ACM conference on Computer and communications security, October 30-November 03, 2006, Alexandria, Virginia, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shady Copty , Shai Fine , Shmuel Ur , Elad Yom-Tov , Avi Ziv, A probabilistic alternative to regression suites, Theoretical Computer Science, v.404 n.3, p.219-234, September, 2008
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.5
Testing and Debugging
Subjects:
Testing tools (e.g., data generators, coverage testing)
Additional Classification:
G.
Mathematics of Computing
G.1
NUMERICAL ANALYSIS
G.1.3
Numerical Linear Algebra
Subjects:
Linear systems (direct and iterative methods)
G.4
MATHEMATICAL SOFTWARE
Subjects:
Algorithm design and analysis
K.
Computing Milieux
K.6
MANAGEMENT OF COMPUTING AND INFORMATION SYSTEMS
K.6.3
Software Management
Subjects:
Software development
General Terms:
Algorithms,
Design,
Measurement,
Performance,
Reliability,
Theory
Keywords:
dynamic test data generation,
input dependency set,
path testing,
predicate residuals,
predicate sliccs,
relaxation methods
|