This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Testability Transformation
January 2004 (vol. 30 no. 1)
pp. 3-16

Abstract—A testability transformation is a source-to-source transformation that aims to improve the ability of a given test generation method to generate test data for the original program. This paper introduces testability transformation, demonstrating that it differs from traditional transformation, both theoretically and practically, while still allowing many traditional transformation rules to be applied. The paper illustrates the theory of testability transformation with an example application to evolutionary testing. An algorithm for flag removal is defined and results are presented from an empirical study which show how the algorithm improves both the performance of evolutionary test data generation and the adequacy level of the test data so-generated.

[1] A.V. Aho, R. Sethi, and J.D. Ullman, Compilers: Principles, Techniques and Tools. Addison Wesley, 1986.
[2] A. Baresel, H. Sthamer, and M. Schmidt, Fitness Function Design to Improve Evolutionary Structural Testing GECCO 2002: Proc. Genetic and Evolutionary Computation Conf., pp. 1329-1336, July 2002.
[3] D.W. Binkley, Computing Amorphous Program Slices Using Dependence Graphs and a Data-Flow Model Proc. ACM Symp. Applied Computing, pp. 519-525, 1999.
[4] British Standards Institute, BS 7925-1 Vocabulary of Terms in Software Testing 1998.
[5] Calendar Act, Anno vicesimo quarto George II, cap. xxiii, 1751.
[6] G. Canfora, A. Cimitile, and A. De Lucia, Conditioned Program Slicing Information and Software Technology Special Issue on Program Slicing, M. Harman and K. Gallagher, eds., vol. 40, pp. 595-607, 1998.
[7] S. Danicic, C. Fox, M. Harman, and R.M. Hierons, The ConSIT Conditioned Slicing System Software Practice and Experience, to be published.
[8] J. Darlington and R.M. Burstall, A Tranformation System for Developing Recursive Programs J. ACM, vol. 24, no. 1, pp. 44-67, 1977.
[9] N. Dershowitz and Z. Manna, The Evolution of Programs: A System for Automatic Program Modification Proc. Fourth Ann. Symp. Principles of Programming Languages, pp. 144-154, 1977.
[10] J.J. Dolado, M. Harman, M.C. Otero, and L. Hu, An Empirical Investigation of the Influence of a Type of Side Effects on Program Comprehension IEEE Trans. Software Eng., vol. 29, no. 7, pp. 665-670, 2003.
[11] M.S. Feather, A System for Assisting Program Transformation ACM Trans. Programming Languages and Systems, vol. 4, no. 1, pp. 1-20, Jan. 1982.
[12] M. Harman, D.W. Binkley, and S. Danicic, Amorphous Program Slicing J. Systems and Software, vol. 68, no. 1, pp. 45-64, Oct. 2003.
[13] M. Harman, L. Hu, R. Hierons, A. Baresel, and H. Sthamer, Improving Evolutionary Testing by Flag Removal GECCO 2002: Proc. Genetic and Evolutionar Computation Conf., pp. 1359-1366, July 2002.
[14] M. Harman and B.F. Jones, Search Based Software Engineering Information and Software Technology, vol. 43, no. 14, pp. 833-839, Dec. 2001.
[15] J.H. Holland, Adaption in Natural and Artificial Systems. MIT Press, 1975.
[16] B.F. Jones, H.-H. Sthamer, and D.E. Eyres, Automatic Structural Testing Using Genetic Algorithms The Software Eng. J., vol. 11, pp. 299-306, 1996.
[17] C.C. Michael, G. McGraw, and M.A. Schatz, Generating Software Test Data by Evolution IEEE Trans. Software Eng., vol. 27, no. 12, Dec. 2001.
[18] M. Mitchell, An Introduction to Genetic Algorithms. MIT Press, 1996.
[19] R.P. Pargas, M.J. Harrold, and R.R. Peck, Test-Data Generation Using Genetic Algorithms The J. Software Testing, Verification and Reliability, vol. 9, pp. 263-282, 1999.
[20] H.A. Partsch, The Specification and Transformation of Programs: A Formal Approach to Software Development. Springer, 1990.
[21] L. Ramshaw, Eliminating Goto's While Preserving Program Structure J. ACM, vol. 35, no. 4, pp. 893-920, 1988.
[22] N. Tracey, J. Clark, and K. Mander, The Way Forward for Unifying Dynamic Test-Case Generation: The Optimisation-Based Approach Proc. Int'l Workshop Dependable Computing and Its Applications (DCIA), pp. 169-180, Jan. 1998.
[23] J.M. Voas and K.W. Miller, "Software testability: The new verification," IEEE Software, pp. 17-28, May 1995.
[24] M. Ward, Reverse Engineering through Formal Transformation The Computer J., vol. 37, no. 5, 1994.
[25] J. Wegener, A. Baresel, and H. Sthamer, Evolutionary Test Environment for Automatic Structural Testing Information and Software Technology Special Issue on Software Eng. Using Metaheuristic Innovative Algorithms, vol. 43, no. 14, pp. 841-854, 2001.
[26] M. Weiser, Program Slices: Formal, Psychological, and Practical Investigations of an Automatic Program Abstraction Method PhD thesis, Univ. of Michigan, Ann Arbor, 1979.

Index Terms:
Evolutionary testing, search-based software engineering, automated test data generation, transformation.
Citation:
Mark Harman, Lin Hu, Rob Hierons, Joachim Wegener, Harmen Sthamer, Andr? Baresel, Marc Roper, "Testability Transformation," IEEE Transactions on Software Engineering, vol. 30, no. 1, pp. 3-16, Jan. 2004, doi:10.1109/TSE.2004.1265732
Usage of this product signifies your acceptance of the Terms of Use.