ISTQB 2.1 소프트웨어 개발 모델

2-1. 소프트웨어 개발 모델

1. V-모델(순차적 개발 모델)

  • 테스팅과 소프트웨어 개발은 서로 밀접하게 연계된다
  • 개발 생명 주기에 기반하여 테스팅 접근법을 다르게 적용한다.
  • 요구사항, 기본설계(기능명세), 설계, 코딩의 순서로 순차적으로 개발한다
  • 개발 산출물: 비즈니스 시나리오 또는 유즈케이스, 요구사항 명세, 설계 문서 나 코드 → 테스트 베이시스(Basis)로 사용한다.
  • V-모델의 역할
    • 각각의 개발 단계에서 테스팅을 접근하는 방법을 개략적으로 이해하기 쉽게 모델화하여 보여주는 것
    • V-모델을 통해 테스팅 기본 개념 이해
      • 테스트 레벨의 의미
      • 개발 초기 단계에서 테스팅을 수행하다는 것의 의미
      • 결함 예방 차원에서 테스팅이 의미하는 바
      • V&V(Verification and Validation)의 의미
        • 요구사항 검증, 사용자의 목적을 만족하는지 검증 및 확인을 한다.
  • 테스트 레벨의 의미
  • 컴포넌트/단위 테스팅, 통합 테스팅, 시스템 테스팅, 인수 테스팅
    • 테스트 레벨에 따라 테스트 전략, 테스트 기법, 테스트 수행 주체, 테스트 완료 기준 등이 달라짐
    • 테스트 레벨은 독립적
  • 개발 초기 단계에서 테스팅을 수행하다는 것의 의미
    • 개발 산출물을 리뷰 형태로 검토하면서 결함을 발견하는 정적 테스팅을 의미
    • 결정 테이블 테스팅, 상태전이 테스팅, 유즈케이스 테스팅 등
    • 개발 초기의 테스팅을 통해서 후반부에서 발생할 비용을 줄임
  • 초기에 테스트 설계를 통해 결함을 사전에 예방

2. 반복적-검증적 개발 모델

  • 핵심적인 개발 활동을 리스크(우선순위)에 따라 반복적/발전적으로 적용해 결과물/해결책 도출
  • 반복 사이클을 통해 개발이 진행됨에 따라 문제에 대한 이해를 높여 해결 능력 향상
  • 주기가 반복될수록 테스트 범위가 증가한다.
  • 리그레션 테스팅이 점차 중요해진다
  • 테스트 자동화 필요성이 증가한다
  • 활용 가능한 적절한 테스트 접근법
    • 애자일 테스팅(Agile Testing)
    • 탐색적 테스팅(Exploratory Testing)
  • 기존 폭포수 방식의 개발 모델과 비교해 개발 프로젝트의 예측에 용이하다

3. 개발 생명주기 모델에서의 테스팅

  • 성공적인 테스팅을 위한 요건
    • 모든 개발 활동은 이에 상응하는 테스트 활동을 동반
    • 각 테스트 레벨은 그 레벨에 맞는 특정한 목적이 있음
    • 주어진 테스트 레벨에 맞는 테스트의 분석과 설계는 대응되는 개발 활동 동안에 시작
    • 개발 생명주기 동안에 개발 산출물의 초안이 작성되면, 테스터는 이러한 문서를 리뷰하는 활동에 참가
  • 테스팅 레벨 조절
    • 테스팅은 프로젝트나 시스템 아키텍처의 성격에 따라 재조정하 거나 합쳐질 수 있음