Blog

테스트

애플리케이션 테스트의 기본 원리

  1. 완벽한 테스트 불가능 : 잠재적 결함은 줄어들지만 없다고 증명 불가능
  2. 파레토 법칙 Pareto Principle : 20%의 코드에서 결함의 80%발생
  3. 살충제 패러독스 Pesticide Paradox : 동일한 테스트 케이스로 동일한 테스트 반복 시 결함 발견 x
  4. 테스팅의 정황(Context) 의존 : 정황에 따라 테스트 결과가 달라질 수 있어 경우에 따라 다른 테스트
  5. 오류-부재의 궤변 Absence of Errors Fallacy : 결함을 모두 제거해도 요구 사항 미 충족 시 품질이 높은 것이 아님
  6. 테스트와 위험은 반비례
  7. 테스트의 점진적 확대
  8. 테스트의 별도 팀 수행

테스트 절차 테스트 계획 → 테스트 분석 및 디자인 → 테스트 케이스 및 시나리오 작성 → 테스트 수행 → 테스트 결과 평가 및 결과서 작성 → 결함 추적 및 관리

결함 관리 절차 에러 발견 → 에러 등록 → 에러 분석 → 결함 확정 → 결함 할당 → 결함 조치 → 검토 및 승인

테스트의 분류

  1. 프로그램 실행 여부에 따른 테스트 정적 테스트 : 실행 x , 명세서, 소스 코드 동적 테스트 : 실행 o
  2. 테스트 기반에 따른 테스트 명세 기반 테스트 : 요구 사항 명세를 모두 테스트 케이스로 작성 및 테스트 구조 기반 테스트 : 소프트웨어 논리 흐름에 따라 테스트 케이스를 작성 및 테스트 경험 기반 테스트 : 테스터의 경험 기반 테스트
  3. 시각에 따른 테스트 Verification 검증 테스트 : 개발자의 시각, 명세서대로 완성되었는가? Validation 확인 테스트 : 사용자의 시각, 요구 사항 대로 완성되었는가?
  4. 목적에 따른 테스트 Recovery 회복 테스트 : 결함을 준 후 올바르게 복구 되는가? Security 안전 테스트 : 설치된 보호 도구가 시스템을 보호 할 수 있는가? Stress 강도 테스트 : 과부하 시에도 정상적으로 실행 되는가? Performance 성능 테스트 : 소프트웨어의 응답 시간, 처리량 Structure 구조 테스트 : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 Regression 회귀 테스트 : 변경 또는 수정에 대해 새로운 결함이 있는가? Parallel 병행 테스트 : 변경 전 후 동일한 데이터에 대해 비교