DOI QR코드

DOI QR Code

Automated Test Data Generation for Dynamic Branch Coverage

동적 분기 커버리지를 위한 테스트 데이터 자동 생성

  • Received : 2013.01.04
  • Accepted : 2013.03.27
  • Published : 2013.07.31

Abstract

In order to achieve high test coverage, it is usual to generate test data using various techniques including symbolic execution, data flow analysis or constraints solving. Recently, a technique for automated test data generation that fulfills high coverage effectively without those sophisticated means has been proposed. However, the technique shows its weakness in the generation of test data that leads to high coverage for programs having branch conditions where different memory locations are binded during execution. For certain programs with flag conditions, in particular, high coverage can not be achieved because specific branches are not executed. To address the problem, this paper presents dynamic branch coverage criteria and a test data generation technique based on the notion of dynamic branch. It is shown that the proposed technique compared to the previous approach is more effective by conducting experiments involving programs with flag conditions.

높은 테스트 커버리지 달성을 위해 심볼릭 실행, 자료 흐름 분석 및 제약 해결 기법 등을 이용하여 테스트 데이터 생성을 하는 것이 일반적이다. 최근에 그와 같은 정교한 수단 없이도 높은 커버리지를 효과적으로 달성 할 수 있는 방법이 제안되었다. 그러나 이 방법도 실행 중에 다른 메모리 로케이션들이 바인딩되는 분기 조건을 갖는 프로그램에 대해서는 높은 커버리지를 가져오는 테스트 데이터 생성이 어려웠다. 특히 플래그 조건을 가지는 프로그램에 대해서는 특정 분기들이 실행되지 않아 높은 커버리지를 달성하지 못하는 경우가 발생한다. 이 논문에서는 이 문제를 다루기 위하여 기존 커버리지 기준을 개선한 동적 분기 커버리지 기준들과 동적 분기에 기반 한 테스트 데이터 생성 전략을 제안한다. 실험을 통하여 플래그 조건이 있는 프로그램들에 대해서도 제안된 방법이 기존의 방법에 비해 효과적으로 커버리지를 달성함을 보인다. 요약은 무슨 연구를 어떻게 수행하였는지, 주된 연구결과와 그 중요성에 관해 간결하게 기술하여야 한다.

Keywords

References

  1. J. Edvardsson, "A Survey on Automatic Test Data Generation", in Proceedings of the Second Conf. on Computer Science and Engineering, 1999, pp.21-28.
  2. J. Clarke, J. Dolado,, M. Harman,, R. Hierons, B. Jones, M. Lumkin, B. Mitchell, S. Mancoridis, K. Rees, M. Roper, and M. Shepperd, "Reformulating Software Engineering as a Search Problem", IEE Proceedings-Software, Vol.5, No.1, pp.161-175, 2003.
  3. J. Wegener, A. Baresel, and H. Sthamer, "Evolutionary Test Environment for Automatic Structural Testing", Information and Software Test Technology, Vol.43, No.14, pp.841-854, 2001. https://doi.org/10.1016/S0950-5849(01)00190-2
  4. L. Bottaci, "Instrumenting Programs with Flag Variables for Test Data Search by Genetic Algorithm", in Proc. of the Genetic and Evolutionary Computation Conf.(GECCO'02), pp. 1337-1342, NY, USA, July, 2002.
  5. M. Harman, R. Hu, R. Hierons, A. Baresel, and M. Sthamer, "Improving Evolutionary Testing by Flag Removal", Information and Software Test Technology, Vol.43, No.14, pp.841-854, 2001. https://doi.org/10.1016/S0950-5849(01)00190-2
  6. M. Alshraideh, L. Bottachi, B. Mahafzah, Using program data-state scarcity to guide automatic test data generation, Software Quality Journal, Vol.18, No.1, pp.109-144, 2010. https://doi.org/10.1007/s11219-009-9083-x
  7. P. McMinn, "Evolutionary Search for Test Data in the Presence of State Behaviour", Ph.D. dissertation, The University of Sheffield, 2005.
  8. P. Godefroid, N. Klarlund, K. Sen, "DART: Directed automated random testing", in Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, Illinois, 2005, pp.213-223.
  9. J. Burnim, K. Sen, "Heuristics for dynamic test generation", in Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, 2008, pp. 443-446.
  10. K. Lakhotia, P. McMinn and M. Harman, "An Empirical Investigation Into Branch Coverage for C Programs Using CUTE and AUSTIN", Journal of Systems and Software, Vol.83, No.12, pp.2379-2391, 2010. https://doi.org/10.1016/j.jss.2010.07.026
  11. I. S. Chung, "Automated Test Data Generation Based on Branch Coverage for Testing C Programs", Journal of the Korea Contents Association, Vol.12, No.11, pp.39-48, 2012. https://doi.org/10.5392/JKCA.2012.12.11.039
  12. B. Korel, "Automated Software Test Data Generation", IEEE Trans. on Software Eng, Vol.16. No.8. pp.870-879, 1990. https://doi.org/10.1109/32.57624
  13. Y. H. Kim, M. Z. Kim, and Y. K. Jang, "CREST-BV: An Improved Concolic Testing Technique with Bitwise Operations Support for Embedded Software", in Proceedings of KCC, 2012, pp.120-122.
  14. A. Baresel, and H. Sthamer, "Evolutionary Testing of Flag Conditions", in Proc. of the Genetic and Evolutionary Computation Conf.(GECCO'03), Chicago, USA, July 2003, pp.2442-2454.
  15. A. Baresel, D. Binkley, M. Harman. and B. Korel, "Evolutionary Testing in the Presence of Loop Assigned Flags: A Testability TRansformation Approach", in Proc. of the ACM SIGSOFT International Symp. on Software Testing and Analysis(ISSTA'04), Boston, USA, July 2004, pp.108-118.
  16. M. J. Gallagher, M. J., V. L. Narasimhan. "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
  17. http://www.pairwise.org.
  18. I. S. Chung. "HanCC: A Transformation and Instrumentation Tool for Automated Test Data Generation of C Programs", Hansung University Engineering Research, Vol.5, 2012.