테스트 설계 기법의 선택 기준
[대표 적인 테스트 기법]
소프트 웨어의 요구사항이나 사양서를 바탕으로 테스트를 설계하는 방법
1-1. 목적
요구 사항에 맞게 기능이 동작하는지 확인하고, 결함을 최대한 빠르게 발견하는 것
1-2. 명세 기반 테스트의 유형
동등 분할 기법, 경계값 분석, 상태 전이 테스트
입력값을 비슷한 특성을 가진 그룹으로 나누어 테스트 하는 방법
2-1. 목적
모든 값을 일일이 테스트 하지 않고 대표값을 골라 효율적으로 검증하는 것
2-2. 장단점

입력값이 특정 범위의 가장자리에 있을 때 결함이 발생하기 쉽다는 원리를 이용한 방법
3-1. 순서
3-2. 장단점

시스템이 특정 입력에 따라 상태가 어떻게 바뀌는지를 확인하는 방법
주로 여러 상태를 가진 시스템이나 단계적으로 변화하는 프로그램에서 사용
4-1. 상태 전이 테스트 주요 활동

4-2. 장단점

- 여러 조건과 그에 따른 결과를 표로 정리해 확인하는 방법
- 정확하고 꼼꼼하게 조건별 결과를 검증하기 위한 필수적인 방법
5-1. 장단점

프로그램 내부를 확인하며 문제를 찾는 방법
목적 : 프로그램이 정상적으로 작동하는지, 코드가 예상대로 실행되는지 확인
6-1. 필요성
- 코드 단계에서 오류를 빨르게 발견,수정 ->비용,시간절약
- SW 내부 동작 꼼꼼히 검증 -> 시스템 안정성 증가
- 자동화 도구와 병행 -> 반복적 테스트 빠름, 정확하게 수행
- 코드 변경 시 빠르게 확인 -> 유지보수에 좋음
6-2. 구조 기반 테스트의 유형
- 코드의 제어 구조(반복문, 조건문)를 기반으로 테스트 설계
- 조건문이 많은 시스템에서 유용하게 사용됨
- 주요 목표 : 모든 실행경로가 한 번 이상 테스트
- 변수의 정의와 사용 간의 관계를 검증하는 기법
- 주요 목표 : 변수가 올바르게 초기화 되고, 사용 후 예상대로 변경되지 않았는지 확인하는 것
- 데이터 일관성과 안정성을 보장함
- 소스 코드의 실행된 부분과 실행되지 않은 부분을 측정
- 주요 기준으로는 Line Coverage, Branch Coverage, Path Coverage가 있음
- 자동화 도구와 함께 사용하면 큰 효과 발휘
Line Coverage
- 소스 코드의 모든 라인이 한 번 이상 실행되었는지 확인하는 기준
- 초기 테스트 단계에서 유용함
- 다른 커버리지 기준과 결합하여 더욱 철저한 검증 가능
Branch Coverage
- True(참)과False(거짓) 두 가지 결과 모드 테스트
- 잘못된 조건문 로직으로 인한 오류를 조기에 발견가능
- 복잡한 조건문이 포함된 시스템에서 유용
Path Coverage
- 다중 조건문과 반복문이 포함된 코드에서 모든 조합과 경로를 테스트
- 가장 철저한 검증 방식 중 하나로, 복잡한 로직에서 유용
- 높은 리소스와 시간이 요구되지만 결함 발견율 높음
구조 기반 테스트 vs 명세 기반 테스트

10-1. 구조 기반 테스트의 적용 전략

- 테스터의 경험과 직관을 바탕으로 결함을 찾는 방법
- 사전에 복잡한 TC를 만들 필요가 없기에 준비 시간 짧음
- 특정 상황에서 발생할 수 있는 문제를 빠르게 발견하는 데 효과적
중요성

탐색적 테스트
- 테스터가 테스트를 설계, 실행, 결과 분석을 동시에 수행하는 기법
- 자신의 경험과 직관을 활용해 예상치 못한 문제를 발견
- 주요 목표 : 제한된 시간내에 결함 탐지와 더불어 시스템의 전반적인 동작을 이해하는 것
오류 추정
- 테스터의 경험과 시스템 지식을 바탕으로 결함이 발생할 가능성이 높은 부분을 예측하여 테스트 하는 기법
- 주요 목표 : 숨겨진 결함 탐지, 결함의 재발 방지
13-1. 오류 추정의 주요 활동

체크리스트 기반 테스트
- 미리 작성된 목록을 활용해 시스템을 검증하는 방법
- 주요 기능, 요구사항, 표준 규격 등이 포함
- 작성된 내용을 기반으로 검증하기 때문에 일관된 테스트 진행
탐색적 테스트 VS 오류 추정 VS 체크리스트

테스트 관리
-SW품질 보장을 위해 테스트 활동을 체계적으로 계획하고 실행하는 프로세스
- 테스트 계획 수립, 자원 관리, 테스트 실행 및 결과 분석
- 결함을 조기에 발견하고, 시간 및 비용을 줄이는데 기여
테스트 계획의 정의 및 중요성


리스크 분석
- 프로젝트에서 발생할 수 있는 위험 요소를 미리 파악하고 평가 하는 과정
- 기술적 문제, 자원 부족, 일정 지연 등 다양한 원인으로 발생
- 이를 통해 리스크를 최소화 하고 효율적인 자원관리 가능
18-1. 리스크 분석 단계

테스트 종료
- 모든 테스트 활동을 완료하고, 종료기준을 충족했는지 확인
- 프로젝트 종료 전 테스트 완료 여부를 공식적으로 확인하는 단계
테스트 결과 보고서
- 테스트 활동의 결과를 체계적으로 기록한 문서
- 테스프 프로세스의 투명성을 높이고, 향후 분석 자료로 활용
테스트 회고
