DOI QR코드

DOI QR Code

C 프로그램을 테스팅하기 위한 분기 커버리지에 기반을 둔 자동 테스트 데이터 생성

Automated Test Data Generation Based on Branch Coverage for Testing C Programs

  • 투고 : 2012.09.04
  • 심사 : 2012.10.11
  • 발행 : 2012.11.28

초록

소프트웨어 테스팅이 소프트웨어 개발 비용의 상당 부분을 차지하는 것은 잘 알려진 사실이다. 소프트웨어 테스팅 비용을 줄이기 위해 소프트웨어 테스트 데이터를 자동으로 생성하는 방법에 많은 연구가 이루어지고 있다. 일반적으로 테스트 데이터 자동 생성을 지원하기 위해 심볼릭 실행기나 제약 해결기와 같은 정교한 도구들을 요구한다. 그러나 이와 같은 도구들을 개발하거나 구입하는 것은 소프트웨어 테스트 관련 비용을 증가시키는 또 다른 요소로 작용된다. 이 논문에서는 심볼릭 실행이나 제약 해결에 의존되지 않는 동적 테스트 데이터 방법을 제안한다. 제안된 방식은 분기 커버리지 기준을 효과적으로 만족하도록 Korel의 경로 지향 테스트 데이터 생성 방법을 확장한다. 이 논문에서는 삼각형 분류 프로그램에 대한 실험을 통하여 제안된 방법이 분기 커버리지를 매우 효과적으로 달성함을 보인다.

It is well known that software testing amounts for a significant portion of software development cost. In order to reduce the cost of software testing. a lot of researches on automated test data generation have been performed. Sophisticated tools for performing symbolic execution or solving a system of path constraints are required to support automated test data generation. Developing or purchasing those tools leads to another factor of increasing the cost involving software testing. In this paper, we propose a dynamic test data generation approach that does not depend on symbolic execution or constraint solving at all. The proposed approach extends Korel's path-oriented method to satisfy the branch coverage criterion effectively. We conducted an experiment to evaluate the effectiveness of the proposed technique with a triangle classification program to show that branch coverage can be easily achieved.

키워드

참고문헌

  1. J. Edvardsson, "A Survey on Automatic Test Data Generation," Proceedings of the Second Conf. on Computer Science and Engineering, pp.21-28, 1999.
  2. P. McMinn, "Search-based Software Test Data Generation: A Surveym," Software Testing, Verification and Reliability, Vol.14, No.2, pp.105-156, 2004. https://doi.org/10.1002/stvr.294
  3. P. Godefroid, N. Klarlund, and K. Sen, "DART: Directed automated random testing," Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, Illinois, pp.213-223, 2005.
  4. J. Burnim and K. Sen, "Heuristics for dynamic test generation," Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, pp.443-446, 2008.
  5. 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
  6. 정인상, "실행가능 목적 코드를 기반으로 하는 자동 테스트 데이터 생성," 한국인터넷방송통신학회논문지, 제12권, 제2호, pp.189-197, 2012. https://doi.org/10.7236/JIWIT.2012.12.2.189
  7. L. A. Clarke, "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
  8. M. J. Gallagher and 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
  9. 정인상, 박정규, "목적 지향 콘콜릭 테스팅", 정보과학회논문지, 제37권, 제10호, pp.768-772, 2010.
  10. 정인상, "HanTestCC: C 프로그램의 자동 테스트 데이터 생성을 위한 프로그램 변환 및 탐침 도구", 한성대학교 공학연구 논문집, 5월호, 2012.
  11. http://cil.sourceforge.net/
  12. 김윤호, 김문주, 장윤규, "CREST-BV: 임베디드 소프트웨어를 위한 Bitwise 연산을 지원하는 Concolic 테스팅 기법", 한국정보과학회 2012한국컴퓨터종합학술대회 논문집.