본문 바로가기

더 괜찮은 개발자가 되기위한/시스템 개발하기

프로그램 단위 테스트

□ 프로그램 단위 테스트


○ 단위테스트란


단위테스트 절차


단위 테스트는 실행 가능한 최소 단위의 프로그램을 테스트하는 것을 말한다. 단위테스트는 중소 규모의 프로젝트에서는 개발자와 설계자가 진행하고 큰 규모의 프로젝트에서는 전문 테스터가 참여하기도 한다. 단위 테스트는 모두 5단계로 구성된다. 테스트 일정과 방법 그리고 담당자를 정의하는 단위 테스트 계획 단계가 있고 어떤 입력 값을 어떤 절차로 넣어 어떤 결과를 얻어야 하는지를 정하는 테스트 케이스 작성 단계가 있다. 단위 테스트는 테스트 케이스를 기반으로 수행하며 테스트가 완료되면 어떤 오류가 발생했는지 결함 보고서에 상세히 기록한다. 개발자는 이를 기반으로 프로그램을 다시 수정하게 된다.


프로젝트 일정이 짧고 투입 인력이 적은 국내 프로젝트의 특성 상 단위 테스트 계획과 테스트 케이스 작성 그리고 결함 보고서 작성 과정은 생략하는 경우가 많고 단위 테스트도 프로그램을 개발한 개발자가 직접 수행하는 경우도 많다. 하지만 단위 테스트는 프로젝트 품질 보증 활동의 시작점이고 가장 중요한 단계이다. 시간과 인력이 부족할 경우 테스트 자동화와 같은 효율적인 테스트 기법을 적용해서 단위 테스트 품질을 높이기 위한 노력이 필요하다.

 

○ 단위 테스트 자동화 도구


테스트 자동화 도구 종류

(출처: www.oss.kr)


단위 테스트 자동화를 위한 정적/동적 도구들이 많이 나와있지만 oss.kr에서 소개된 테스트 자동화 프레임워크를 중심으로 살펴보자. 기업에서 상용으로 개발한 테스트 자동화 도구는 많은 기능을 제공하지만 비용이 고가이다. 하지만 오픈 소스로 개발된 다양한 테스트 도구들도 단위 테스트에 충분히 활용할 수 있는 수준이기 때문에 상용 소프트웨어를 별도로 구매하지 않아도 된다. 현재 프로젝트에서 가장 많이 사용되고 있는 JUnit Selenium을 중심으로 어떻게 테스트를 자동화할 지에 대해 알아보도록 하자.