반응형
블랙박스 테스트(Black Box Test)
소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작을 검사하는 방식이다.
사용자가 직접 특정 App이나 Device를 가지고 이리저리 작동시키는 과정이 블랙박스 테스트와 동일하다.
즉, 내부에 어떤 내용이 있는지 하나도 모른 채, 내가 원하는 기능이 예측한대로 정상 동작 하는지를 확인하는 방식이다.
즉, 사용자가 소프트웨어 또는 제품에 대한 요구사항과 결과물이 일치하는 지 확인하기 위한 테스트 기법
(사용자 관점의 테스트 방법)
Black Box Test 기법
동등 분할 기법 (Equivalence Partitioning) | 프로그램의 입력 도메인을 테스트 케이스가 산출될 수 있는 데이터 클래스로 분류하는 방법 |
경계값 분석 기법 (Boundary Value Analysis) | 입력 조건의 중간 값보다 경계 값에서 에러가 발생 될 확률이 높다는 점을 이용하여 테스트 케이스를 생성 |
오류 예측 기법 (Error Guessing) | 각 시험 기법들이 놓치기 쉬운 오류들을 감각 및 경험으로 찾아보는 방법 |
원인 결과 그래프 기법 (Cause Effect Graph) | 입력 데이터 간 관계가 출력에 미치는 영향을 그래프로 표현하여 오류를 발견하도록 함 |
의사결정 테이블 테스팅 | 논리적 조건이나 상황에서 입력 조건과 결과를 참, 거짓으로 표현하여 조합을 만들고 테스트케이스를 작성 |
상태전이 테스팅 | 시스템에 반영되는 이전의 상태가 무엇인지, 상태간 전이, 상태를 변화시키는 이벤트와 입력값을 파악 |
화이트박스 테스트(White Box Test)
응용 프로그램의 내부 구조, 동작을 디테일하게 검사하는 테스트 방식이다.
디테일하게라는 의미는 내부 소스 코드를 테스트 하는 기법이며 사용자가 들여다 볼 수 없는 구간의 코드 단위들을 테스트 할 수 있다.(ex : private variable or method etc...)
즉, 개발자가 소프트웨어 또는 컴포넌트 등의 로직에 대한 테스트를 수행하기 위해 설계 단계에서 요구된 사항을 확인하는 테스트 기법 (개발자 관점의 단위 테스팅 기법)
White Box Test 기법
문장 검증 | 프로그램의 모든 문장이 적어도 한번씩 수행되는 검증 기준 | 1-2-3-4-5-6-7 위 순서로 문장 실행 시 RESULT 변수 값을 양수로 만드는 K보다 큰 수 선택 |
선택 검증 | 선택하는 부분만 검증 | 1-2-3-4-5-6-7 1-2-3-4-5-6-1 |
경로 검증 | 수행 가능한 모든 경로 검사 | 1-2-3-4-5-6-7 1-2-3-4-5-6-1 1-2-4-5-6-7 1-2-4-5-6-1 |
조건 검증 | IF 문장이나 While 문장 내 조건식을 조사하는 기준 | if(x > 1 or y < 10) 경우 x > 1 조건과 y < 10 경우 모두 테스트 |
Black Box Test vs White Box Test
정의 | 모듈 사양서를 기초로 입력/출력 조건 등 모든 기능면의 테스트 | 모듈 사양서 소스코드를 기초로 모듈의 논리 테스트 |
관점 | 사용자 관점 | 개발자 관점 |
기준 | 인터페이스 및 성능 오류 | 논리상 오류 |
V&V | 상위 레벨 (사용자 환경) | 하위 레벨 (시험 환경) |
대상 | 시작/종료/인터페이스 결함 | 루프, Decision 결함, 비수행 구문 |
기법 | 동등 분할, 경계값분석 등 | 루프, 제어구조 테스트 |
활용 | 베타 테스트 | 알파 테스트 |
반응형
'Applied > Unit Test' 카테고리의 다른 글
Custom Matcher 구현하여 테스트에서 사용하기 (0) | 2021.03.05 |
---|---|
Spy에 대한 몇가지 예제 (0) | 2021.02.07 |
[JUnit] Test Rule 개념 및 코드 (0) | 2020.04.25 |
[Robolectric] robolectric shadow bitmap 관련 참고 코드 (0) | 2020.04.21 |
[Robolectric] Robolectric을 이용한 Parameterized testing (0) | 2020.04.17 |