애플리케이션 테스트 핵심 요약 (정처기 필기)
1) 애플리케이션 테스트
- 의미
- 프로그램의 결함(오류) 을 찾아내는 작업
- 요구사항 만족 여부 를 확인하는 활동
- 핵심 키워드
2) Validation / Verification
| 구분 | 키워드 | 뜻 |
|---|
| Validation | 사용자, 고객, 요구사항 | 요구사항에 맞게 만들었는지 |
| Verification | 개발자, 명세서, 설계 | 명세서대로 만들었는지 |
- 암기
- Validation = 사용자 관점
- Verification = 개발자 관점
3) 애플리케이션 테스트 기본 원리
- 완벽한 테스트 불가능
- 모든 경우 테스트 불가
- 오류 없음을 증명 불가
- 결함 집중
- 파레토 법칙 (20:80)
- 20% 모듈에서 80% 오류 발생
- 암기: 20 : 80 = 파레토
- 살충제 패러독스
- 같은 테스트를 반복하면 새로운 오류 발견이 어려움
- 테스트 케이스를 지속적으로 수정, 보완 필요
- 암기: 같은 살충제를 계속 쓰면 내성이 생김
- 오류-부재의 궤변
- 오류가 없어도 요구사항을 만족하지 못하면 실패 가능
- 암기: 버그 없어도 망할 수 있음
- 점진적 테스트
- 작은 부분부터 점차 확대
- 단위 → 통합 → 시스템
- 독립적 테스트
- 개발자 외 독립된 조직(팀)이 테스트하면 객관성 향상
4) 화이트박스 테스트 (White-box)
- 특징
- 내부 구조 확인
- 소스 코드 확인
- 논리 흐름 검사
- 키워드
종류
| 종류 | 키워드 |
|---|
| 기초 경로 검사 | 모든 경로 |
| 조건 검사 | 조건문 |
| 루프 검사 | 반복문 |
| 데이터 흐름 검사 | 변수 흐름 |
5) 블랙박스 테스트 (Black-box)
- 특징
- 기능 중심
- 사용자 관점
- 내부 구조는 보지 않음
- 키워드
종류
| 종류 | 키워드 |
|---|
| 동치 분할 | 같은 그룹 |
| 경계값 분석 | 최대, 최소 |
| 오류 예측 | 경험 기반 |
| 원인-효과 그래프 | 입력-출력 관계 |
6) 정적 테스트 / 동적 테스트
| 종류 | 키워드 |
|---|
| 정적 테스트 | 실행 안 함 |
| 동적 테스트 | 실행 함 |
7) 개발 단계 테스트
| 종류 | 키워드 |
|---|
| 단위 테스트 | 모듈 |
| 통합 테스트 | 모듈 결합 |
| 시스템 테스트 | 전체 시스템 |
| 인수 테스트 | 고객 확인 |
8) 통합 테스트 (Integration Test)
- 하향식 통합
- 상위 → 하위
- Stub 사용
- 암기: 하향식 = Stub
- 상향식 통합
- 하위 → 상위
- Driver 사용
- 암기: 상향식 = Driver
시험 직전 초압축 암기
- 사용자 관점 = Validation
- 개발자 관점 = Verification
- 내부 구조 = 화이트박스
- 기능 중심 = 블랙박스
- 실행 안 함 = 정적 테스트
- 실행 함 = 동적 테스트
- 20% → 80% 오류 = 파레토
- 같은 테스트 반복 = 살충제 패러독스
- 오류 없어도 실패 = 오류-부재의 궤변
- 하향식 = Stub
- 상향식 = Driver
- 경계 부분 검사 = 경계값 분석
- 수정 후 테스트 = 회귀 테스트