Identifying a Shape of Input Data Structure for Automated Program Testing

자동화된 프로그램 시험을 위한 입력 자료구조의 모양 식별

  • Published : 2004.10.01

Abstract

We can significantly reduce the cost o# program testing by automating the process of test data generation. Test data generation usually concerns identifying input values on which a selected path is executed. Although lots of research has been done so far, there still remains a lot of issues to be addressed. One of the issues is the shape problem. The shape problem refers to the problem of figuring out a shape of the input data structure required to cause the traversal of a given path. In this paper, we introduce a new method for the shape problem. The method converts the selected path into static single assignment (SSA) form without pointer dereferences. This allows us to consider each statement in the selected path as a constraint involving equality or inequality. We solve the constraints to get a solution which will be represented in terms of the points-to relations for each input variable. Simple, but illustrative examples are given to explain the proposed method.

프로그램 시험 비용은 테스트 데이타를 생성하는 과정을 자동화함으로써 상당히 줄일 수 있다. 테스트 데이타 생성은 보통 선택된 프로그램 경로를 실행하는 입력 값들을 식별하는 데 주안점을 둔다. 지금까지 많은 연구가 있어왔지만 여전히 해결해야할 문제가 있다 그러한 문제들 중에 모양 문제가 있다. 모양 문제는 주어진 프로그램 경로를 수행하기 위해 요구되는 입력 자료구조를 밝혀내는 문제이다. 이 논문에서 이 모양 문제에 대한 새로운 방법을 제시한다. 이 방법은 주어진 경로를 포인터 역 참조가 없는 정적단일 할당문 (Static Single Assignment, SSA) 형태로 변환한다. 이는 주어진 경로 상에 존재하는 각 프로그램 문장을 등식이나 부등식과 같은 제약식으로 간주할 수 있게 해준다. 이러한 제약식에 대한 해는 각 입력 변수에 대한 'points-to relation' 형태로 나타난다. 간단한 예들을 통하여 제안한 방법에 대해 설명한다.에 대해 설명한다.

Keywords

References

  1. Clarke, L. A., 'A System to Generate Test Data and Symbolically Execute Program,' IEEE Trans. on Software Eng. vol. 2. no. 3. pp. 215-222, 1976 https://doi.org/10.1109/TSE.1976.233817
  2. Gallagher, M. J. and Narasimhan, V. L. 'ADTEST: A Test Data Generation Suite for Ada Software Systems,' IEEE Trans. on Software Eng, vol. 23. no. 8. pp. 473-484, 1997 https://doi.org/10.1109/32.624304
  3. Gotlieb, A., Botella, B., Rueher, M., 'Automatic Test Data Generation using Constraint Solving Techniques,' In Proc ACM ISSTA, pp. 53-62, 1998
  4. Gupta, N., Mathur, A., Soffa, M. L., 'Automated test data generation using an iterative relaxation method,' In Proc. ACM SIGSOFT Foundations of Software Engineering, pp. 231-244, 1998 https://doi.org/10.1145/288195.288321
  5. Gupta, N., Mathur, A., Soffa, M. L., 'UNA based iterative test data generation and its evaluation,' In Proc. 14th IEEE Int. Conf. on Automated Software Eng. pp. 224-232, 1999 https://doi.org/10.1109/ASE.1999.802270
  6. Howden, 'Symbolic Testing and the DISSECT Symbolic Evaluation System,' IEEE Trans on Software Eng., vol. 4. no. 4. pp. 266-2781, 1977
  7. Korel, B. 'Automated Software Test Data Generation,' IEEE Trans. onSqftware Eng, vol. 16. no. 8. pp. 870-879, 1990 https://doi.org/10.1109/32.57624
  8. Lapierre, S., Merlo, E., Antoniol, G., Fiutem, R., Tonella, P., 'Automatic Unit Test Data Generation Using Mixed-Integer Linear Programming and Execution Trees,' In Proc. Int. Conf. on Software Maintenance. pp. 189-198, 1999
  9. Meudec, C., 'ATGen.Automatic Test Data generation using Constraint Logic Programming and Symbolic Execution,' In Proc. IEEE/ACM Int. Workshop on Automated Program Analysis Testing and Verfication. pp. 22-31, 2000
  10. Roger, F., Korel, B, 'The Chaining Approach for Software Test Data Generation,' ACM Trans. on Soft. Eng. Methodology, vol. 5. no. 1. pp.63-86, 1996 https://doi.org/10.1145/226155.226158
  11. Offutt, J. Pan, J. 'The Dynamic Domain Reduction Approach to Test Data Generation,' SoftwarePractice and Experience, vol 29. no. 2. pp. 167-193, 1997
  12. Emami, M., Ghiya, R, Hendren, L., 'Context Sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers,' In SIGPLAN Conf. Prog. Lang. Design and Impl., 1994 https://doi.org/10.1145/178243.178264
  13. Cytron, R Ferrante, J. Rosen, B. K, Wegman, M. N., Zadeck, F. K, 'Efficiently Computing Static Single Assignment Form and the Control Dependence Graph,' ACM Trans on Programming Languages and Systems. vol. 13. no. 4. pp, 451-490, 1991 https://doi.org/10.1145/115372.115320
  14. Lapkowski, C., Hendren, L. J., 'Extended SSA Numbering: Introducing SSA properties to Languages with Multi-level Pointers,' ACAPS Tecnical Memo 102. School of Computer Science. McGill Univ. Canada. 1996
  15. Sagiv, M., Reps, T., Wilhelm, R., 'Solving Shape-Analysis Problems in Languages with Destructive Updating,' ACM Trans. Prog. Lang. Syst. vol. 20. no. 1. pp. 1-50, 1998 https://doi.org/10.1145/271510.271517