1-3. 테스팅의 일반적인 원리
1. 테스팅은 결함이 존재함을 밝히는 활동이다.
- 잠재적으로 존재하는 결함 줄임. 그러나, 결함이 없다고 증명할 수는 없음
2. 완벽한 테스팅은 불가능하다.
- 한 프로그램 내에 내부 조건이 많음
- 입력이 가질 수 있는 모든 값의 조합이 무수히 많음
- 이벤트 발생시 발생 순서에 대한 조합도 무수히 많음
- 리스크에 따라 테스트 강도 높게 수행
실제 완벽은 불가
3. 테스팅을 개발 초기에 시작한다.
- 개발의 시작과 동시에 테스트를 계획하고 전략적으로 접근
- 요구사항 분석서와 설계서 등의 개발 산출물 분석 후 테스트 케이스 도출
4. 결함 집중
- 대다수의 결함들은 소수의 특정 모듈에 집중되어 발생하는 경향을 보임
- 결함의 집중은 운영상의 장애를 초래
- 복잡한 구조의 모듈
- 다른 모듈과 다량의 상호작용을 하는 모듈
- 개발 난이도가 높거나 최신 기술을 사용한 모듈
- 크기가 큰 모듈
- 경험이 미흡한 팀에서 개발한 모듈
- 새롭게 개발한 모듈
5. 살충제 패러독스
- 동일한 테스트 케이스로 동일한 테스트를 반복하면 결함을 찾기 어려워짐
- 더 많은 결함을 찾기 위해서는 테스트 케이스를 정기적으로 **리뷰**하고 개선
6. 테스팅은 정황에 의존적
- 테스팅은
정황(context)
과 도메인에 따라 다르게 진행 - 모든 테스트에 적용되어야 하는 것
- 테스트 프로젝트 기획, 표준적인 기법적용, 독립적인 테스트 환경, 효율적/효과적 테스트 팀 조직, 정식 리포팅 등
7. 오류-부재의 궤변
- 개발된 소프트웨어가 사용자 요구수준을 만족하지 않는다면 버그를 수정하 는 것은 의미가 없음
2020-2022, KHS0616 Revision
38c209f