티스토리 뷰
1. 테스트 활동, 테스트웨어, 테스트 역할
테스트는 상황에 따라 다르지만, 높은 수준에서는 공통적인 테스트 활동들이 있다. 이러한 활동 없이는 테스트 목표를 달성하기 어렵다. 이 활동 집합은 테스트 프로세스를 형성한다. 테스트 프로세스는 다양한 요소를 기반으로 특정 상황에 맞게 조정할 수 있다. 테스트 프로세스에 포함되는 활동, 이를 구현하는 방법, 그리고 발생 시점은 일반적으로 특정 상황에 맞는 테스트 계획의 일환으로 결정된다.
다음 섹션에서는 테스트 활동과 작업, 컨텍스트(맥락)의 영향, 테스트웨어, 테스트 베이시스와 테스트웨어 간의 추적성, 테스트 역할에 대한 일반적인 측면을 설명한다.
1-1. 테스트 활동과 수반되는 작업
테스트 프로세스는 일반적으로 아래에 설명된 주요 활동 그룹으로 구성된다. 이러한 활동들은 논리적인 순서를 따르는 것처럼 보일 수 있지만, 종종 반복적(iterative)으로 또는 병렬(parallel)로 진행될 때도 있다. 각 시스템과 프로젝트에 맞게 조정해야 한다.
1-1-1. 테스트 계획
테스트 계획은 테스트 목표를 정의하고, 전체 맥락의 제약 조건 내에서 목표를 가장 잘 달성할 수 있는 접근 방식을 선택하는 것으로 구성된다.
1-1-2. 테스트 모니터링과 통제
테스트 모니터링은 모든 테스트 활동을 지속적으로 확인하고 실제 진행 상황을 계획과 비교하는 것을 포함한다. 테스트 통제는 테스트 목표를 달성하기 위해 필요한 조치를 취하는 것을 포함한다.
1-1-3. 테스트 분석
테스트 분석은 테스트 베이시스를 분석하여 테스트 가능한 기능을 식별하고, 관련된 테스트 조건을 정의하고 우선순위를 정하며, 관련 리스크와 리스크 수준을 평가하는 것을 포함한다. 테스트 분석은 “무엇을 테스트할 것인가?”라는 질문에 대한 답을 제공한다.
1-1-4. 테스트 설계
테스트 설계는 테스트 조건을 테스트 케이스 및 기타 테스트웨어(예: 테스트 차터)로 구체화하는 것을 포함한다. 이 활동은 테스트 데이터 요구사항, 테스트 환경 설계, 필요한 인프라와 도구를 정의하는 것도 포함한다. 테스트 설계는 “어떻게 테스트할 것인가?”라는 질문에 대한 답을 제공한다.
1-1-5. 테스트 구현
테스트 구현은 테스트 실행에 필요한 테스트웨어(예: 테스트 데이터)를 생성하거나 획득하는 것을 포함한다. 테스트 케이스는 테스트 절차로 조직되며 종종 테스트 스위트로 결합된다. 테스트 환경은 설정되고 올바르게 구성되었는지 검증한다.
1-1-6. 테스트 실행
테스트 실행은 테스트 실행 일정에 따라 테스트를 실행하는 것을 포함한다. 테스트는 수동으로 또는 자동으로 수행될 수 있다. 실제 테스트 결과는 예상 결과와 비교되며, 테스트 결과가 기록된다. 발견된 이상 현상은 원인을 분석하고, 필요시 결함으로 보고한다.
1-1-7. 테스트 완료
테스트 완료 활동은 프로젝트 마일스톤(예: 릴리스, 반복 종료, 테스트 레벨 완료) 시 수행된다. 테스트웨어는 향후 유용할 경우 식별하여 보관하거나 적절한 팀에 전달한다. 테스트 환경은 합의된 상태로 종료한다. 테스트 완료 보고서를 작성하여 이해관계자에게 전달한다.
1-2. 맥락에서의 테스트 프로세스
테스트는 고립되어 수행되지 않는다. 테스트 활동은 조직 내에서 수행되는 개발 프로세스의 필수적인 부분이다. 테스트는 이해관계자의 자금으로 운영되며, 궁극적으로는 이해관계자의 비즈니스 요구를 충족시키는 것을 목표로 한다. 따라서 테스트 수행 방식은 다양한 맥락적 요소에 따라 달라진다.
- 이해관계자: 요구사항, 기대, 협력 의지 등
- 팀 구성원: 기술, 지식, 경험 수준, 가용성 등
- 비즈니스 도메인: 테스트 대상의 중요도, 리스크, 시장 요구 등
- 기술적 요소: 소프트웨어 유형, 제품 아키텍처, 사용 기술 등
- 프로젝트 제약 조건: 범위, 시간, 예산, 자원 등
- 조직적 요소: 조직 구조, 기존 정책 및 관행 등
- 소프트웨어 개발 생명주기(SDLC): 개발 방식, 엔지니어링 관행 등
- 도구: 가용성, 사용 용이성, 규정 준수 등
이러한 요소들은 테스트 전략, 테스트 기술, 자동화 수준, 테스트 문서화의 상세 수준 및 보고 방식에 영향을 미친다.
1-3. 테스트웨어
테스트웨어는 테스트 활동을 통해 생성된 산출물이다. 다양한 조직은 작업 산출물을 생산, 형성, 명명, 구성, 관리하는 방식에서 큰 차이를 보인다. 적절한 형상 관리는 작업 산출물의 일관성과 무결성을 보장한다.
테스트웨어 예시는 다음과 같다.
- 테스트 계획 산출물: 테스트 계획, 테스트 일정, 리스크 등록부, 입출력 기준 등
- 테스트 모니터링 및 통제 산출물: 테스트 진행 보고서, 통제 명령 문서, 리스크 정보 등
- 테스트 분석 산출물: 우선순위가 지정된 테스트 조건, 테스트 베이시스 결함 보고서 등
- 테스트 설계 산출물: 우선순위가 지정된 테스트 케이스, 테스트 차터, 커버리지 항목 등
- 테스트 구현 산출물: 테스트 절차, 자동화 테스트 스크립트, 테스트 스위트 등
- 테스트 실행 산출물: 테스트 로그, 결함 보고서 등
- 테스트 완료 산출물: 테스트 완료 보고서, 문서화된 학습 내용 등
1-4. 테스트 베이시스와 테스트웨어 간의 추적성
효과적인 테스트 모니터링과 통제를 구현하려면, 테스트 베이시스 요소, 관련 테스트웨어(예: 테스트 조건, 리스크, 테스트 케이스), 테스트 결과 및 발견된 결함 간의 추적성을 구축하고 유지하는 것이 중요하다.
추적성은 커버리지 평가를 지원하며, 테스트 목표 달성 정도를 보여주는 지표로 사용할 수 있다.
예를 들어:
- 테스트 케이스와 요구사항(스펙) 간의 추적성은 모든 요구사항이 테스트 케이스로 다루어졌는지(커버되었는지) 확인한다.
- 테스트 결과와 리스크 간의 추적성은 테스트 대상의 잔여 리스크 수준을 평가하는 데 사용된다.
1-5. 테스트에서의 역할
테스트에서의 주요 역할은 테스트 관리 역할과 테스트 역할로 나뉜다. 이 두 역할에 할당된 활동과 작업은 프로젝트 및 제품 맥락, 역할을 맡은 사람의 기술 수준, 조직에 따라 다르다.
- 테스트 관리 역할은 테스트 프로세스, 테스트 팀 및 테스트 활동의 리더십에 대한 책임을 맡는다. 주로 테스트 계획, 모니터링 및 통제, 테스트 완료 활동에 집중한다.
- 테스트 역할은 테스트의 기술적(엔지니어링) 측면에 대한 책임을 맡는다. 주로 테스트 분석, 설계, 구현, 실행 활동에 초점을 맞춘다.
이 역할들은 상황에 따라서 동일한 사람이 두 역할을 수행하거나 다른 사람이 역할을 분담할 수 있다.
'소프트웨어 테스팅' 카테고리의 다른 글
피드백과 리뷰 프로세스 (0) | 2025.01.13 |
---|---|
정적 테스트 (0) | 2025.01.12 |
유지보수 테스트 (0) | 2025.01.12 |
테스트 레벨과 테스트 유형 (0) | 2025.01.12 |
소프트웨어 개발 수명 주기 전반에서의 테스트 (0) | 2025.01.12 |
테스트에 필요한 기술과 좋은 테스터 (0) | 2025.01.12 |
소프트웨어 테스팅이란 무엇인가? 왜 필요한가? (0) | 2025.01.12 |
소프트웨어 테스팅 ISTQB Foundation Level 자격에 대한 설명 (0) | 2025.01.12 |