DOI QR코드

DOI QR Code

단위테스트를 위한 레거시소프트웨어시스템의 재구성 기법

A Restructuring Technique of Legacy Software Systems for Unit Testing

  • 발행 : 2008.02.29

초록

레거시소프트웨어시스템을 유지 및 보수하는 작업은 소프트웨어 공학 분야에서 중요한 화두이다. 그리고 유지 및 보수 과정에 있어 회귀 테스트는 소프트웨어의 변경에 따른 기능적 동작이 올바른지 확인한다. 그러나 기존의 회귀 테스트는 대부분 시스템 레벨에서 접근이 되었으며 단위테스트 레벨에서는 준비된 테스트 케이스가 없어서 적용이 어려웠다. 본 논문에서는 단위테스트 케이스들을 구현하고 자산화하기 위해서 기존의 레거시소프트웨어시스템을 재구성하는 기법을 제안한다. 그리고 이를 실제 개발 과제의 특정 모듈에 적용하고 그 테스트 커버리지 결과를 분석하였다. 향후 본 논문에서 제시하는 방안을 기반으로 재구성 자동화 기법 및 테스트 케이스 자동화 생성에 대한 연구가 지속된다면 레거시소프트웨어시스템의 유지 및 보수에 큰 발전을 기대할 수 있을 것이다.

The maintenance of legacy software systems is very important in the field of a software engineering. In the maintenance, a regression test confirms the behavior preserving of the software which has been changed but most of regression tests are done in a system level and rarely done in a unit test level because there is no test case. This paper proposes how to modify legacy software systems and make unit test cases as an asset. It uses a technique with a specific module of a real software development project and analyzes test coverage results. After this, if a study about automatic restructuring techniques and a test case generation proceeds continuously, we can expect the big advance of legacy software systems maintenance.

키워드

참고문헌

  1. Girish Parikh, Independent Consultant, 'Exploring the world of software maintenance: what is software maintenance?,' ACM SIGSOFT Software Engineering Notes, Volume 11, Issue 2(April 1998), Page: 49-52
  2. David Saff, Michael D. Ernst, M.I.T., 'Test factoring: focusing test suites for the task at hand,' Proceedings of the 27th international conference on Software engineering, Pages: 656 -656
  3. Wikipedia Dictionary Available at URL: http://en. wikipedia. org/wiki/Unit_test, 2007년 6월
  4. David Bernstein Available at URL: https://users.cs.jmu.edu/bernstdh/web/common/help/stubs-and-drivers.php, 2007년 5월
  5. Wikipedia Dictionary Available at URL: http://en.wikipedia.org/wiki/Legacy_software, 2007년 6월
  6. SF.net Available at URL: http://cunit.sourceforge.net/, 2007년 6월
  7. Wikipedia Dictionary Available at URL: http://en.wikipedia.org/wiki/Mock_Object, 2007년 6월
  8. Tom Mens, 'A Survey of Software Refactoring,' IEEE Transactions On Software Engineering, month 2004
  9. Wikipedia Dictionary Available at URL: http://en.wikipedia. org/wiki/Regression_test, 2007년 6월
  10. Bullseye Testing Technology Available at URL: http//www.bullseye.com, 2007년 6월
  11. Wikipedia Dictionary Available at URL: http://en.wikipedia. org/wiki/Boundary_value_analysis, 2007년 6월
  12. Yong Rae Kwon, Department of Computer Science Korea Advanced Institute of Science and Technology, 'Test Case Evaluation.'
  13. Bret Pettichord, 'Design for Testability,' Pacific Northwest Software Quality Conference, Portland, Oregon, October, 2002
  14. Harry M. Sneed, 'Reengineering for Testability,' Workshop on Software Reengineering(WSR), Bad Honnef, May, 2006
  15. Wikipedia Dictionary Available at URL: http://en.wikipedia. org/wiki/ISO_9126, 2007년 9월