<aside> 📌

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


기본 원리 설명
완벽한 테스트 불가능 소프트웨어의 잠재적인 결함은 줄일 수 있지만, 소프트웨어에 결함이 없다고 증명할 수는 없음.
파레토 법칙
(Pareto Principle) 애플리케이션 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙.
살충제 패러독스
(Pesticide Paradox) 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상.
테스팅은 정황(Context)에 의존 소프트웨어의 특징, 테스트 환경, 테스터의 역량 등 정황(Context)에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 함.
오류-부재의 궤변
(Absence of Errors Fallacy) 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없음.

(2) 애플리케이션 테스트의 분류


프로그램 실행 여부에 따른 테스트

| 정적 테스트 | - 프로그램을 실행하지 않고 명세서소스 코드를 대상으로 분석하는 테스트.

<aside> <img src="/icons/bell_gray.svg" alt="/icons/bell_gray.svg" width="40px" /> 워크스루 (Walkthrough, 검토 회의)

인스펙션 (Inspection)

시각에 따른 테스트

| 검증 (Verification) 테스트 | - 개발자의 시각에서 제품의 생산 과정을 테스트하는 것.

목적에 따른 테스트 [강회안성구회병]

| 도 (Stress)

테스트 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지 확인.
복 (Recovery)
테스트 시스템에 여러가지 결함을 주어 실패하도록 한 후, 올바르게 복구되는지를 확인
전(Security)
테스트 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지를 확인
능 (Performance) 테스트 소프트웨어의 실시간 성능이나 전체적인 효율성을 진단하는 테스트로, 소프트웨어의 응답 시간, 처리량 등을 테스트
조 (Structure)
테스트 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트
귀 (Regression)
테스트 어플리케이션에 대하여 변경, 결함 수정 또는 기능 개선 등과 같은 원인으로 프로그램 코드에 대하여 물리적인 변경이 발생했을 경우, 새로운 결함에 대비하여 이미 실시했던 테스트 케이스를 재시험하는 테스트
행(Parallel)
테스트 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교.