테스트 사분면

DoTheTest·2025년 7월 15일
0

테스트 지식

목록 보기
2/24

소프트웨어 개발 프로젝트에서 '품질'은 아무리 강조해도 지나치지 않은 가치입니다. 하지만 버그는 필연적으로 발생하며, 개발 주기 후반에 발견될수록 수정 비용은 기하급수적으로 증가합니다. 그렇다면 어떻게 한정된 자원으로 최대의 안정성을 확보할 수 있을까요? 이 질문에 대한 가장 명확한 해답을 제시하는 모델이 바로 애자일 테스트 사분면(Agile Testing Quadrants)입니다. 이것은 단순히 테스트를 분류하는 목록이 아니라, 팀 전체가 품질에 대한 공통된 시각을 갖고 균형 잡힌 전략을 수립하도록 돕는 강력한 사고의 틀(Thinking Framework)입니다.


애자일 테스트 사분면의 핵심 철학

테스트 사분면은 브라이언 마릭(Brian Marick)이 처음 고안하고 리사 크리스핀(Lisa Crispin)과 자넷 그레고리(Janet Gregory)가 발전시킨 모델입니다. 이 모델을 올바르게 이해하기 위해 가장 먼저 기억해야 할 것은, 이것이 '따라야 할 순차적 프로세스'가 아니라 '활용해야 할 사고 도구'라는 점입니다. 그 핵심 철학은 다음과 같습니다.

  • 목적 1: '품질'에 대한 공통의 언어 제공
    '테스트'라는 단어는 사람마다 다르게 해석됩니다. 개발자는 단위 테스트를, 기획자는 사용자 시나리오를, 인프라 담당자는 성능 테스트를 떠올릴 수 있습니다. 테스트 사분면은 이러한 다양한 품질 활동을 하나의 지도 위에 시각적으로 표현함으로써, 모든 팀원(개발자, QA, 기획자, 디자이너 등)이 '품질'에 대해 이야기할 수 있는 공통의 언어를 제공합니다.

  • 목적 2: 균형 잡힌 테스트 전략 수립
    많은 팀이 자신도 모르게 특정 종류의 테스트에만 집중하는 경향이 있습니다. 예를 들어, 기능 검증에만 몰두한 나머지 성능이나 사용성을 간과할 수 있습니다. 테스트 사분면은 네 개의 영역을 통해 우리에게 질문을 던집니다. "우리가 놓치고 있는 품질의 관점은 없는가?" 이 모델은 팀이 의식적으로 모든 측면을 고려하여 한쪽으로 치우치지 않는, 균형 잡힌 테스트 전략을 수립하도록 돕는 체크리스트 역할을 합니다.

  • 목적 3: '왜' 테스트하는가에 대한 명확한 정의
    가장 중요한 철학은 모든 테스트 활동에 '왜'라는 목적의식을 부여하는 것입니다. 사분면은 각 테스트가 '개발을 지원하기 위한 것'인지 '제품을 비평하기 위한 것'인지, 그리고 '기술을 위한 것'인지 '비즈니스를 위한 것'인지 명확히 구분합니다. 이를 통해 우리는 "그냥 하던 거니까"라는 관성에서 벗어나, 모든 테스트 활동이 명확한 목표와 가치를 갖도록 만들 수 있습니다.


사분면을 이해하는 두 개의 축

이러한 철학을 구현하기 위해, 모델은 두 개의 축을 기준으로 네 개의 영역을 정의합니다.

  • X축 (가로축): 비즈니스 지향 vs. 기술 지향 (Business-facing vs. Technology-facing)

    • 비즈니스 지향 (오른쪽): 이 테스트들은 비즈니스 용어로 설명할 수 있으며, 비전문가(기획자, 프로덕트 오너, 고객)도 쉽게 이해할 수 있습니다. 사용자의 관점에서 제품의 가치를 검증하는 데 초점을 맞춥니다.
    • 기술 지향 (왼쪽): 이 테스트들은 코드, 아키텍처 등 기술적인 관점에서 시스템의 내부 품질을 검증합니다. 개발팀을 위한 테스트이며, 기술적인 용어로 작성됩니다.
  • Y축 (세로축): 팀 지원 vs. 제품 비평 (Supporting the Team vs. Critiquing the Product)

    • 팀 지원 (아래쪽): 개발 과정에서 팀을 '지원'하고 '안내'하는 테스트입니다. 주로 개발이 완료되기 전에 또는 개발 중에 수행되며, "우리가 올바른 길로 가고 있는가?"를 확인하고 버그를 예방하는 데 목적이 있습니다.
    • 제품 비평 (위쪽): 이미 만들어진 제품을 다양한 관점에서 '비평'하고 '평가'하는 테스트입니다. 주로 개발이 완료된 후에 수행되며, 예상치 못한 문제나 숨겨진 결함을 찾아내는 데 목적이 있습니다.

네 개의 사분면 깊이 보기

두 축을 조합하면 다음과 같은 네 개의 영역이 만들어집니다.

Q1: 기술 지향 & 팀 지원 (Technology-facing & Supports the Team)

핵심 질문: "우리가 제품을 '올바르게' 만들고 있는가?" (Are we building the product right?)
목적: 코드 수준의 품질을 보장하고, 개발자에게 즉각적인 피드백을 제공하며, 안정적인 리팩토링을 지원합니다.

테스트 종류:

  • 단위 테스트 (Unit Tests)
  • 컴포넌트 테스트 (Component Tests)

특징:

  • 주로 자동화되며, CI/CD 파이프라인의 가장 첫 단계에서 실행됩니다.
  • 개발팀의 내부 품질과 코드의 건강 상태를 책임집니다.
  • 테스트 피라미드의 가장 넓은 기반을 형성합니다.

Q2: 비즈니스 지향 & 팀 지원 (Business-facing & Supports the Team)

핵심 질문: "우리가 '올바른' 제품을 만들고 있는가?" (Are we building the right product?)
목적: 요구사항을 명확히 하고, 팀(기획, 개발, QA) 모두가 기능에 대해 동일한 이해를 갖도록 돕습니다. 비즈니스 가치를 중심으로 개발을 안내합니다.

테스트 종류:

  • 기능 테스트 (Functional Tests)
  • 스토리 테스트 (Story Tests)
  • 프로토타입 및 목업(Mockups) 테스트
  • 예제를 통한 테스트 (Testing by Example): BDD(행동 주도 개발)가 여기에 해당됩니다.

특징:

  • 자동화와 수동 테스트가 혼합됩니다. (예: BDD 시나리오는 자동화, 프로토타입 리뷰는 수동)
  • 개발자와 비개발자 간의 협업이 가장 중요한 영역입니다.

Q3: 비즈니스 지향 & 제품 비평 (Business-facing & Critiquing the Product)

핵심 질문: "이 제품이 실제 사용자에게 정말 가치가 있는가? 사용하기에 편한가?"
목적: 실제 사용자의 관점에서 시스템을 탐색하고 평가하여, 시나리오 기반 테스트에서는 발견하기 어려운 문제점들을 찾아냅니다.

테스트 종류:

  • 탐색적 테스팅 (Exploratory Testing)
  • 사용성 테스트 (Usability Testing)
  • 사용자 인수 테스트 (UAT, User Acceptance Testing)
  • 알파/베타 테스트

특징:

  • 주로 수동 테스트가 중심이 되며, 사람의 직관과 경험이 매우 중요합니다.
  • 제품이 사용자의 기대를 충족시키는지 최종적으로 확인하는 단계입니다.

Q4: 기술 지향 & 제품 비평 (Technology-facing & Critiquing the Product)

핵심 질문: "이 제품은 충분히 빠르고, 안전하고, 안정적인가?"
목적: 성능, 보안, 안정성, 확장성 등 기능 외적인 품질 속성(비기능적 요구사항)을 검증합니다.

테스트 종류:

  • 성능 및 부하 테스트 (Performance & Load Testing)
  • 보안 테스트 (Security Testing)
  • 신뢰성 및 복구성 테스트 (Reliability & Recovery Testing)
  • 다양한 "-ility" 테스트 (Scalability, Maintainability 등)

특징:

  • 특수한 도구와 전문 지식이 필요하며, 주로 자동화된 스크립트로 수행됩니다.
  • "기능은 되는데 너무 느리다", "해킹에 취약하다" 등의 문제를 방지합니다.

테스트 사분면의 올바른 활용법

  • 프로세스가 아닌 사고 도구: 테스트 사분면은 'Q1 → Q2 → Q3 → Q4' 순서로 진행하는 경직된 프로세스가 아닙니다. 언제든 네 개의 사분면을 펼쳐놓고 우리 팀의 테스트 활동이 한쪽으로 치우치지 않았는지 점검하는 전략 회의 도구입니다.
  • 균형을 위한 체크리스트: 팀은 새로운 기능을 개발할 때 사분면을 보며 "이번 기능에서 우리가 놓치고 있는 품질 관점은 없는가?"라고 자문할 수 있습니다. 예를 들어, Q1과 Q2에만 집중하느라 Q3의 사용성이나 Q4의 성능을 간과하고 있지는 않은지 확인하는 것입니다.
  • 품질 대화의 시작점: 사분면은 개발자, QA, 기획자, 디자이너 등 모든 팀원이 '품질'에 대해 이야기할 수 있는 공통의 언어를 제공하여, 전사적인 품질 문화를 만드는 데 기여합니다.

테스트 피라미드 vs 테스트 사분면: 상호 보완적 관계

그렇다면 널리 알려진 '테스트 피라미드'와 '테스트 사분면'은 어떤 관계일까요? 두 모델은 서로 경쟁하는 것이 아니라, 서로 다른 질문에 답하며 품질 전략을 완성하는 강력한 파트너입니다.

  • 피라미드가 '무엇을(WHAT)'과 '얼마나(HOW MUCH)'에 대한 모델이라면, 사분면은 '왜(WHY)'와 '누구를 위해(FOR WHOM)'에 대한 모델입니다.

  • 테스트 피라미드: 자동화 테스트 포트폴리오의 구성과 비율에 집중합니다. "단위 테스트를 가장 많이, E2E 테스트를 가장 적게 가져가야 한다"는 구체적인 가이드를 통해 효율적인 자동화 전략을 설계하도록 돕습니다. 이는 주로 사분면의 Q1(단위/컴포넌트 테스트)과 Q2(기능 테스트 자동화) 영역을 어떻게 구현할지에 대한 해답을 줍니다.

  • 테스트 사분면: 모든 종류의 품질 활동의 목적과 균형을 다룹니다. 자동화 테스트뿐만 아니라, 피라미드가 다루지 않는 Q3의 수동 탐색적 테스트나 Q4의 비기능 테스트까지 포함하여 전체적인 품질 활동의 누락을 방지합니다.

결론적으로, 테스트 피라미드를 통해 효율적인 자동화 구조를 설계하고, 테스트 사분면을 통해 그 구조를 포함한 전체 품질 활동의 균형을 맞추는 것이 가장 이상적인 접근법입니다.

0개의 댓글