유닛 테스팅: 개발자들에 의해 행해지며, 본질적으로 화이트박스 테스팅에 속함. 리스크 기반 접근법으로, 유닛이 궁극적으로 지지하는 상위 레벨 시스템 행동에 집중하기보다는 코드 자체를 공격한다. off-by-one 오류에서 루프의 경계 등을 테스트함. 배열과 그 경계들, 구조상의 또 다른 오류들에도 적용된다. 모듈의 유닛은 그 것의 핵심 기능이 정확한지 확인하기 위해 실행된다. 기능은 유닛 레벨에서 저의되며, 모듈이나 시스템 레벨과는 상관없다.
단위 내부의 결함 제거를 주목적으로 함
구조 기반 (화이트박스 테스트) 설계 기법을 주로 사용
가능한 많은 결함 발견하고자 함
테스트 케이스와 결함을 공식적으로 관리 X (주로, 개발자에게 맡김)
단위 테스트 프레임워크 또는 디버깅 도구의 지원으로 테스트 수행
자동화되고 반복 실행이 가능해야 함
구현하기 쉬워야 함
한번 작성되면 변경되지 않아야 함
누구나 실행할 수 있어야 하며, 속도가 빨라야 함
기능 테스트보다 훨씬 높은 테스트 커버리지 달성 가능
회귀 테스트 수행을 통해 디버깅의 필요성 감소
코드 커버리지 등 각종 지표의 측정이 가능
디자인 검증(verification) 테스팅: DVT라고도 하며, 통합 테스팅이 포함된다. 본질적으로, 디자인을 검증하고, 개발자들에 의해 행해진다. 올바르게 실행한 유닛테스트를 통과한 모듈들이 상위 레벨 활동으로서 설계한대로 잘 작동하고 있는지 확인한다. 기능성 테스팅은 테스트 그룹에 의해 행해진다. 최종 디자인이 시행될 때, 테스트 케이스들을 디버깅한다.
시스템 검증(validation) 테스팅: 전적으로 테스트팀의 영역이다. 전체 시스템이 완성되면, 테스트한다. 예상된 행동, 시스템 테스팅, 어떠한 행동을 전달하는데 있어서의 품질, 비기능성테스팅 등이 포함된다. 비기능성에는 사용성(usuability), 보안, 퍼포먼스, 휴대성(portability), 확장성(scalability), 다른 여러가지의 소프트웨어 품질 속성등이 포함된다. 품질 속성들(ilities)은 시스템을 테스트하는데 있어서 중요하게 비춰진다.
고객 인수(acceptance) 테스팅: 고객 입력값과 함께 테스트 그룹에 의해 작성되며, 종종 현장담당자가 실제 데이터, 실제 상황을 이용하여 행해진다. 베타 테스팅도 포함될 수 있다.