테스트 기반에 따른 테스트 종류 3가지?
(명구경)
명세 기반 테스트 : 동등분할, 경계값 분석 등 빠짐없이 테스트 케이스로 만들어 구현하고 있는지,
구조 테스트 : 내부의 논리 흐름에 따라 테스트 케이스 작성,
경험 테스트 : 탐색적 테스팅 등 테스터 경험 기반
프로그램을 실행하지 않고 명세서나 소스코드 대상으로 하는 테스트?
: 정적 테스트
- 워크스루(Walk Trough) : 검토 회의 전 요구사항 명세서를 미리 배포해 짧은 검토회의를 통해 결함 발견
- 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 결함 발견
- 동료검토(Peer Review) : 요구사항 명세서 작성자가 내용을 직접 설명, 동료들이 들으면서 결함 발견
프로그램을 실행하면서 오류를 찾는 테스트?
: 동적 테스트(블랙박스 테스트, 화이트박스 테스트)
소프트웨어 개발의 모든 단계에서 테스트를 수행할 수 있음
소프트웨어 테스트 원리
- 테스팅은 결함이 존재함을 밝히는 것
- 완벽한 테스팅은 불가능
- 테스팅은 정황에 의존적 : 소프트웨어의 성격에 맞게 테스트 실시
- 요르돈의 법칙(Snowball Effect) : 개발 초기에 테스팅 하지 않으면 비용이 커진다.
- 파레토 법칙 : 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견
- 살충제 패러독스 : 동일한 테스트 케이스로 반복해서 테스트하면 새로운 버그를 찾지 못한다.
- 오류 - 부재의 궤변 : 요구사항을 충족시키지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없다.
화이트박스 테스트 (구조 기반 테스트)
블랙박스 테스트 (명세 기반 테스트)
- 동등 분할 테스트 : 입력 데이터의 영역을 유사한 도메인별로 유효값 / 무효값을 그룹핑하여 대푯값 테스트 케이스를 도출해 테스트