QA

[ISTQB 실러버스] 2장: 소프트웨어 개발수명주기(SDLC)와 테스팅

연듀 2026. 3. 10. 14:51

 

2.1. 소프트웨어 개발수명주기(SDLC)에서의 테스팅

SDLC는 소프트웨어 개발 과정의 단계와 활동을 정의하는 모델이다. 대표적인 예로는 폭포수 모델, V모델 같은 순차적 모델, 나선형 모델 같은 반복적 모델, 그리고 점진적 개발 모델 등이 있다.

각 SDLC 모델에 따라 테스트 활동의 시기와 방법이 달라지기 때문에, 테스트 전략도 이에 맞게 조정되어야 한다.


2.1.1. 소프트웨어 개발수명주기(SDLC)가 테스팅에 미치는 영향

선택한 SDLC 모델은 다음 요소에 영향을 준다.

  • 테스트 활동의 범위와 시기
  • 테스트 문서화 수준
  • 테스트 기법과 테스트 접근 방식
  • 테스트 자동화 범위
  • 테스터의 역할과 책임

예를 들어 순차적 개발 모델에서는 개발 후반에 실행 코드가 나오기 때문에 동적 테스트는 후반에 집중되는 경향이 있다.

 


2.1.2. 소프트웨어 개발수명주기(SDLC)와 좋은 테스팅 프랙티스

SDLC와 관계없이 적용되는 좋은 테스팅 원칙은 다음과 같다.

    • 모든 개발 활동에 대응되는 테스트 활동을 수행한다.
    • 테스트 레벨마다 명확한 테스트 목적을 정의한다.
    • 개발 초기 단계부터 테스트 분석과 설계를 시작한다.
    • 문서 초안 단계에서 테스터가 리뷰에 참여해 결함을 조기에 발견한다.

 


2.1.3. 소프트웨어 개발 주도를 위한 테스팅

테스트를 개발 방향을 결정하는 도구로 사용하는 접근법이다.

 

대표적인 방법:

  • TDD (Test Driven Development)
    테스트를 먼저 작성하고 그 테스트를 통과하도록 코드를 개발
  • ATDD (Acceptance Test Driven Development)
    인수 테스트를 먼저 정의한 후 개발
  • BDD (Behavior Driven Development)
    사용자 행동 중심으로 테스트와 개발 진행

이러한 방식은 코드 작성 전에 테스트를 정의한다는 특징이 있으며, 조기 테스팅과 시프트 레프트 전략을 지원한다.

 


2.1.4. 데브옵스(DevOps)와 테스팅

DevOps는 개발(Development)과 운영(Operations)의 협업을 통해 빠르게 소프트웨어를 배포하는 방식이다.

 

테스팅과 관련된 특징

  • 지속적 통합(CI)과 지속적 배포(CD)
  • 자동화된 테스트 활용 증가
  • 빠른 피드백 사이클
  • 개발, 테스트, 운영 간 협업 강화

2.1.5. 시프트 레프트 접근법(Shift Left)

테스트 활동을 개발 초기 단계로 이동시키는 접근 방식이다.

 

목적

  • 결함을 조기에 발견
  • 수정 비용 감소
  • 개발 품질 향상

예시

  • 요구사항 리뷰
  • 설계 단계 테스트
  • 코드 작성 전 테스트 설계

2.1.6. 회고 및 프로세스 개선

프로젝트나 반복 개발이 끝난 후 팀이 수행한 활동을 돌아보고 개선점을 찾는 활동이다.

 

회고의 목적

  • 잘한 점과 개선할 점 분석
  • 다음 반복 개발에서 프로세스 개선
  • 팀 협업 및 품질 향상

2.2 테스트 레벨과 테스트 유형

2.2.1 테스트 레벨

테스트 레벨은 테스트 대상 범위에 따라 구분되는 테스트 단계이다.

 

주요 테스트 레벨

  1. 컴포넌트 테스트
    • 개별 모듈 또는 함수 단위 테스트
  2. 통합 테스트
    • 여러 컴포넌트 간 인터페이스 테스트
  3. 시스템 테스트
    • 전체 시스템이 요구사항을 충족하는지 확인
  4. 인수 테스트
    • 사용자 또는 고객이 시스템 수용 여부 판단

각 테스트 레벨은 서로 다른 테스트 목적을 가진다.


2.2.2 테스트 유형

테스트 유형은 무엇을 테스트하는지에 따라 구분되는 테스트이다.

 

1. 기능 테스트: 시스템이 요구된 기능을 수행하는지 확인

2. 비기능 테스트: 성능, 보안, 사용성 등 품질 속성을 테스트

3. 구조 기반 테스트: 코드 구조나 내부 로직을 기준으로 테스트 수행


2.2.3 확인 테스팅 및 리그레션 테스팅

확인 테스팅 (Confirmation Testing)

  • 수정된 결함이 정상적으로 해결되었는지 확인하는 테스트

리그레션 테스팅 (Regression Testing)

  • 수정이나 변경으로 인해 기존 기능에 문제가 생기지 않았는지 확인하는 테스트
 

 


2.3 유지보수 테스팅

유지보수 테스팅은 운영 중인 시스템에 변경이 발생했을 때 수행하는 테스트이다.

 

발생 원인

  • 기능 개선
  • 결함 수정
  • 환경 변화 (OS, DB, 브라우저 등)
  • 시스템 업그레이드

특징

  • 변경 영향 분석 필요
  • 리그레션 테스트 중요
  • 기존 시스템 안정성 유지가 목적
반응형

'QA' 카테고리의 다른 글

[ISTQB 실러버스] 1장: 테스팅의 기초  (0) 2026.03.09