PMDEXIT 프로젝트 용어사전

테스트 설계 기법

Test Design Technique

구조 기반·명세 기반·경험 기반의 세 갈래 기법.

테스트 설계 기법이란

테스트 설계 기법(Test Design Technique)은 무엇을 어떤 입력과 조건으로 시험할지를 체계적으로 도출하는 방법론적 절차다. 시험 대상이 가질 수 있는 입력과 경로는 사실상 무한에 가까우므로, 모두를 다 시험하는 전수 시험은 현실적으로 불가능하다.

그래서 한정된 자원으로 결함을 가장 효과적으로 찾아낼 케이스를 골라내는 기준이 필요하며, 이를 정형화한 것이 설계 기법이다. 소프트웨어 공학 지식체계인 SWEBOK은 이 기법을 크게 구조 기반·명세 기반·경험 기반의 세 갈래로 정리해 설명한다.

동등 분할경계값 분석구문 시험분기 시험탐색적 시험오류 추정설계 기법명세 기반구조 기반경험 기반
SWEBOK 세 갈래 설계 기법

명세 기반 기법

명세 기반 기법은 내부 구현을 보지 않고 요구사항과 기능 명세만으로 케이스를 도출하는 블랙박스 접근이다. 입력 영역을 같은 결과가 기대되는 묶음으로 나누는 동등 분할, 그 묶음의 경계 근처를 집중적으로 시험하는 경계값 분석이 대표적이다.

조건의 조합을 표로 정리해 누락을 막는 결정 표, 상태 변화의 흐름을 따라가는 상태 전이 시험도 이 갈래에 속한다. 결함이 영역의 경계와 조건의 조합에서 자주 발생한다는 경험적 사실에 근거하므로, 적은 케이스로 넓은 입력 공간을 효율적으로 덮는 데 강점이 있다.

구조 기반 기법

구조 기반 기법은 코드의 내부 구조를 직접 들여다보며 케이스를 도출하는 화이트박스 접근이다. 모든 구문이 한 번 이상 실행되었는지를 보는 구문 시험, 조건문의 참·거짓 경로를 모두 거치는지를 보는 분기 시험, 개별 조건의 조합까지 따지는 조건 시험으로 점차 정밀해진다.

이 기법은 어느 경로가 아직 시험되지 않았는지를 명확히 드러내므로, 테스트 커버리지 측정과 자연스럽게 맞물린다. 다만 명세에 정의되었으나 코드로 구현되지 않은 누락 기능은 구조만 봐서는 잡아낼 수 없다는 한계가 있다.

기법관점대표 예시
명세 기반블랙박스결정 표·상태 전이
구조 기반화이트박스조건 시험·커버리지
경험 기반직관·이력회귀 보완재
세 갈래의 관점과 예시

경험 기반 기법

경험 기반 기법은 시험자의 지식과 직관, 과거 결함 이력에 의존해 케이스를 발굴하는 접근이다. 정해진 절차 없이 학습과 설계, 실행을 동시에 진행하는 탐색적 시험, 결함이 모일 법한 지점을 노려 시험하는 오류 추정이 대표적이다.

정형 기법이 놓치기 쉬운 비정형 상황이나 사용 맥락상의 문제를 포착하는 데 유리하며, 시간이 촉박한 회귀 시험 국면에서 보완재로 자주 쓰인다. 다만 결과가 시험자 역량에 좌우되고 추적성과 재현성이 약하므로, 단독으로 쓰기보다 정형 기법과 함께 운용하는 것이 바람직하다.

세 갈래의 보완 관계

세 기법은 우열의 관계가 아니라 서로의 사각지대를 메우는 보완 관계다. 명세 기반은 무엇을 만들어야 하는가를, 구조 기반은 어떻게 만들어졌는가를 기준으로 삼으므로, 두 갈래를 함께 적용해야 요구 누락과 구현 결함을 양방향으로 검증할 수 있다.

여기에 경험 기반을 더하면 정형 기법의 틀로는 예상하기 어려운 실사용 상황의 문제까지 포착 범위가 넓어진다. 한 기법에만 의존하면 그 기법이 전제하는 가정 밖의 결함은 구조적으로 빠져나가므로, 위험 영역에 맞춰 기법을 조합하는 판단이 시험 설계의 핵심이 된다.

커버리지와의 연결

설계 기법과 테스트 커버리지는 한 쌍으로 운용될 때 효과가 커진다. 설계 기법이 어떤 케이스를 만들지를 결정한다면, 커버리지는 그 케이스가 대상을 충분히 덮었는지를 사후에 측정해 빈틈을 드러낸다.

명세 기반으로 케이스를 도출한 뒤 분기 커버리지로 미검증 경로를 점검하고, 남은 위험 영역을 경험 기반으로 보강하는 흐름이 현실적인 정석이다. 설계 없이 수치만 좇으면 시험의 깊이가 얕아지고, 측정 없이 설계만 하면 누락을 알아채지 못한다.

두 활동을 맞물려야 비로소 한정된 자원으로 결함 발견 효율을 끌어올릴 수 있다.

관련 용어