본문 바로가기
ISTQB 4주 실전

(2주 4일차) 숲과 나무를 모두 보는 법 - 테스트 레벨과 유형

by QA여행 2025. 8. 21.

 

안녕하세요! QA여행 ( https://qajourney.tistory.com/ ) 입니다.

챌린지 10일차, 그리고 2주차의 중간 지점에 오신 여러분을 환영합니다.

 

어제 우리는 Jira 티켓의 여정을 따라가며 하나의 기능이 어떤 프로세스를 거쳐 완성되는지 살펴보았습니다.

오늘은 그 과정 중 'In QA' 단계에서 이루어지는 '테스트'라는 활동을 현미경으로 들여다보듯 더 깊이 파고들어 보려 합니다.

바로 테스트 레벨(Test Levels)과 테스트 유형(Test Types)에 대해서 알아볼 텐데요,

이 두 가지 개념은 QA가 '무엇을, 어떻게' 테스트할지 결정하는 가장 기본적인 기준이 된답니다.

 

테스트 레벨(Test Levels): 줌인부터 줌아웃까지

테스트 레벨은 테스트의 '범위' 또는 '관점'을 의미합니다.

작은 부품부터 완성된 자동차까지, 어느 수준에서 바라보느냐의 차이죠.

V-모델에서 잠시 보았던 개념들을 다시 한번 자세히 살펴보겠습니다.

By m_ajith - 자작. Created using Microsoft Visio 2007., 퍼블릭 도메인,  https://commons.wikimedia.org/w/index.php?curid=4039611

 

  1. 단위 테스트 (Unit Test)
    • 관점 : 가장 작은 코드 조각(함수, 메서드, 클래스 등)을 테스트합니다.
    • 비유 : 자동차의 '볼트' 하나, '엔진 밸브' 하나가 제대로 만들어졌는지 검사하는 것.
    • 주요 수행자 : 주로 개발자가 코드를 작성하며 함께 진행합니다.
  2. 통합 테스트 (Integration Test)
    • 관점 : 단위 테스트를 통과한 모듈들을 결합했을 때, 서로 상호작용이 잘 되는지 테스트합니다.
    • 비유 : 엔진 밸브, 피스톤 등을 조립한 '엔진 어셈블리'가 잘 작동하는지 확인하는 것.
    • 주요 수행자 : 개발자 또는 QA가 수행하며, 모듈 간 데이터 전달 등에 초점을 맞춥니다.
  3. 시스템 테스트 (System Test)
    • 관점 : 모든 모듈이 통합된 전체 시스템이 요구사항에 맞게 잘 동작하는지 테스트합니다. 대부분의 QA 엔지니어들이 가장 많은 시간을 보내는 레벨입니다.
    • 비유 : 완성된 자동차에 타서 시동은 잘 걸리는지, 브레이크는 잘 듣는지, 와이퍼는 움직이는지 등 모든 기능을 사용자 관점에서 검사하는 것.
    • 주요 수행자 : QA 엔지니어가 기획서(요구사항 명세서)를 기준으로 전체 시스템을 테스트합니다.
  4. 인수 테스트 (Acceptance Test)
    • 관점 : 소프트웨어가 실제 사용자(고객)의 요구와 비즈니스 목적에 부합하는지 최종적으로 확인하는 테스트입니다.
    • 비유 : 고객이 자동차 전시장에서 직접 차를 시운전해보고 "이 차를 사겠다"고 최종 결정하는 것.
    • 주요 수행자 : 실제 사용자, 고객 또는 고객을 대변하는 QA, PO 등이 수행합니다.

테스트 유형(Test Types): 무엇을 확인하고 싶은가?

테스트 유형은 테스트의 '목적' 또는 '목표'를 의미합니다. 같은 자동차를 테스트하더라도, "기능이 잘 되나?"를 볼 수도 있고, "승차감은 좋은가?"를 볼 수도 있는 것처럼요.

'테스트 유형'은 '기능'과 '비기능' 으로 나뉜다.

 

  1. 기능 테스트 (Functional Testing)
    • 목적 : 소프트웨어가 '무엇을 하는가'에 초점을 맞춰, 명시된 기능을 올바르게 수행하는지 확인합니다.
    • 예시 : "로그인 버튼을 누르면 로그인이 되어야 한다", "장바구니에 상품을 담으면 담겨야 한다."
  2. 비기능 테스트 (Non-functional Testing)
    • 목적 : 소프트웨어가 기능을 '어떻게' 수행하는가에 초점을 맞춰, 시스템의 특성(성능, 사용성 등)을 평가합니다.
    • 주요 종류 :
      • 성능 테스트 : 응답 속도는 빠른가? 많은 사용자가 동시에 접속해도 버티는가?
      • 사용성 테스트 : 사용자가 이용하기에 편리하고 직관적인가?
      • 보안 테스트 : 외부 공격으로부터 안전한가? 개인정보는 잘 보호되는가?
      • 호환성 테스트 : 다양한 브라우저(크롬, 사파리), 운영체제(윈도우, 맥), 기기(안드로이드, iOS)에서 잘 동작하는가?

 

마무리하며

오늘 배운 내용을 간단히 정리해볼까요?

테스트 레벨은 우리가 테스트할 범위(나무 or 숲)를 정하는 것이고,

테스트 유형은 그 범위 안에서 무엇을 확인할지(열매가 잘 열렸나? or 나무가 튼튼한가?) 목적을 정하는 것입니다.

예를 들어, 우리는 '시스템 레벨'에서 '기능 테스트'를 수행할 수도 있고,

'시스템 레벨'에서 '성능 테스트'를 수행할 수도 있는 것이죠.

이 두 가지 기준을 잘 이해하고 조합할 수 있다면, 훨씬 더 체계적이고 전문적인 테스트 계획을 세울 수 있게 됩니다.

오늘도 고생 많으셨습니다!

 

내일 11일차에는 오늘 배운 개념 중 QA에게 가장 친숙한 <시스템 테스트 실무>에 대해 알아봅니다.

'이 기능 테스트해주세요'라는 요청을 받았을 때,

QA는 어떤 생각의 흐름으로, 무엇부터 확인해야 하는지 구체적인 실무 팁을 알려드릴게요.

그럼 편안한 저녁 보내시고, 내일 다시 뵙겠습니다!

 

 

반응형