오늘은 회귀 테스트 정의 및 수행 방법 에 대해서 자세히 살펴보겠습니다.
자주 사용하는 앱과 소프트웨어가 수없이 많은 업데이트 후에도 계속 최상의 상태를 유지하는 비결이 궁금한 적이 있나요?
큰 변화에는 큰 책임이 따르기 마련입니다. 모든 것이 여전히 정상적으로 작동하고 교묘한 버그가 숨어 있지 않은지 확인해야 합니다. 바로 이 때 회귀 테스트가 빛을 발합니다.
이 글에서는 회귀 테스트 정의와 테스트 사례, 수행 방법에 대해서 자세히 살펴보겠습니다.
참고로 회귀 테스트 수행 도구에 대한 정보는 회귀 테스트 도구 Best10 을 참조 바랍니다.
회귀 테스트 정의 및 수행 방법
회귀 테스트 정의
회귀 테스트는 코드베이스의 변경 사항이 기존 소프트웨어 기능에 영향을 미치지 않는지 확인할 수 있는 테스트 유형입니다. 예를 들어 이러한 코드 변경에는 새로운 기능 추가, 버그 수정 또는 현재 기능 업데이트가 포함될 수 있습니다.
즉, 회귀 테스트는 앱의 기능이 올바르게 작동하는지 확인하기 위해 과거에 지워진 테스트 케이스를 새 버전에 대해 다시 실행하는 것을 의미합니다.
또한 회귀 테스트는 새 코드를 추가할 때마다 수행하는 단일 테스트가 아니라 일련의 테스트입니다.
회귀 테스트는 언제 수행해야 하나요?
회귀 테스트는 새로운 기능 추가, 버그 수정, 성능 개선 등 시스템이 변경되고 코드가 수정될 때마다 수행하는 것이 이상적입니다. 다음과 같은 시나리오에 적합합니다.
- 애플리케이션에 새로운 기능이 추가되는 경우
예를 들어 사용자가 이메일을 통해서만 로그인할 수 있는 로그인 기능이 있는 웹사이트를 구축했습니다. 이제 Facebook을 통한 로그인 기능을 추가합니다. - 요구 사항 변경이 있는 경우
예를 들어, 이전에 적용되었던 로그인 페이지의 비밀번호 기억 기능을 제거합니다. 이러한 변경이 있을 때마다 회귀 테스트를 수행합니다. - 코드베이스의 결함 또는 패치가 수정된 경우
예를 들어 테스터가 고장난 로그인 버튼을 보고하는 경우. 개발자가 버그를 수정하면 로그인 버튼에 대한 예상 결과를 테스트하는 동시에 로그인 버튼과 관련된 다른 기능에 대한 테스트도 수행됩니다. - 성능 문제가 해결된 경우
예를 들어 페이지 로딩에 5초가 걸리는데 로딩 시간이 2초로 단축되는 경우입니다. - 환경 또는 구성 변경이 있는 경우
예를 들어 데이터베이스를 MySQL에서 Oracle로 업데이트하는 경우.
회귀 테스트 수행 방법
일반적으로 회귀 테스트를 구현하는 데는 정해진 패턴이 없습니다. 하지만 QA 분석가가 염두에 두어야 할 몇 가지 일반적인 회귀 테스트 방법이 있습니다.
1단계: 회귀 테스트 선택
이름에서 알 수 있듯이 여기에서 재테스트가 필요한 테스트 사례를 선택합니다.
전체 테스트 스위트를 테스트하지는 않으며, 테스트 케이스 선택은 소스 코드에 변경 사항이 있는 모듈에 따라 달라집니다.
마지막으로 테스트 케이스를 재사용 가능한 테스트 케이스와 더 이상 사용되지 않는 테스트 케이스로 나눕니다.
재사용 가능한 테스트 케이스는 향후 회귀 주기에 사용되며, 사용되지 않는 테스트 케이스는 다음 테스트 주기에서 고려하지 않습니다.
다음은 재사용 가능한 테스트 케이스를 식별하는 요령입니다.
- 오류가 발생하기 쉬운 경우
- 앱의 기능 확인
- 사용자에게 표시되는 기능을 포함할 것
- 소스 코드에 최근 변경 사항이 있는 경우
- 과거에 성공적으로 수행된 적이 있는 경우
- 이전 테스트 단계에서 실패한 적이 있음
- 통합과 관련이 있음
- 경계 값과 관련이 있음
2단계: 테스트 케이스 실행 시간 결정하기
다음 단계는 선택한 테스트 케이스를 실행하는 데 걸리는 시간을 예측하는 것입니다.
실행 시간에 영향을 미치는 몇 가지 요소는 테스트 데이터 생성, QA 팀의 회귀 테스트 계획, 모든 테스트 케이스의 검토 등입니다.
3단계: 자동화할 수 있는 테스트 케이스 식별하기
이 단계에서는 탐색 테스트의 결과를 바탕으로 QA 팀이 자동화할 수 있는 테스트 케이스를 결정할 수 있습니다.
자동화된 테스트 케이스는 수동 테스트보다 빠르며 동일한 스크립트를 반복적으로 재사용할 수 있습니다.
따라서 테스트 케이스를 수동 테스트 케이스와 자동화된 테스트 케이스의 두 그룹으로 나눕니다.
4단계: 테스트 케이스 우선순위 지정
여기서는 모든 테스트 케이스를 수집하고 우선순위를 높음, 중간, 낮음으로 지정합니다.
이 평가에 따라 우선순위가 높은 테스트 케이스를 먼저 실행한 다음 중간 및 낮은 우선순위의 테스트 케이스를 실행합니다.
우선 순위는 제품의 기능 및 사용자 참여도에 따라 달라집니다.
아래는 우선순위의 폭포수 구조입니다.
- 우선순위 0: 가장 중요한 테스트 케이스에는 모든 핵심 기능이 포함됩니다.
- 우선순위 1: 필수 기능이지만 핵심 기능의 일부가 아닌 테스트 케이스.
- 우선순위 2: 기술 부채와 관련된 테스트 케이스.
5단계: 테스트 케이스 실행
마지막으로 모든 테스트 케이스를 하나씩 실행하여 제품이 정상적으로 작동하는지 테스트할 차례입니다.
요구 사항에 따라 수동 테스트 또는 자동화를 선택할 수 있습니다.
자동화된 회귀 테스트의 경우 Selenium, QTP, Watir 등과 같은 기능 테스트 도구를 활용하면 테스트 케이스를 더 빠르게 실행할 수 있습니다.
효과적인 회귀 테스트 스위트 생성 방법
회귀 테스트 스위트는 변경 또는 업데이트 후 소프트웨어가 제대로 작동하는지 확인하기 위해 고안된 테스트 케이스 집합입니다. 다음은 효과적인 회귀 테스트 스위트 만드는 5단계입니다.
1단계: 회귀 테스트 우선 순위 지정하기
효과적인 회귀 테스트 스위트를 만들려면 테스트 케이스의 우선 순위를 정하는 것이 필수적입니다. 핵심 기능에 대한 테스트 케이스에 가장 높은 우선순위를 부여하면 도움이 됩니다. 여기에는 백엔드 엔진, API, 데이터베이스 등이 포함될 수 있습니다. 두 번째 우선순위는 애플리케이션의 나머지 부분에, 세 번째 우선순위는 기술 부채와 관련된 테스트 케이스에 부여해야 합니다.
2단계: 스모크 테스트 개발
우선순위가 높은 테스트 케이스에는 스모크 테스트 레이블을 지정하고 매일, 2주에 한 번 또는 매 빌드마다 실행해야 합니다. 물론 이러한 테스트 케이스를 자동화하도록 선택할 수도 있습니다.
3단계: 수동 테스트의 도움 받기
이러한 기능은 사용자가 매일 상호 작용하는 특정 기능으로, 가장 복잡하지 않습니다. 따라서 모든 테스트에 대해 자동화된 워크플로가 필요하지 않습니다. 대신, 수동 회귀 테스트의 사례는 이 시나리오에서 충분히 유용합니다.
4단계: 통합 테스트
API, 백엔드 엔진 기능, 데이터베이스 연결, 데이터 피드 등의 통합이 포함된 회귀 테스트 스위트를 실행합니다. 또한 애플리케이션에 필요한 통합 프로세스를 검증합니다. 이러한 기능은 사용자가 상호 작용하지 않지만 앱에 실제로 필요한 기능입니다. 따라서 이 통합 테스트를 통해 모든 비즈니스 로직이 제대로 작동하는지 확인할 수 있습니다.
5단계: 성능 고려
각 릴리스마다 애플리케이션의 성능은 개선되거나 최소한 일관성을 유지해야 합니다. 따라서 시장에 출시하기 전에 항상 제품 또는 앱의 성능 테스트를 수행하세요.
맺음말 회귀 테스트 정의 및 수행 방법
회귀 테스트 정의와 테스트 사례, 수행 방법에 대해서 자세히 살펴보았습니다.
회귀 테스트는 제품 및 사용자 경험의 전반적인 품질을 개선하는 데 핵심적인 역할을 합니다.
효과적인 회귀 테스트 수행 방법과 올바른 회귀 테스트 도구를 사용하면 표면화된 모든 결함을 크게 식별하고 파이프라인 초기에 결함을 제거할 수 있습니다.