<aside> 📌
기본 원리 | 설명 |
---|---|
완벽한 테스트 불가능 | 소프트웨어의 잠재적인 결함은 줄일 수 있지만, 소프트웨어에 결함이 없다고 증명할 수는 없음. |
파레토 법칙 | |
(Pareto Principle) | 애플리케이션 20%에 해당하는 코드에서 전체 결함의 80%가 발견된다는 법칙. |
살충제 패러독스 | |
(Pesticide Paradox) | 동일한 테스트 케이스로 동일한 테스트를 반복하면 더 이상 결함이 발견되지 않는 현상. |
테스팅은 정황(Context)에 의존 | 소프트웨어의 특징, 테스트 환경, 테스터의 역량 등 정황(Context)에 따라 테스트 결과가 달라질 수 있으므로, 정황에 따라 테스트를 다르게 수행해야 함. |
오류-부재의 궤변 | |
(Absence of Errors Fallacy) | 소프트웨어의 결함을 모두 제거해도 사용자의 요구사항을 만족시키지 못하면 해당 소프트웨어는 품질이 높다고 말할 수 없음. |
| 정적 테스트 | - 프로그램을 실행하지 않고 명세서나 소스 코드를 대상으로 분석하는 테스트.
<aside> <img src="/icons/bell_gray.svg" alt="/icons/bell_gray.svg" width="40px" /> 워크스루 (Walkthrough, 검토 회의)
인스펙션 (Inspection)
| 검증 (Verification) 테스트 | - 개발자의 시각에서 제품의 생산 과정을 테스트하는 것.
| 강도 (Stress)
테스트 | 시스템에 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지 확인. |
---|---|
회복 (Recovery) | |
테스트 | 시스템에 여러가지 결함을 주어 실패하도록 한 후, 올바르게 복구되는지를 확인 |
안전(Security) | |
테스트 | 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로부터 시스템을 보호할 수 있는지를 확인 |
성능 (Performance) 테스트 | 소프트웨어의 실시간 성능이나 전체적인 효율성을 진단하는 테스트로, 소프트웨어의 응답 시간, 처리량 등을 테스트 |
구조 (Structure) | |
테스트 | 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트 |
회귀 (Regression) | |
테스트 | 어플리케이션에 대하여 변경, 결함 수정 또는 기능 개선 등과 같은 원인으로 프로그램 코드에 대하여 물리적인 변경이 발생했을 경우, 새로운 결함에 대비하여 이미 실시했던 테스트 케이스를 재시험하는 테스트 |
병행(Parallel) | |
테스트 | 변경된 소프트웨어와 기존 소프트웨어에 동일한 데이터를 입력하여 결과를 비교. |