테스트 설계 명세 가이드 : 최소 비교 테스팅(7) #10
표준 테스트 설계 명세 가이드에 대해서 알아보도록 하겠습니다.
많은 설계 기법을 다루어야 하기 때문에 8 파트로 나누어서 작성을 하도록 하겠습니다.
정책/전략/가이드의 문서 번호는 410번이며, 이 전 글을 참고하시기 바랍니다.
개정 이력
{고객사명} | SW 정책/전략/가이드 | 작성자 | ||
테스트 설계 명세 가이드 (최소비교 테스팅) |
검토자 | |||
승인자 |
<관련 부서 합의>
부서 | 이름 | Comment | 일자 |
<문서 제/개정 이력>
번호 | 제/개정 일자 | 제/개정 내용 | 문서 버전 | 개정자 | 승인자 |
1. 개요
1) 목적
📌 본 문서는 테스트 설계 기법 적용방법의 가이드를 목적으로 한다.
📌 실제 프로젝트 산출물을 테스트 베이시스로 하여 테스트 케이스 설계 기법 적용 과정을 예시로 들어 설명한다.
📌 각 기법에 대한 기본적인 내용은 SW 테스팅 관련 서적 또는 교육교재 등을 참조하기 바란다.
2) 적용범위
📌 본 가이드는 ABC사(이하 ‘당사’ 라 함)의 SW 테스팅을 수행하기 위한 모든 설계 시 적용한다.
3) 참고 문서
📌 개발자도 알아야 할 소프트웨어 테스팅 3판
📌 ISTQB Syllabus Test Analysit
4) 문서 관리 담당자
📌 본 문서의 관리 담당자는 아래와 같음
역할 | 담당부서 | 담당자 | 내용 |
문서 책임자 | OOO | OOO | 본 문서 생성 및 수정 권한 부여 |
문서 검토자 | OOO | OOO, OOO | 작성 완료된 본 문서에 대하여 검토하고 의견 개진 |
문서 승인자 | OOO | OOO | 본 문서의 베이스라인을 승인하고 배포 허가 |
2. 테스트케이스 설계 기법 예시
👀 각 기법 별로 본 문서를 참고한다.
- 동등 분할 및 경곗값 분석 기법
- 페어 와이즈 테스팅
- 결정 테이블 테스팅
- 상태 전이 테스팅
- 기본 경로 테스팅
- 제어 흐름 테스팅
- 최소 비교 테스팅 > 이번에 다룰 내용
- 유스 케이스 테스팅
3. 테스트케이스 설계 명세서 작성 가이드(기존 동일)
1) 절차
선행 작업 | 리스크 분석 및 레벨별 테스트 설계 전략 수립 |
명세 절차 | 리스크 아이템 분석서 참조 리스크 아이템 별 테스트 컨디션 도출(기법을 적용, 테스트케이스 설계 기법 예시 참조) 각 테스트 레벨의 설계 전략에 맞는 템플릿 선정(기능 베이스, 시나리오 베이스) 테스트 스위트 작성(케이스 및 프로시저) |
후행 작업 | 테스트 실행 및 로그 생성 테스트 결과 분석 |
2) 역할과 책임
테스트 매니저(또는 리더) | "테스트 설계 가이드"의 유지 관리, 수정 및 배포에 대한 책임이 있다. |
테스트 엔지니어 | "테스트 설계 가이드"를 기반으로 테스트 케이스 도출 시 참조하여 개발한다. |
3) 표준 템플릿
👀 ABC사 테스트 설계 명세서 템플릿. xlsx
4. 최소비교 테스팅
1) 기법 적용 절차
① 소스 명세서를 분석하여 제어 흐름도를 작성하고 각 분기문 식별 후 고유 식별 번호를 부여한다.
② 각 분기문의 개별 조건에 대한 MC/DC 조합을 도출한다.
③ 도출된 MC/DC 조합이 모두 커버되도록 논리적 테스트 케이스를 도출한다.
④ 논리적 테스트 케이스를 테스트 수행이 가능하도록 구체적 테스트 케이스로 구현한다.
2) 테스트 베이시스
👀 소스 코드의 각 분기문을 식별하여 ID를 부여한다.
public static bool IsValidIPAddress(string strIP)
{
int nDot = 0;
bool bAfterDot = false;
int idx = 0;
foreach (char ch in strIP) D1
{
if ((ch < '0' || ch > '9') && ch != '.') // 숫자 또는 . 만 허용한다. D2
return false;
if ((idx == 0 || idx == strIP.Length - 1) && ch == '.') // 처음과 끝에 . 이 올 수 없다. D3
return false;
if (bAfterDot == true && ch == '.') // . 다음에 또 . 이 올 수 없다. D4
return false;
if (ch == '.') D5
{
nDot++;
bAfterDot = true;
}
else
{
bAfterDot = false;
}
if (nDot > 3) // . 은 3개가 존재 해야 한다. D6
return false;
idx++;
}
if (nDot != 3) // . 은 3개가 존재 해야 한다. D7
return false;
// 각 클래스는 255를 넘을 수 없다.
string[] arClasses = strIP.Split(new char[] { '.' });
if (arClasses.Length != 4) D8
return false;
int nValue = 0;
foreach (string strClass in arClasses) D9
{
nValue = 0;
if (int.TryParse(strClass, out nValue) == false) D10
return false;
if (nValue < 0 || nValue > 255) D11
return false;
}
return true;
}
👀 테스트 베이시스는 요구사항을 포함하는 모든 문서를 얘기한다. 자세한 용어의 뜻은 아래 링크를 확인 바랍니다.
3) 기법 적용
📌 제어 흐름도 작성
👀 제어 흐름도를 작성하고 각 제어 흐름 경로에 고유의 식별 번호를 부여한다.
📌 MC/DC 조합 도출
👀 각 분기문의 개별 조건에 대한 MC/DC 조합을 도출한다.
✔ D1: A
1 | 0 |
1 ① | 0 ② |
✔ D2: (A or B) and C
1 | 0 | ||||
1 | 0 | 1 ① | 0 | 0 | 1 ③ |
0 | 1 | 1 ② | 1 | 0 | 0 ④ |
✔ D3: (A or B) and C
1 | 0 | ||||
1 | 0 | 1 ① | 0 | 0 | 1 ③ |
0 | 1 | 1 ② | 1 | 0 | 0 ④ |
✔ D4: A and B
1 | 0 | ||
1 | 1 ① | 0 | 1 ② |
1 | 0 ③ |
✔ D5: A
1 | 0 |
1 ① | 0 ② |
✔ D6: A
1 | 0 |
1 ① | 0 ② |
✔ D7: A
1 | 0 |
1 ① | 0 ② |
✔ D8: A
1 | 0 |
1 ① | 0 ② |
✔ D9: A
1 | 0 |
1 ① | 0 ② |
✔ D10: A
1 | 0 |
1 ① | 0 ② |
✔ D11: A or B
1 | 0 | ||
1 | 0 ① | 0 | 0 ③ |
0 | 1 ② |
📌 논리적 테스트 케이스 도출
👀 위에서 도출한 모든 MC/DC 조합이 커버되도록 논리적 테스트 케이스를 작성한다.
📌 구체적 테스트 케이스 도출
👀 논리적 테스트 케이스를 기반으로 테스트 수행이 가능하도록 구체적 테스트 케이스를 작성한다.
TC | Input Data: strIP | Expected Result |
TC01 | ###.###.###.### | FALSE |
TC02 | AAA.AAA.AAA.AAA | FALSE |
TC03 | .123.123.123.123 | FALSE |
TC04 | ###.###.###.###. | FALSE |
TC05 | 123..123.123 | FALSE |
TC06 | ###.###.###.###.### | FALSE |
TC07 | 123.123.123.123.123 | FALSE |
TC08 | 123.123.123 | FALSE |
TC09 | 1.1.1.A | FALSE |
TC10 | ? | FALSE |
TC11 | -1-1-1-1 | FALSE |
TC12 | 256.256.256.256 | FALSE |
TC13 | 123.1223.123.123 | TRUE |
📌 적용 유의 사항
① 소스 코드에 적용하는 경우에는 순서도를 먼저 작성하는 것이 좋다.
② 최소 비교 테스팅 기법은 조건식의 조합 관계가 있는 경우라면 상위 테스트 레벨에서도 적용할 수 있다.
③ 효과적인 테스트 케이스 도출을 위해 다른 테스트 설계 기법도 같이 병행하여 적용 가능하다. (동등 분할, 경곗값 분석, 제어 흐름 기법 등)
④ 도출된 테스트 케이스를 검토하여 무의미한 테스트는 삭제하거나 적절하게 수정할 수 있다.
⑤ MC/DC 조합 셋은 유일 셋만 존재하는 것이 아니므로, 만약 테스트 수행이 불가능할 경우에는 MC/DC 조합셋을 적절하게 수정하여 적용할 수 있다.
Related References
- 첨부파일 : ABC사_테스트 설계 명세_최소비교 테스팅 기법. xlxs
요약 : iso 표준, 국제 표준 iso, 국내 표준, 표준, istqb, kstqb, 웹 qa, 모바일 qa, 앱 qa, test web, tmmi, cmmi
'TESTING > IT&SOFTWARE STADARD' 카테고리의 다른 글
[TMMi] 레벨.2 기준 테스트 결함 보고서 작성에 대해서 알아보자 (0) | 2021.01.16 |
---|---|
[TMMi] 레벨.2 기준 유스케이스 테스팅에 대해서 알아보자 (0) | 2021.01.11 |
[TMMi] 레벨.2 기준 결정테이블 테스팅에 대해서 알아보자 (0) | 2020.12.31 |
[TMMi] 레벨.2 기준 페어와이즈 테스팅 기법에 대해서 알아보자 (0) | 2020.12.29 |
[TMMi] 레벨.2 기준 동등 분할 및 경계값 분석 기법에 대해서 알아보자 (0) | 2020.12.25 |