
소프트웨어 테스트 원리
- 결함 존재 증명
- 완벽 테스팅은 불가능
- 초기 집중
- 결함 집중
- 살충제 패러독스
- 정황 의존성
- 오류-부재의 궤변
화이트박스 테스트(White-Box Test)
- 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트이다.
- 코드 분석과 프로그램 구조에 대한 지식을 바탕으로 문제가 발생할 가능성이 있는 모듈 내부를 테스트하는 방법이다.
- 소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행되고 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.
- 구문 커버리지
- 결정 커버리지
- 조건 커버리지
- 조건/결정 커버리지
- 변경 조건/결정 커버리지
- 다중 조건 커버리지
- 기본 경로 커버리지
- 제어 흐름 테스트
- 데이터 흐름 테스트
- 루프 테스트
블랙박스 테스트(Black-Box Test)
- 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 기능 테스트이다.
- 동등분할 테스트
- 경곗값 분석 테스트
- 결정 테이블 테스트
- 상태 전이 테스트
- 유스케이스 테스트
- 분류 트리 테스트
- 페이퍼와이즈 테스트
- 원인-결과 그래프 테스트
- 비교 테스트
- 오류 추정 테스트
테스트 목적에 따른 분류
- 회복 테스트
- 안전 테스트
- 성능 테스트
- 구조 테스트
- 회귀 테스트
- 병행 테스트
- 부하 테스트
- 강도 테스트
- 스파이크 테스트
- 내구성 테스트
테스트 레벨의 종류
- 단위 테스트
- 통합 테스트
- 시스템 테스트
- 인수 테스트
- 알파 테스트 : 사용자가 개발자와 함께 수행한다.
- 베타 테스트 : 일정 수의 사용자에게 사용하게 하고 피드백을 받는다.
단위 테스트 수행 도구
- 테스트 드라이버 : 하위 모듈을 호출하는 상위 모듈의 역할이다. (하향식 통합 테스트에서 사용한다.)
- 테스트 스텁 : 상위 모듈에 의해 호출되는 하위 모듈의 역할이다. (상향식 통합 테스트에서 사용한다.)
테스트 하네스 구성요소
- 테스트 드라이버
- 테스트 스텁
- 테스트 슈트
- 테스트 케이스
- 테스트 시나리오
- 테스트 스크립트
- 목 오브젝트
애플리케이션 성능 측정 지표
- 처리량(Throughput) : 주어진 시간 동안 처리할 수 있는 트랜잭션의 수
- 응답 시간(Response Time) : 사용자 입력이 끝난 후, 응답이 출력이 될 때까지의 시간
- 경과 시간(Turnaround Time) : 사용자가 입력한 시점부터 처리 후 최종 결과가 출력될 때까지의 시간
- 자원 사용률(Resource Usage)