본문 바로가기

더 괜찮은 개발자가 되기위한/프로젝트 완료하기

프로젝트 완료를 위한 테스트

□ 프로젝트 완료를 위한 테스트


○ 완료 단계 테스트


시스템 개발 단계에서는 개발자와 설계자가 단위테스트를 통해 개발이 잘 됐는지 검증한다. 단위 테스트는 내가 만든 프로그램에 주된 관심이 있다. 물론 단위 테스트할 때도 입력과 출력을 주고받는 프로그램과 통합해 테스트를 진행하지만, 전체 프로그램이 업무 프로세스 상에서 유기적으로 동작하는지 검증하지는 않는다.


완료 단계 테스트 종류


통합테스트는 전체 프로그램을 통합해 업무를 수행하는데 문제가 없는지를 검증하는 절차이다. 통합테스트에는 개발자, 설계자, PM 뿐만이 아니라 고객사의 전산담당자와 업무담당자가 모두 참여해 테스트를 진행한다. 업무관점에서 프로그램 검증이 끝났다면 피크 타임(Peak Time)에서 시스템이 얼마나 많은 동시 접속자를 처리할 수 있는지, 그리고 보안에는 문제가 없는지 알아보기 위한 시스템 테스트를 진행한다. 시스템 테스트는 개발자보다는 설계자와 PM이 참여하고 고객사에서는 전산담당자가 테스트 결과를 검증한다. 마지막으로 업무와 시스템 관점에서 모든 검증이 완료되면 실제로 시스템을 사용하는 고객 관점에서 테스트를 진행하는 인수테스트를 거치게 된다.

 

○ 통합 테스트


통합테스트는 단위 프로그램을 결합해 전체 시스템 관점에서 정보의 흐름을 테스트하는 절차로써 테스트를 진행하기 전에 테스트 계획과 시나리오를 먼저 작성해서 철저하게 준비한 후 진행한다. 통합 테스트는 프로그램을 개발한 개발자뿐 아니라 프로젝트와 관련이 있는 고객사의 모든 이해관계자가 참여하게 된다. 고객사의 업무 담당자의 경우 시스템이 익숙하지 않고 무엇을 테스트해야 할 지 잘 모르기 때문에 잘 정리된 테스트 시나리오가 반드시 필요하다.


통합테스트 시나리오 사례


일반적인 통합테스트 시나리오는 테스트케이스로 구성된다. 테스트케이스는 특정 요구사항을 준수하고 있는지 확인하기 위해 만들어진 입력 값, 실행조건, 행위 그리고 예상결과의 집합이다. 테스트케이스는 테스트케이스ID, 테이스케이스 목표, 테이스트케이스 정의, 예상결과 이렇게 네 부분으로 구성된다. 테스트케이스ID는 테스트케이스를 식별하기 위한 식별자이다. 테스트케이스의 목표는 테스트케이스를 왜 수행해야 하는지 그 이유를 알려준다. 테스트케이스 정의는 무엇을 어떻게 테스트해야 하는지 알려주는 구체적인 설명이다. 예상결과는 프로그램이 정상적으로 개발되었을 경우 테스트케이스를 실행했을 때 나와야 하는 값이다. 예상결과와 실행 결과가 다르게 나온다면 오류로 체크하고 오류 보고서에 테스트케이스ID와 오류 결과를 적어놔야 한다


통합테스트 절차


통합테스트 시나리오가 준비 됐다면 이제 통합테스트를 어떻게 진행해야 하는지 알아보자. 통합테스트는 시나리오만 가지고 하는 것이 아니라 요구사항명세서를 참고해야 한다. 요구사항 명세서에는 고객의 최종 요구사항이 들어가 있기 때문에 고객의 통합테스트 시나리오에 누락된 부분이 있는지 살펴봐야 하고 이해가 안 되는 부분 또한 요구사항 명세서를 참고해야 한다. 통합테스트 결과 오류가 발생하면 결함보고서를 작성하고 프로그래머에게 전달한다. 프로그래머는 결함보고서를 살펴보고 관련된 프로그램을 개선해야 한다. 통합테스트와 프로그램 수정을 반복하면서 오류가 모두 해결되면 통합테스트는 종료된다.


테스트시나리오 외에 통합테스트의 가장 핵심적인 산출물은 결함보고서이다. 테스터는 결함보고서를 작성하고 개발자는 결함보고서에 있는 내용을 확인하면서 프로그램을 수정한다. 테스터 입장에서는 내가 작성한 결함보고서가 언제까지 조치되는지 궁금할 것이고 내가 발견한 오류가 다른 테스터가 이미 발견한 오류와 겹치지 않는지 확인하고 싶어한다. 이때 사용하는 것이 테스트케이스 관리도구이다. 다양한 테스트케이스 관리 도구가 있지만, 무료로 사용할 수 있는 레드케이스(RedCase)를 소개하고자 한다.


레드케이스 는 대표적인 오픈 소스 프로젝트 관리 도구인 레드마인(RedMine)의 플러그인으로써 테스트케이스를 등록하고 진행상황을 관리할 수 있는 테스트케이스 관리도구이다. 레드케이스를 사용하기 위해서는 먼저 레드마인을 먼저 설치 해야 한다. 다양한 프로젝트 관리 도구가 있지만 레드마인은 프로젝트 일정관리, 이슈관리 등 다양한 기능을 무료로 제공하기 때문에 레드마인을 사용해 프로젝트 관리를 진행하고 통합테스트 단계에서는 레드케이스를 설치해서 테스트 케이스를 관리하는 것이 좋다.

 

레드케이스 사용법

(출처: https://www.federico-toledo.com/alternativas-testlink-redmine-redcase/)


레드케이스는 테스트케이스를 등록하고 등록일자, 조치 일자, 조치 상태 등을 관리할 수 있다. 전체 등록된 테스트케이스 중에 성공 건수, 오류 발생 건수, 조치 중인 건수, 조치가 완료된 건수를 그래프를 통해 보기 쉽게 통계를 제공하고 있다.