확인/리그레션테스트
태그 :
- 개념
- 가. 확인 테스트의 정의 - 결함이 발견되고 수정된 후에 소프트웨어의 원래의 결함이 성공적으로 제거 되었는지 확인하기 위해 수행하는 테스트 - (결함의 원인을 찾거나 결함을 수정하기 위한 디버깅(Debugging)은 개발활동이며 테스팅 활동으로 보지 않음) 나. 리그레션 테스트(Regression Test)의 정의 - 이미 테스트된 프로그램의 테스팅을 반복하는 것으로, 결함 수정 이후 변경의 결과로 새롭게 만들어 지거나, 이전 결함으로 인해 발견되지 않았던 또 다른 결함을 발견하는 테스트
I. 확인 테스트
- 결함이 발견되고 수정된 후에 소프트웨어의 원래의 결함이 성공적으로 제거 되었는지 확인하기 위해 수행하는 테스트
- (결함의 원인을 찾거나 결함을 수정하기 위한 디버깅(Debugging)은 개발활동이며 테스팅 활동으로 보지 않음)
II. 리그레션(회기) 테스트의 개요
가. 리그레션 테스트(Regression Test)의 정의
- 이미 테스트된 프로그램의 테스팅을 반복하는 것으로, 결함 수정 이후 변경의 결과로 새롭게 만들어 지거나, 이전 결함으로 인해 발견되지 않았던 또 다른 결함을 발견하는 테스트
나. 리그레션 테스트의 필요성
- 운영상의 일부 모듈의 변경에 따른 전체적인 정합성 테스트
- 기존의 수정된 버그가 변경에 의하여 다시 발생할 가능성 방지
- 기존 버그 수정을 위한 변경으로 인하여 예상하지 못한 버그 발생 방지
다. 리그레션 테스트의 특징
항목 |
내용 |
SW구조의 복잡성 |
|
성능과 기능의 Trade-Off |
|
결함조치 확인 |
|
정합성 테스트 |
|
III. 리그레션 테스트의 비교 및 절차
가. 결함 테스트와 특징 비교
구분 |
결함 테스트 |
리그레션 테스트 |
개념 |
테스트 케이스들의 실행을 통해 발견하지 못한 오류를 찾아내는 테스트 |
테스트된 프로그램을 변경 후에 변경 결과로 수정되지 않았거나 발견되지 않는 결점을 발견하기 위해서 반복 |
특징 |
- 모든 가능한 입력과 사용자의 행위를 위한 테스트 케이스를 생성하는 것은 불가능 - 문제를 최대한 찾아낼 수 있도록 테스트를 디자인 |
|
나. 리그레션 테스트의 수행 시기
- 기능 변경시: 개별 단위 테스트를 수행한 후, 테스트 Repository에 관리되어 있는 이전 기능 테스트 시험 케이스를 통한 안정성 검증 실시
- 환경 수정시: 다국어 지원, 지원 환경(OS, 플랫폼 등)의 변경 시 통일 기능 수행 여부에 대한 점검 실시 (예:Windows Vista 환경 아래에서의 정합성 검증)
다. 리그레션 테스트 절차
항목 |
내용 |
Record & replay 테스트 |
CASE툴을 이용하여 최초 테스트 상황 Recording후, DataPool을 이용하여 테스트 데이터를 변경시켜면서 반복적으로 테스트 -> 테스팅 비용 절감 |
전략적 Test case 설계 |
회귀테스트케이스 시나리오는 가변적임, 따라서 최초에 테스트케이스를 미리 예측 작성하는 것은 어려움, 테스트를 진행하면서 수행하는 결함조치 결과에 기반한 시나리오로 테스트케이스 유동적으로 신규 작성하는 테스트 계획수립이 필요. |
주요 대상 선정 |
응집도가 높은 모듈 내부 보다는 모듈간 결합도가 높은 부분에 집중해서 반복 수행 |
반복횟수 선정 |
회귀테스트 반복횟수 지정 기준 마련(예: 기본적으로 해당 부분에 3회 이상 반복 수행하되, 결함발생율이 이전보다 10% 미만으로 떨어지면 회귀테스트를 완료한다.) |