테스트는 프로그램을 실행하느냐 하지 않느냐에 따라 정적 테스트와 동적 테스트로 구분됩니다.
구분 | 설명 |
---|---|
정적 테스트 | 프로그램을 실행하지 않고 명세서, 소스코드 등을 분석하여 오류를 찾는 테스트 |
동적 테스트 | 프로그램을 실행하여 실제 오류나 결함을 찾는 테스트 |
테스트 방법 | 설명 |
---|---|
워크스루 (Walkthrough) | 개발자가 전문가에게 자신의 작업을 설명하고 피드백을 받는 방식 |
인스펙션 (Inspection) | 산출물을 품질 평가하고 개선 방향을 제시하는 공식적인 검토 방식 |
코드 검사 (Code Review) | 개발자가 작성한 소스 코드를 직접 검사하여 결함을 찾는 방식 |
테스트 방법 | 설명 |
---|---|
블랙박스 테스트 | 내부 코드 구조를 보지 않고 입력과 출력만 확인하는 테스트 |
화이트박스 테스트 | 내부 소스 코드 구조를 보고 논리 흐름을 검증하는 테스트 |
테스트를 어떤 기준으로 수행하는지에 따라 명세 기반, 구조 기반, 경험 기반으로 나뉩니다.
구분 | 설명 |
---|---|
명세 기반 테스트 | 요구사항 명세서를 바탕으로 기능을 검증하는 테스트 |
구조 기반 테스트 | 내부 코드의 논리 흐름을 분석하는 테스트 |
경험 기반 테스트 | 테스터의 경험을 바탕으로 오류를 찾는 테스트 |
테스트 방법 | 설명 |
---|---|
동등 분할 테스트 | 데이터를 그룹으로 나누고 대표 값을 테스트 |
경계 값 분석 테스트 | 값의 경계(최대, 최소) 부분에서 테스트 |
테스트 방법 | 설명 |
---|---|
구문 기반 테스트 | 코드의 문법적 오류를 검증 |
결정 기반 테스트 | 프로그램의 논리 흐름(조건문, 반복문 등)을 검증 |
테스트 방법 | 설명 |
---|---|
에러 추정 (Error Guessing) | 경험을 바탕으로 오류가 발생할 만한 부분을 예상하여 테스트 |
체크리스트 테스트 | 미리 정의된 테스트 목록을 기반으로 검증 |
탐색적 테스트 | 테스트 중간에 동적으로 테스트 케이스를 추가하면서 수행 |
누구의 시각에서 테스트하는가에 따라 검증(Verification)과 확인(Validation)으로 구분됩니다.
구분 | 설명 |
---|---|
검증 (Verification) | 개발자의 시각에서 명세서와 코드가 일치하는지 검토 |
확인 (Validation) | 사용자의 시각에서 실제 요구사항이 만족되는지 검토 |
테스트의 목적이 무엇이냐에 따라 다양한 유형으로 나뉩니다.
테스트 유형 | 설명 |
---|---|
회복 테스트 | 의도적으로 장애를 발생시켜 시스템이 정상적으로 복구되는지 검증 |
안전 테스트 | 불법적인 침입(해킹)으로부터 보호 가능한지 검증 |
강도(스트레스) 테스트 | 과부하를 주었을 때 시스템이 정상적으로 작동하는지 테스트 |
성능 테스트 | 응답 시간, 처리량 등의 성능을 측정 |
구조 테스트 | 소스 코드의 복잡도를 분석 |
회귀 테스트 | 수정된 코드가 기존 기능에 영향을 주지 않는지 검증 |
병행 테스트 | 변경 전/후 시스템을 비교하여 동작이 동일한지 검증 |
실행 여부에 따른 분류
테스트 기준에 따른 분류
시각(관점)에 따른 분류
목적에 따른 테스트 분류
📌 시험 문제 대비 TIP:
테스트 유형의 정의, 목적, 차이점을 명확하게 이해하고, 각각의 테스트 방법이 어떤 상황에서 사용되는지 기억하면 좋습니다! 🚀