체계적인 테스트를 위한 6단계 프로세스, STLC

프로젝트를 진행하다 보면 이런 막막함에 부딪힐 때가 있습니다. “언제 테스트를 시작해야 할까?”, “테스트 케이스는 언제까지 만들어야 하지?”, “수많은 기능 중에 뭘 먼저 테스트해야 할까?”, “언제쯤 테스트가 끝났다고 말할 수 있을까?”

이러한 질문에 대한 답을 제시하고, 주먹구구식 테스트를 체계적인 공학 활동으로 바꿔주는 프레임워크가 있습니다. 바로 ‘소프트웨어 테스팅 생명주기’, 즉 STLC(Software Testing Life Cycle)입니다.

STLC란 무엇인가?

STLC는 소프트웨어의 품질 목표를 달성하기 위해, 테스트 활동을 단계별로 정의하고 체계화한 프로세스입니다. 단순히 테스트를 실행하는 것뿐만 아니라, 무엇을 왜 테스트할지 계획하고, 어떻게 테스트할지 설계하며, 결과를 어떻게 마무리할지까지의 전 과정을 포함합니다.

건물을 지을 때 설계, 기초 공사, 골조 공사, 내외장 마감, 준공 검사 순서로 진행하는 것처럼, 테스트도 체계적인 단계가 필요합니다. STLC가 바로 그 ‘공정표’ 역할을 합니다.

STLC의 6단계

STLC는 일반적으로 다음과 같은 6개의 단계로 구성됩니다. 각 단계는 이전 단계의 산출물을 입력으로 받아 진행됩니다.

1단계: 요구사항 분석 (Requirement Analysis)

  • 목표: 테스트의 대상과 범위를 명확히 이해하고, 테스트 가능한 요구사항을 식별하는 단계입니다.
  • 주요 활동:
    • 기획서, 사용자 스토리 등 요구사항 관련 문서를 검토합니다.
    • 요구사항이 모호하거나 테스트 불가능한 부분이 있다면 PM이나 개발자에게 질문하여 명확히 합니다.
    • 테스트의 우선순위를 정하고 어떤 종류의 테스트(기능, 성능, 보안 등)가 필요한지 파악합니다.

2단계: 테스트 계획 (Test Planning)

  • 목표: 전체 테스트 활동의 전략과 범위를 정의하는 ‘마스터 플랜’을 수립하는 단계입니다.
  • 주요 활동:
    • 테스트의 목표와 범위를 공식적으로 정의합니다.
    • 필요한 인력, 시간, 리소스 등을 산정합니다.
    • 테스트를 시작하고 종료하는 기준(‘Entry/Exit Criteria’)을 정합니다.
    • 위 내용을 종합하여 ‘테스트 계획서’라는 공식 문서를 작성합니다.

3단계: 테스트 케이스 개발 (Test Case Development)

  • 목표: 실제 테스트에 사용할 상세 테스트 케이스를 작성하는 단계입니다.
  • 주요 활동:
    • 이전 글에서 다룬 동등 분할, 경계값 분석과 같은 테스트 설계 기법을 활용하여 테스트 케이스를 설계합니다.
    • 설계된 내용을 바탕으로 상세한 실행 절차와 예상 결과를 담은 테스트 케이스 문서를 작성합니다.
    • 테스트에 필요한 데이터(테스트 데이터)를 미리 준비하고 생성합니다.

4단계: 테스트 환경 구축 (Test Environment Setup)

  • 목표: 테스트를 원활하게 실행할 수 있는 환경을 준비하고 구성하는 단계입니다.
  • 주요 활동:
    • 테스트 서버, 네트워크 등 하드웨어 및 소프트웨어 환경을 설정합니다.
    • 테스트할 버전의 소프트웨어를 테스트 서버에 설치(배포)합니다.
    • 테스트에 필요한 계정 생성, 데이터베이스 초기화 등 테스트 데이터를 준비합니다.

5단계: 테스트 실행 (Test Execution)

  • 목표: 준비된 테스트 케이스를 실행하여 소프트웨어의 결함을 찾아내는, 가장 핵심적인 단계입니다.
  • 주요 활동:
    • 테스트 계획과 케이스에 따라 테스트를 수행합니다.
    • 예상 결과와 실제 결과를 비교하여 성공(Pass) 또는 실패(Fail)로 판정하고 기록합니다.
    • 실패한 경우, 개발자가 재현하고 수정할 수 있도록 결함(Defect/Bug)을 JIRA와 같은 버그 추적 시스템에 상세히 보고합니다.

6단계: 테스트 사이클 종료 (Test Cycle Closure)

  • 목표: 테스트 활동의 결과를 정리하고, 런칭 여부를 판단하는 기준을 제시하며 공식적으로 테스트를 마무리하는 단계입니다.
  • 주요 활동:
    • 테스트 계획 시 정의했던 ‘종료 기준’이 충족되었는지 평가합니다.
    • 발견된 결함들이 모두 수정되고 재확인되었는지 검토합니다.
    • 전체 테스트 활동의 요약, 테스트 커버리지, 잔여 결함 목록 등을 담은 ‘테스트 결과 보고서’를 작성합니다.
    • 이번 테스트 주기에서 얻은 교훈이나 개선점을 기록하여 다음 프로젝트에 반영할 수 있도록 합니다.

결론: 체계적인 프로세스가 전문가를 만든다

STLC는 단순히 따라야 할 형식적인 절차가 아닙니다. 이는 테스트 활동의 예측 가능성을 높이고, 품질 상태를 객관적으로 측정하며, 팀원 모두가 동일한 목표를 향해 나아가도록 돕는 강력한 프레임워크입니다.

이러한 체계적인 프로세스를 이해하고 실천할 때, QA 엔지니어는 주어진 일을 수동적으로 처리하는 테스터를 넘어, 프로젝트의 품질을 주도적으로 계획하고 관리하는 진정한 전문가로 거듭날 수 있습니다.

댓글 남기기