소프트웨어 실무 가이드!
동등 분할 테스트 정의 및 원리
- 테스트 항목의 입력과 출력이 여러 개의 독립된 영역으로 구분 되는 경우에 적용
- 동일한 영역 내에서는 어떠한 값을 션택해도 결과가 항상 같다는 원리 이용
- 모든 영역에서 최소 하나 이상의 대표 값을 선택해 테스트
경계값 분석의 이유?
- 개발자들이 흔히 실수를 하는 등호(=), 부등호(<,>)를 잘못 입력하는 부분을 찾기 위해서 사용이 많이 됩니다
- 즉 상한 경계 값과 하한 경계값을 잘 이행 하고 있는지 확인하는 용도
페어와이즈(pairwise)기법
- 올페어즈(allpairs)라는 도구를 이용하여 자동화를 할 수 있습니다.
- 엑셀을 이용하여 동등 분할 영역을 표로 작성
- 페어와이즈 조합 결과 확인
페어와이즈에서 주요한 테스트를 선정하는 원리?
단계별 압축 과정
- 변수별 값 나열: 각 변수와 그 값을 리스트업.
- 2개 변수 쌍 생성: 각 변수 쌍의 가능한 조합을 만듦.
- 최소 조합 도출: 가능한 최소의 테스트 세트를 도출하여, 각 값들이 다른 변수와 최소 한 번씩 조합되도록 함.
1단계: 각 변수의 가능한 값 나열
우선, 각 변수에 대한 값을 나열합니다.
- 결제 방법: 신용카드, 페이팔, 은행 이체
- 통화: USD, EUR, KRW
- 사용자 유형: 신규 사용자, 기존 사용자
2단계: 모든 가능한 조합 생성 (전체 경우의 수)
모든 조합을 만들면 다음과 같습니다:
결제 방법통화사용자 유형
신용카드 | USD | 신규 사용자 |
신용카드 | USD | 기존 사용자 |
신용카드 | EUR | 신규 사용자 |
신용카드 | EUR | 기존 사용자 |
신용카드 | KRW | 신규 사용자 |
신용카드 | KRW | 기존 사용자 |
페이팔 | USD | 신규 사용자 |
페이팔 | USD | 기존 사용자 |
페이팔 | EUR | 신규 사용자 |
페이팔 | EUR | 기존 사용자 |
페이팔 | KRW | 신규 사용자 |
페이팔 | KRW | 기존 사용자 |
은행 이체 | USD | 신규 사용자 |
은행 이체 | USD | 기존 사용자 |
은행 이체 | EUR | 신규 사용자 |
은행 이체 | EUR | 기존 사용자 |
은행 이체 | KRW | 신규 사용자 |
은행 이체 | KRW | 기존 사용자 |
총 18개의 테스트 케이스가 나옵니다.
3단계: 페어와이즈 기법 적용
페어와이즈 기법은 각 변수 쌍을 최소한 한 번씩 조합하여 주요 상호작용을 테스트합니다. 이를 위해, 가능한 모든 조합에서 두 변수 간의 상호작용을 보장하는 가장 적은 수의 조합을 도출합니다.
페어와이즈 기법을 통해 도출된 조합은 다음과 같습니다:
결제 방법통화사용자 유형
신용카드 | USD | 신규 사용자 |
신용카드 | EUR | 기존 사용자 |
페이팔 | USD | 기존 사용자 |
페이팔 | EUR | 신규 사용자 |
은행 이체 | KRW | 신규 사용자 |
여기서 알 수 있듯이, 18개의 전체 조합이 아닌, 5개의 조합만으로도 모든 변수 간 상호작용을 한 번씩 테스트할 수 있습니다.
4단계: 결과 분석
이제 각 변수 간의 상호작용을 확인해 보겠습니다.
- 결제 방법과 통화의 상호작용: 신용카드/페이팔/은행 이체가 USD, EUR, KRW와 최소 한 번씩 결합되었습니다.
- 결제 방법과 사용자 유형의 상호작용: 신용카드, 페이팔, 은행 이체가 모두 신규 사용자 및 기존 사용자와 최소 한 번씩 결합되었습니다.
- 통화와 사용자 유형의 상호작용: USD, EUR, KRW가 각각 신규 사용자 및 기존 사용자와 한 번씩 결합되었습니다.
이로써 주요 상호작용을 모두 테스트할 수 있습니다. 즉, 각 변수 조합이 중요한 상호작용을 다 포함하고 있으며, 이 테스트 세트로 상당한 결함을 발견할 수 있습니다.
5단계: 최적화된 테스트 세트
페어와이즈 테스트의 목적은 이러한 상호작용을 최소한의 테스트 케이스로 검증하여 테스트 시간을 줄이고 비용을 절감하는 것입니다. 압축된 테스트 세트는 테스트 케이스의 수를 18개에서 5개로 줄여주면서도 주요 결함을 발견할 수 있는 확률을 높여줍니다.
결론
이러한 압축 과정을 통해 페어와이즈 테스트는 효율적으로 테스트 케이스를 줄이면서도 중요한 상호작용을 놓치지 않고 테스트할 수 있습니다.
리스트 분포도
- STA : 테스트를 가장 강도 높게 해야 하는 영역
- ITA(Biz) : 비지니스 관점으로 강하게 테스트해야 할 영역
- ITA(Tech) : 기술적인 관점으로 강하게 테스트해야 할 영역
- FTA : 가장 낮은 강도로 테스트 해야 할 영역
- 아래 표과 같이 관리가 될 수 있다.
개발 단위 테스트
단위 테스트 특징
- 개발 환경에서 수행
- 단위 간의 연계는 고려 X 단위 내부의 결함 제거가 목적
- 주로 구조 기반 테스트 설계 기법을 사용
- 코드 단위(컴포넌트) 명세서, 상세 설계 명세서 등의 개발 산출물을 이용
- 가능한 많은 결함을 발견하는게 목적
- 단위 테스트 프레임워크 또는 디버깅 도구를 사용 가능
단위의 정의
단위의 기준은 조직 또는 프로젝트에 따라 다르며 일반적으로 프로그램의 최소 단위인
모듈, 컴포넌트, 서브 프로그램, 메소드 등을 의미한다고 합니다.
단위 테스트 계획
계획 -> 설계 -> 환경 준비 -> 케이스 작성 -> 수행 -> 종료
단위테스트 도구 툴
이클립스 , 제이유닛, 코드커버 : 자바기반 측정도구
'코딩 교육 TIL' 카테고리의 다른 글
2024-10-17 QA TIL (0) | 2024.10.23 |
---|---|
2024-10-16 QA TIL (3) | 2024.10.17 |
2024-10-11 TIL (5) | 2024.10.11 |
2024-10-10 QA TIL (6) | 2024.10.10 |
2024-09-24 TIL (5) | 2024.09.24 |