소프트웨어 테스트는 용어가 비슷해 한 표를 통째로 외우기 쉽습니다. 하지만 문제를 풀 때는 무엇을 근거로 테스트를 설계하는지, 어느 범위에서 수행하는지, 어떤 항목을 얼마나 실행했는지를 각각 구분해야 합니다.
화이트박스와 블랙박스는 테스트 설계 근거로 나눕니다
분류테스트를 만드는 기준
블랙박스내부 구현보다 명세에 적힌 입력과 기대 동작을 기준으로 설계
화이트박스코드의 문장, 분기, 조건 등 내부 구조를 기준으로 설계
경험 기반테스터의 지식과 과거 결함 경험을 활용해 결함을 예상
블랙박스는 동적 테스트와 같은 말이 아닙니다. 화이트박스도 프로그램을 실행해 결과를 확인할 수 있습니다. “내부를 보느냐”보다 “테스트 케이스를 무엇에서 도출했느냐”를 먼저 보세요.
단위·통합·시스템·인수는 검사 범위와 목적을 봅니다
테스트 수준을 찾는 질문
- 단위함수·클래스·모듈 같은 개별 구성요소를 검사하는가
- 통합구성요소나 시스템 사이의 인터페이스와 상호작용을 검사하는가
- 시스템완성된 시스템 전체가 요구사항을 만족하는지 검사하는가
- 인수사용자·고객의 요구와 운영 준비 여부를 확인하는가
커버리지는 분모와 충족 조건을 먼저 씁니다
커버리지최소 확인 대상
문장실행 가능한 각 문장이 한 번 이상 수행됐는가
분기·결정각 결정 결과의 참과 거짓이 한 번 이상 수행됐는가
조건결정 안의 개별 조건이 참과 거짓을 한 번 이상 가졌는가
조건·결정개별 조건과 전체 결정 결과의 참·거짓을 모두 만족했는가
커버리지 비율을 계산할 때는 전체 대상 수를 분모, 실행하거나 충족한 대상 수를 분자로 둡니다. 테스트 케이스 수가 많다는 사실만으로 높은 커버리지가 보장되지는 않습니다.
정적 테스트는 실행하지 않고 작업 산출물을 확인합니다
리뷰와 정적 분석은 소프트웨어를 실행하지 않고 요구사항, 설계, 코드 같은 작업 산출물을 검사합니다. 동적 테스트는 실행되는 소프트웨어에 입력을 주고 실제 결과를 확인합니다. 정적 분석 도구가 코드를 다룬다고 해서 동적 테스트가 되는 것은 아닙니다.
테스트 기법과 수준을 구분했는가명세 기반인지 구조 기반인지 확인했는가커버리지 분모를 정확히 정했는가분기와 개별 조건을 혼동하지 않았는가실행 여부로 정적·동적을 나눴는가결함 발견과 결함 부재 증명을 구분했는가
서술 답안은 분류명 뒤에 판단 근거를 붙입니다
“블랙박스 테스트”만 쓰지 말고 “내부 구조를 보지 않고 명세의 입력과 기대 결과에서 테스트 케이스를 도출한다”처럼 구별 기준을 한 문장으로 붙이세요. 커버리지를 묻는 문제는 정의와 계산 대상까지 함께 쓰면 표현이 흔들리지 않습니다.
테스트 용어처럼 비슷한 개념을 구별하는 연습은 정보처리기사 실기 단답형 암기법과 함께 보면 좋습니다.