티스토리 뷰

앞에서 다룬 테스트 기법들은 결함 감지에 중점을 둔다. 반면, 협업 기반 접근법은 결함 감지뿐만 아니라 협업과 의사소통을 통한 결함 회피에도 초점을 맞춘다.

 

협업 기반 테스트 접근법


 

이 접근법은 소프트웨어 개발 초기 단계부터 팀원과 이해관계자가 적극적으로 참여하여 소프트웨어 품질을 향상시키는 데 기여한다.


1. 협업 기반 사용자 스토리 작성

사용자 스토리는 시스템 또는 소프트웨어의 사용자나 구매자에게 가치 있는 기능을 나타낸다. 사용자 스토리는 다음 세 가지 핵심 요소를 포함한다.

  • 카드(Card): 사용자 스토리를 설명하는 매체로, 인덱스 카드나 전자 보드 항목과 같은 형태로 작성된다.
  • 대화(Conversation): 사용자 스토리가 소프트웨어에서 어떻게 사용될지를 설명하며, 문서화되거나 구두로 진행될 수 있다.
  • 확인(Confirmation): 사용자 스토리 구현이 완료되었음을 나타내는 인수 기준이다.

좋은 사용자 스토리의 특성

  • 독립적, 협상 가능, 가치 있음, 추정 가능, 작음, 테스트 가능 등의 특성을 가져야 한다.
  • 명확하고 간결해야 하며, 비즈니스 가치와 구현 가능성을 균형 있게 반영해야 한다.

사용자 스토리 작성 사례

  1. 전자 상거래 플랫폼
    • "나는 고객으로서 주문 상태를 실시간으로 확인하고 싶다. 그로 인해 배송 일정에 맞게 내 스케줄을 조정할 수 있다."
    • 인수 기준:
      • 사용자가 로그인했을 때, 주문 목록이 표시된다.
      • 각 주문의 상태(예: 준비 중, 배송 중, 배송 완료)가 명확히 표시된다.
      • 사용자가 배송 상태를 클릭하면 상세 정보(예: 예상 도착일)가 표시된다.
  2. 은행 애플리케이션
    • "나는 은행 고객으로서 계좌 잔액을 확인하고 싶다. 그로 인해 필요한 자금을 관리할 수 있다."
    • 인수 기준:
      • 사용자는 로그인 후 계좌 목록을 볼 수 있다.
      • 각 계좌의 현재 잔액이 표시된다.
      • 특정 계좌를 선택하면 상세 거래 내역이 표시된다.

2. 인수 기준

인수 기준은 사용자 스토리 구현이 승인되기 위해 충족해야 할 조건으로, 테스트에서 다뤄야 할 테스트 조건을 정의한다.

목적과 장점

  • 사용자 스토리의 범위를 명확히 정의한다.
  • 이해관계자 간 합의를 이끌어내며, 모호함을 제거한다.
  • 긍정적 및 부정적 시나리오를 포함하여 테스트 범위를 확장한다.
  • 정확한 계획 및 추정을 가능하게 한다.

작성 방식

  1. 시나리오 지향 형식
    • "주어진 상황에서/조건이 충족될 때/그 결과" 형식.
    • 예시:
      • 주어진 상황: 사용자가 로그인한 상태에서.
      • 조건이 충족될 때: 주문 상태를 클릭하면.
      • 그 결과: 예상 도착일 정보가 표시된다.
  2. 규칙 지향 형식
    • 입력-출력 매핑 또는 확인 목록 형태.
    • 예시:
      • 사용자가 잘못된 비밀번호를 입력하면 경고 메시지가 표시된다.
      • 각 주문 항목은 고유한 식별자를 가진다.

3. 인수 테스트 주도 개발(ATDD)

ATDD는 사용자 스토리 구현 이전에 테스트 케이스를 먼저 설계하여 테스트 조건과 목표를 명확히 정의하는 접근법이다.

단계별 실행 과정

  1. 사양 워크숍
    • 팀원과 이해관계자가 모여 사용자 스토리와 인수 기준을 논의한다.
    • : "배송 예상 시간이 잘못 표시될 경우 어떻게 처리할 것인가?"
  2. 테스트 케이스 작성
    • 긍정적 테스트: 정상적인 주문 상태에서 예상 도착일이 올바르게 표시되는지 확인한다.
    • 부정적 테스트: 잘못된 주문 번호 입력 시 적절한 오류 메시지가 표시되는지 확인한다.
    • 비기능적 테스트: 성능 효율성, 사용성 등을 포함한다.

ATDD의 주요 이점

  • 팀 간 공통된 목표를 설정하여 협업을 강화한다.
  • 구현 단계 이전에 잠재적인 결함을 탐지하여 재작업 비용을 줄인다.
  • 이해관계자가 테스트에 적극적으로 참여하여 요구사항에 대한 명확성을 높인다.

4. 협업 기반 테스트 접근법의 추가 이점

4-1. 협업을 통한 결함 회피

협업 기반 접근법은 결함을 감지하기 전에 사전 예방하는 데 효과적이다.

  • 예를 들어, 개발자는 테스터와의 논의를 통해 코드 설계의 잠재적 위험 요소를 사전에 파악할 수 있다.
  • 이해관계자는 제품의 초기 설계에서부터 피드백을 제공하여 불필요한 기능 추가나 결함 발생 가능성을 줄일 수 있다.

4-2. 사용자 중심 개발 촉진

  • 사용자 스토리와 인수 기준을 통해 제품 개발이 사용자 요구사항에 부합하도록 한다.
  • 실제 사용자와의 피드백 루프를 통해 요구사항 변경 사항을 신속히 반영할 수 있다.

4-3. 팀 간 신뢰와 협업 강화

  • 팀원 간 의사소통이 원활해지며, 역할과 책임이 명확해진다.
  • 테스트 과정에서 다양한 관점을 반영하여 소프트웨어 품질을 높인다.

5. 실제 적용 사례

5-1. 애자일 환경에서 협업 기반 테스트

  • 스크럼 회의: 매일의 스탠드업 미팅에서 사용자 스토리의 상태와 테스트 진행 상황을 논의한다.
  • 스프린트 리뷰: 완료된 사용자 스토리에 대한 인수 테스트 결과를 공유하고, 개선 사항을 도출한다.

5-2. 대규모 프로젝트에서의 협업

  • 분산 팀 간 협업: 원격지 팀과 협업할 때 사용자 스토리 작성 워크숍을 화상회의 도구를 통해 진행하며, 디지털 보드를 사용해 내용을 기록하고 공유한다.
  • 자동화된 인수 테스트 활용: 테스트 자동화 도구(JUnit, Cucumber)를 통해 인수 테스트를 실행하고, 결과를 팀과 공유한다.

결론

협업 기반 테스트 접근법은 결함 감지뿐만 아니라 결함 회피에 중점을 두어 소프트웨어 개발의 품질을 향상시키는 데 기여한다. 사용자 스토리 작성, 인수 기준 정의, ATDD와 같은 기법은 팀 간 협업과 의사소통을 강화하며, 결함을 조기에 발견하고 수정하는 데 도움을 준다. 프로젝트의 맥락에 따라 이러한 기법을 유연하게 적용함으로써 소프트웨어 품질뿐만 아니라 개발 효율성도 크게 향상될 수 있다.

'소프트웨어 테스팅' 카테고리의 다른 글

테스트 모니터링, 통제 및 완료  (0) 2025.01.13
리스크 관리  (0) 2025.01.13
테스트 계획 및 추정  (0) 2025.01.13
테스트 활동 관리  (0) 2025.01.13
경험 기반 테스트 기법  (0) 2025.01.13
화이트박스 테스트 기법  (0) 2025.01.13
블랙박스 테스트 기법  (0) 2025.01.13
테스트 분석 및 설계  (0) 2025.01.13