티스토리 뷰
테스트 프로세스 개요 (Overview of the Test Process)
소프트웨어 테스팅은 일련의 체계적인 활동으로 구성된 프로세스입니다. 이 프로세스는 소프트웨어 개발 생명주기(SDLC) 전반에 걸쳐 진행될 수 있으며, 프로젝트의 특성, 규모, 개발 모델에 따라 구체적인 절차나 단계별 반복 여부는 달라질 수 있습니다. 하지만 일반적으로 다음과 같은 핵심 활동들을 포함합니다.
이 개요에서는 국제 표준 IEEE 829 (Test Documentation) 및 ISTQB (International Software Testing Qualifications Board) 등에서 제시하는 일반적인 테스트 프로세스 모델을 기반으로 설명합니다.
일반적인 테스트 프로세스 단계
1. 테스트 계획 (Test Planning)
- 목적: 테스팅 활동의 목표와 방향을 설정하고, 필요한 자원(인력, 시간, 예산, 도구, 환경 등)을 정의하며, 전체 테스트 프로세스를 관리하기 위한 기반을 마련합니다.
- 주요 활동:
- 테스트 범위(무엇을 테스트하고 무엇을 테스트하지 않을 것인가) 및 목적 정의.
- 테스트 전략(어떤 테스트 레벨, 테스트 유형, 기법 등을 사용할 것인가) 수립.
- 테스트 일정 및 필요한 자원 예측 및 할당.
- 테스트 환경 정의 및 준비 계획.
- 테스트 완료 기준(Exit Criteria) 및 시작 기준(Entry Criteria) 정의.
- 테스트 위험 식별 및 관리 계획 수립 (위험 기반 테스팅 연계).
- 테스트 산출물(Testware, 예: 테스트 계획서, 테스트 케이스, 보고서) 정의.
- 산출물: 테스트 계획서 (Test Plan)
2. 테스트 모니터링 및 통제 (Test Monitoring and Control)
이 활동은 테스트 프로세스 전반에 걸쳐 지속적으로 수행됩니다.
- 목적: 계획 대비 실제 테스트 진행 상황을 추적하고 측정하며, 필요한 경우 목표 달성을 위해 수정 조치를 취하는 것입니다.
- 주요 활동:
- 테스트 진행 상황(실행된 테스트 케이스 수, 통과/실패율 등) 추적.
- 결함 보고 및 추적 (결함 수, 상태 변화 등).
- 계획 대비 차이 분석 및 이해관계자 보고.
- 위험 모니터링 및 새로운 위험 식별.
- 계획 대비 심각한 편차 발생 시 통제 조치(예: 일정 조정, 자원 추가, 범위 변경 등) 권고 또는 수행.
3. 테스트 분석 (Test Analysis)
- 목적: 테스트 대상 시스템에 대한 이해를 바탕으로 '무엇을 테스트해야 할까?' (What to test?)를 식별하는 것입니다.
- 주요 활동:
- 테스트 기반(Test Basis, 예: 요구사항 명세서, 설계 문서, 아키텍처 문서, 사용자 스토리, 유스케이스 등) 검토 및 분석.
- 테스트 가능한 피처(Feature) 및 조건을 식별.
- 식별된 조건으로부터 테스트 요구사항 정의.
- 초기 테스트 환경 요구사항 정의.
- 산출물: 테스트 조건 (Test Conditions), 테스트 요구사항 목록 등
4. 테스트 설계 (Test Design)
- 목적: 테스트 분석 단계에서 식별된 '무엇을 테스트해야 할까'를 구체적인 '어떻게 테스트할까?' (How to test?)로 변환하는 것입니다.
- 주요 활동:
- 테스트 조건으로부터 테스트 케이스(Test Case)를 설계하고 우선순위를 부여합니다. (동등 분할, 경계값 분석, 결정 테이블, 상태 전이 등 다양한 테스트 설계 기법 활용)
- 테스트 케이스 실행에 필요한 테스트 데이터(Test Data)를 식별하고 설계합니다.
- 테스트 환경 설계를 구체화하고 필요한 인프라 및 도구를 식별합니다.
- 산출물: 테스트 케이스 (Test Cases), 테스트 데이터 (Test Data) 설계 등
5. 테스트 구현 (Test Implementation)
- 목적: 테스트 설계 단계의 산출물(테스트 케이스 등)을 실행 가능한 형태로 준비하고, 테스트를 수행할 환경을 구축하는 것입니다.
- 주요 활동:
- 테스트 케이스를 자동화할 경우 테스트 스크립트(Test Script)를 개발합니다.
- 수동 테스트 절차(Test Procedure)를 명세합니다.
- 테스트 스위트(Test Suite, 테스트 케이스들의 모음)를 구성하고 순서를 정합니다.
- 테스트 실행에 필요한 테스트 데이터 및 테스트 환경을 구축하고 확인합니다.
- 테스트 하니스(Test Harness) 및 기타 테스트웨어를 준비합니다.
- 산출물: 테스트 스크립트, 테스트 프로시저, 준비된 테스트 환경, 테스트 데이터 등
6. 테스트 실행 (Test Execution)
- 목적: 준비된 테스트웨어(테스트 스크립트/프로시저, 테스트 데이터 등)를 사용하여 실제 테스트 대상 시스템을 실행하고 결과를 기록하는 것입니다.
- 주요 활동:
- 테스트 스위트 또는 테스트 케이스를 계획된 순서대로 실행합니다.
- 실제 결과를 예상 결과와 비교합니다.
- 실제 결과와 예상 결과가 다를 경우, 불일치를 결함(Defect)으로 기록하고 추적 시스템에 등록합니다.
- 테스트 실행 상태를 보고합니다.
- 실행된 테스트 케이스 및 발견된 결함 수를 측정하고 기록합니다.
- 산출물: 테스트 실행 로그(Test Execution Logs), 결함 보고서 (Defect Reports), 테스트 실행 상태 보고서
7. 테스트 완료 (Test Completion)
- 목적: 특정 테스트 마일스톤(예: 시스템 테스트 완료, 출시 준비)에 도달했을 때 테스팅 활동을 마무리하고 관련 정보를 수집하여 교훈을 얻는 단계입니다.
- 주요 활동:
- 테스트 종료 기준(Exit Criteria) 충족 여부 확인.
- 완료된 테스트 활동 요약 및 결과 보고 (테스트 완료 보고서 작성).
- 발견된 결함의 최종 상태 확인.
- 테스트 산출물(테스트 케이스, 스크립트, 데이터, 환경 등) 보관 및 아카이빙.
- 테스팅 활동에 대한 교훈(Lessons Learned) 분석 회의 수행.
- 테스트 관련 메트릭 수집 및 분석.
- 산출물: 테스트 완료 보고서 (Test Completion Report), 교훈 문서, 아카이빙된 테스트웨어
이러한 단계들은 순차적으로 보이지만, 실제 프로젝트에서는 여러 단계가 동시에 진행되거나 반복적으로 수행될 수 있습니다. 특히 애자일 개발 환경에서는 각 스프린트 내에서 계획, 분석, 설계, 구현, 실행, 완료 활동이 반복적으로 이루어집니다.
'ㅈㄱㅈ > ㅊㄴㅅㄴ' 카테고리의 다른 글
테스트 계획 개요 설명 (0) | 2025.04.28 |
---|---|
테스트 관리 및 동적 테스팅 프로세스 (0) | 2025.04.28 |
위험기반 테스팅 (0) | 2025.04.28 |
명세기반 테스팅 (0) | 2025.04.28 |
구조기반 테스팅 (0) | 2025.04.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- oracle
- db
- dbeaver
- popup
- Coffee
- Eclipse
- VBS
- 리리 커피
- backup
- LILI COFFEE
- JSP
- Filter
- table
- Between
- GitHub
- diff
- SQL
- JavaScript
- 단위변환
- SEQUENCE
- 스페셜티
- date
- MariaDB
- 커피
- partition
- 로스터리
- MySQL
- Powershell
- BAT
- handdrip
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함