티스토리 뷰

1. 테스트 노력 추정 기법

테스트 노력 추정은 테스트 프로젝트의 목표를 달성하기 위해 필요한 작업량을 예측하는 과정이다. 테스트 노력 추정은 프로젝트 일정과 자원 관리에 필수적인 역할을 하며, 다양한 추정 기법이 사용된다.

1-1. 비율 기반 추정

비율 기반 추정은 과거 프로젝트 데이터를 활용하여 표준 비율을 도출한 뒤 이를 새로운 프로젝트에 적용하는 방식이다.

  • 공식:
    테스트 노력 = 개발 노력 × (테스트 노력 비율 / 개발 노력 비율)
    
  • 예시:
    이전 프로젝트에서 개발 대 테스트 노력 비율이 3:2였고, 현재 프로젝트의 개발 노력이 600 인/일로 예상된다면, 테스트 노력은 다음과 같이 계산된다.
    테스트 노력 = 600 × (2 / 3) = 400 인/일
    

1-2. 외삽법

외삽법은 프로젝트 초기에 수집된 데이터를 기반으로 남은 작업량을 예측하는 방식이다.

  • 반복적 SDLC에서 특히 효과적이며, 이전 반복의 평균 데이터를 활용한다.
  • 예시:
    첫 번째 반복에서 테스트 노력이 50 인/일, 두 번째 반복에서 60 인/일이었다면, 세 번째 반복도 평균적으로 55 인/일이 소요될 것으로 추정할 수 있다.

1-3. Wideband Delphi

Wideband Delphi는 전문가 기반의 반복적 추정 기법으로, 논의를 통해 최종 추정에 도달한다.

  • 과정:
    1. 전문가들이 개별적으로 추정치를 작성한다.
    2. 추정 결과를 공유하고 편차가 큰 경우 논의한다.
    3. 논의를 반복하여 최종 추정에 합의한다.
  • 변형: 애자일 환경에서는 Planning Poker라는 변형된 형태가 자주 사용된다.

1-4. 세 점 추정

세 점 추정은 낙관적 추정, 가장 가능성 높은 추정, 비관적 추정을 바탕으로 가중 평균을 계산하는 방식이다.

  • 공식:
    E = (a + 4m + b) / 6
    SD = (b - a) / 6
    
    여기서 aa: 낙관적 추정, mm: 가장 가능성 높은 추정, bb: 비관적 추정.
  • 예시:
    낙관적 추정이 10일, 가장 가능성 높은 추정이 15일, 비관적 추정이 25일일 때,
    E = (10 + 4(15) + 25) / 6 = 16.67
    SD = (25 - 10) / 6 = 2.5
    

2. 테스트 케이스 우선순위 지정

테스트 케이스를 우선순위에 따라 실행 순서를 정하면, 자원을 효율적으로 사용하고, 주요 리스크를 빠르게 해결할 수 있다.

우선순위 전략

  1. 리스크 기반 우선순위
    • 리스크 분석 결과를 기반으로 가장 중요한 리스크를 다루는 테스트 케이스를 먼저 실행한다.
    • 예: 데이터 손실이나 보안 취약점이 발생할 가능성이 높은 기능을 우선 테스트.
  2. 커버리지 기반 우선순위
    • 테스트 커버리지를 기준으로 우선순위를 지정하며, 추가 커버리지를 제공하는 테스트 케이스를 우선 실행한다.
  3. 요구사항 기반 우선순위
    • 이해관계자가 정의한 요구사항 우선순위를 기준으로 테스트 케이스를 실행한다.
    • 예: 필수 기능은 먼저 테스트하고 선택적 기능은 나중에 테스트한다.

우선순위 지정 시 고려사항

  • 테스트 케이스 간의 의존성.
  • 자원 가용성(테스트 환경, 도구, 인력).
  • 릴리스 일정 및 시간 제약.

3. 테스트 피라미드

테스트 피라미드는 테스트 자동화와 노력 할당을 지원하는 모델로, 하위 계층에서 상위 계층으로 갈수록 테스트 수가 줄어든다.

피라미드 계층

  1. 하위 계층:
    • 단위 테스트(Unit Testing): 코드의 작은 기능을 빠르게 확인하며 많은 수가 필요하다.
    • 예시: 수학 함수의 결과 검증.
  2. 중간 계층:
    • 통합 테스트(Integration Testing): 여러 모듈 간 상호작용을 확인한다.
    • 예시: 결제 API와 데이터베이스 간 데이터 흐름 확인.
  3. 상위 계층:
    • UI 테스트(User Interface Testing): 엔드투엔드 시나리오를 테스트한다.
    • 예시: 사용자가 상품을 검색하고 결제하는 전체 플로우 테스트.

4. 테스트 사분면

테스트 사분면은 테스트 레벨, 테스트 유형, 활동, 기법, 산출물을 그룹화한 모델로, 모든 적절한 테스트가 SDLC에 포함되도록 보장한다.

사분면 구성

  1. Q1: 기술 지향, 팀 지원
    • 컴포넌트 테스트와 통합 테스트.
    • 자동화 도구를 활용하며 빠른 피드백 제공.
  2. Q2: 비즈니스 지향, 팀 지원
    • 사용자 스토리 테스트와 API 테스트.
    • 비즈니스 요구를 검증하며 기능 구현을 지원.
  3. Q3: 비즈니스 지향, 제품 평가
    • 탐색적 테스트와 사용자 수용 테스트.
    • 제품의 사용성을 평가하고, 사용자 피드백을 반영.
  4. Q4: 기술 지향, 제품 평가
    • 스모크 테스트와 비기능 테스트(성능, 보안 등).
    • 시스템의 안정성과 비기능적 요구사항 충족 여부를 평가.

결론

테스트 노력 추정, 테스트 케이스 우선순위 지정, 테스트 피라미드, 테스트 사분면은 모두 효과적인 테스트 관리와 실행을 지원하는 기법이다.
이러한 기법을 적절히 활용하면 프로젝트의 테스트 품질과 효율성을 동시에 향상시킬 수 있다. 특히, 정확한 추정과 우선순위 지정은 제한된 자원으로도 높은 품질을 달성하는 데 중요한 역할을 한다.

테스트 계획 및 추정

'소프트웨어 테스팅' 카테고리의 다른 글

테스트 도구  (1) 2025.01.13
설정 관리와 결함 관리  (0) 2025.01.13
테스트 모니터링, 통제 및 완료  (0) 2025.01.13
리스크 관리  (0) 2025.01.13
테스트 활동 관리  (0) 2025.01.13
협업 기반 테스트 접근법  (0) 2025.01.13
경험 기반 테스트 기법  (0) 2025.01.13
화이트박스 테스트 기법  (0) 2025.01.13