확인/리그레션테스트

개념
가. 확인 테스트의 정의 - 결함이 발견되고 수정된 후에 소프트웨어의 원래의 결함이 성공적으로 제거 되었는지 확인하기 위해 수행하는 테스트 - (결함의 원인을 찾거나 결함을 수정하기 위한 디버깅(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% 미만으로 떨어지면 회귀테스트를 완료한다.)

 

댓글