
단위 테스트 (Unit Test)
- 원시 프로그램 코드에 대한 분석을 진행
- 코드가 효율적으로 작성되었는지, 프로젝트 내에 합의된 표준을 준수하고 있는지 검증
- 개발자가 직접 시행
통합 테스트 (Integration Test)
- 프로그램을 구성하는 각각의 모듈들을 통합하여, 통합된 컴포넌트 간의 인터페이스와 상호작용 상의 오류를 발견하는 작업을 수행
- 개발자가 직접 시행
System Test
- 소프트웨어가 해당 컴퓨터 시스템에서 제대로 수행되는지 테스트하고, 다른 시스템 요소들을 전체적으로 테스트
인수 테스트(Acceptance Test)
- 사용자의 요구사항을 만족시키는지에 중점을 둔 검사기법
- 통합검사 후 전체 내용이 하나의 소프트웨어로 통합 후 요구사항 명세서 토대로 진행
- 개발한 소프트웨어를 사용자가 직접 테스트
형상 검사
소프트웨어 구성 요소, 목록, 유지보수를 지원하기 위해 필요한 모든 사항들이 제대로 표현되었는지를 검사하는 기법
알파 검사
제한된 환경에서, 사용자가 개발자의 환경에서 프로그램을 실행하는 테스트기법
베타 검사
제한되지 않은 환경에서, 사용자가 프로그램을 실행한 후 오류가 발생하면, 개발자에게 주기적으로 보고하는 형식의 검사기법
통합 테스트 분류

하향식 통합 테스트 (top down test)
- 상위 모듈 -> 하위 모듈 방향으로 통합하면서 테스트하는 기법
- 주요 제어 모듈을 기준으로 하여, 아래 단계로 이동하면서 통합
- 깊이 우선 통합과 넓이 우선 통합으로 나뉨
- 테스트 초기부터 사용자에게 시스템 구조를 보여줌
- 주요 제어 모듈은 작성된 프로그램을 사용하고, 주요 제어 모듈의 종속 모듈들은 stub 으로 대체

넓이 우선 통합
(1,2) -> (1,3) -> (1,2,4) -> (1,2,5) ...
깊이 우선 통합
(1,2) -> (1,2,4) -> (1,2,5) ...
상향식 통합 테스트 (Bottom up integration test)
- 하위 모듈 -> 상위 모듈 방향으로 통합하면서 테스트하는 기법
- 하위 모듈부터 통합 및 테스트가 수행되므로 stub 필요 x
- 하나의 주요 제어 모듈과 관련된 종속 모듈 그룹 'cluster' 필요
- 상위 모듈 역할을 하는 테스트 드라이버 필요
- 최하위 모듈들을 개별적으로 병행하여 테스트할 수 있기때문에 하위 모듈들을 충분히 테스트할 수 있다
- 정밀한 계산이나 데이터 처리가 요구되는 시스템에 적합
