명세 기반 테스트 설계 기법
Prof. Jong Min Lee이(가) 6일 전에 추가함
ISO/IEC/IEEE 29119-4에서 정의하는 명세 기반 테스트 설계 기법은 시스템의 요구사항, 명세서, 모델 등을 기반으로 테스트 케이스를 도출하는 블랙박스 테스트 접근법입니다. 이 기법들은 소프트웨어의 내부 구조를 고려하지 않고 외부 명세에 초점을 맞추어 결함을 탐지합니다[1][2][4].
명세 기반 테스트 설계 기법의 주요 유형¶
1. 동등 분할(Equivalence Partitioning)
- 입력값을 동일한 결과를 보이는 그룹(등가 클래스)으로 분할한 후, 각 그룹의 대표값을 선택해 테스트합니다.
- 예: 숫자 입력 필드에서 유효 범위(1~100)와 무효 범위(100)로 분할[2][4].
2. 경곗값 분석(Boundary Value Analysis)
- 등가 클래스의 경곗값(최소, 최대, 바로 위/아래 값)을 테스트합니다.
- 예: 1~100 범위에서 0, 1, 100, 101 테스트[2][4].
3. 결정 테이블 테스팅(Decision Table Testing)
- 복잡한 비즈니스 규칙을 조건(조건부)과 액션(결과)으로 표현한 테이블을 기반으로 테스트 케이스를 생성합니다.
- 예: 보험 가입 심사 규칙의 모든 조합 검증[2][5].
4. 상태 전이 테스팅(State Transition Testing)
- 시스템의 상태 변화와 전이 조건을 모델링하여 유효/무효 상태 전이 시나리오를 테스트합니다.
- 예: ATM의 PIN 입력 상태(초기, 재시도, 잠금) 전이 검증[2][4].
5. 원인-결과 그래프(Cause-Effect Graphing)
- 입력 조건(원인)과 출력 결과(결과)의 논리적 관계를 그래프로 표현해 테스트 케이스를 도출합니다[2][5].
6. 조합 테스트(Combinatorial Test Techniques)
- 입력 파라미터 조합을 체계적으로 생성하며, pairwise(2-way) 기법을 통해 효율적인 커버리지를 달성합니다.
- 예: 웹 폼에서 국가, 언어, 통화 조합 테스트[2][5].
7. 시나리오 테스팅(Scenario Testing)
- 실제 사용자 시나리오나 유스케이스를 기반으로 종단간(end-to-end) 테스트를 설계합니다.
- 예: 온라인 쇼핑 카트 추가 → 결제 → 주문 완료 플로우 검증[2][5].
8. 분류 트리 기법(Classification Tree Method)
- 입력 파라미터를 계층적 트리 구조로 분류한 후 조합을 생성해 테스트 케이스를 도출합니다[2].
9. 구문 테스팅(Syntax Testing)
- 입력값의 구문 규칙(예: 이메일 형식)을 준수하는지 검증하기 위해 유효/무효 문법 패턴을 테스트합니다[2][4].
10. 랜덤 테스팅(Random Testing)
- 무작위 입력값을 사용해 예상치 못한 결함을 탐지하며, 주로 보안/안정성 테스트에 활용됩니다[2][5].
ISO 29119-4의 명세 기반 테스트 프로세스¶
ISO 29119-2의 테스트 설계 및 구현 프로세스에 따라 아래 단계를 수행합니다[1][3]:
- 테스트 컨디션 도출(TD2): 요구사항에서 테스트 가능한 조건(예: 기능, 트랜잭션)을 식별.
- 테스트 커버리지 항목 도출(TD3): 각 컨디션의 커버리지 항목(예: 경계값, 상태 전이)을 정의.
- 테스트 케이스 도출(TD4): 사전조건, 입력값, 기대 결과를 명시한 테스트 케이스 작성.
적용 시 고려사항¶
- 트레이서빌리티(Traceability): 테스트 케이스와 요구사항 간 추적성을 문서화해야 합니다[5].
- 기법 조합: 단일 기법보다 여러 기법을 조합해 커버리지를 극대화합니다(예: 경계값 분석 + 결정 테이블)[2].
- 리스크 기반 접근: ISO 29119-1/2의 지침에 따라 고위험 영역에 우선 적용합니다[1][2].
명세 기반 테스트 설계 기법은 요구사항 충실도를 검증하고, 사용자 관점에서의 결함 탐지에 효과적입니다. ISO 29119-4는 이러한 기법들을 표준화해 조직의 테스트 프로세스 성숙도를 제고합니다[1][2][5].
Citations:
[1] https://blog.naver.com/tnsqo1126/222292738841
[2] https://en.wikipedia.org/wiki/ISO/IEC_29119
[3] https://wildart.github.io/MISG5020/standards/ISO-IEC-IEEE-29119-4.pdf
[4] https://swexpert.tistory.com/97
[5] https://www.stureid.info/wp-content/uploads/2015/08/ISO-29119-The-New-International-Software-Testing-Standards.pdf
[6] https://www.oss.kr/info_test/show/afda9e9d-3be7-471a-9c55-9e2c3ac58221
[7] https://www.tta.or.kr/data/androReport/ttaJnal/167-5-3.pdf
[8] http://blog.naver.com/danicom/220640906596
[9] https://swingswing.tistory.com/124
[10] http://jidum.com/jidums/view.do?jidumId=698
Perplexity로부터의 답변: pplx.ai/share