본문으로 건너뛰기
중급약 28분

Confluence 실전 ①: 매크로로 살아 있는 QA 문서 만들기

복사해 붙인 순간 낡기 시작하는 문서 대신, Jira와 연결돼 스스로 갱신되는 문서를 만든다. QA가 실제로 쓰는 매크로와 Jira 연동 흐름을 다룬다.

  • #Confluence
  • #매크로
  • #Jira연동
  • #테스트계획서
  • #문서화

개념

Jira는 '무엇을'을 담고 Confluence는 '왜'를 담는다

모듈 7(레슨 7)에서 Confluence를 "세 번째 축"으로 배웠다. 이슈 추적 도구가 개별 작업을, 테스트 관리 도구가 케이스를 담는다면, Confluence는 결정의 이유와 맥락 을 담는다.

이 레슨은 그 개념을 실제 화면에서 굴리는 방법이다. 그리고 핵심 주장은 하나다.

좋은 QA 문서는 사람이 갱신하는 문서가 아니라, 스스로 갱신되는 문서다.

테스트 계획서에 "미해결 결함 12건"이라고 타이핑해 넣는 순간 그 숫자는 낡기 시작한다. 다음 주에 보면 틀린 숫자고, 그걸 본 사람은 문서 전체를 믿지 않게 된다. 모듈 7에서 배운 "문서가 오래돼 못 믿게 되는 문제"의 가장 흔한 형태다.

Confluence의 매크로는 이 문제를 구조적으로 푼다. 숫자를 적는 대신 Jira 쿼리를 심어두면, 문서를 열 때마다 그 자리의 숫자가 지금 값으로 채워진다. 앞 레슨에서 배운 JQL이 여기서 두 번째 쓰임을 갖는다.

시작은 빈 페이지가 아니라 템플릿

새 문서를 만들 때 빈 페이지에서 시작하는 것은 대부분 손해다. Confluence는 템플릿을 제공하고, QA에게 유용한 것들이 이미 들어 있다.

템플릿쓰는 상황
테스트 계획(Test Plan)새 프로젝트·차수 시작 시 범위·일정·환경 정의
제품 요구사항(Product Requirements)기획 문서를 QA가 함께 검토할 때
회의록(Meeting Notes)요구사항 리뷰·결함 트리아지 회의 기록
의사결정(Decision)"이 결함은 이번 릴리즈에 고치지 않는다" 같은 결정
회고(Retrospective)릴리즈 후 회고

의사결정 템플릿을 특히 권한다. 모듈 4에서 배운 리스크 기반 판단이나 릴리즈 승인 결정은 시간이 지나면 "왜 그렇게 했더라"가 된다. 결정·근거· 대안·결정자를 한 페이지로 남겨두면 나중에 같은 논쟁을 반복하지 않는다.

템플릿을 그대로 쓸 필요는 없다. 팀에 맞게 고친 뒤 사용자 정의 템플릿 으로 저장해두면 그다음부터는 팀의 표준이 된다. 이게 모듈 18a(레슨 8)에서 배운 "반복 업무를 표준 절차로 만들기"의 문서 버전이다.

QA가 실제로 쓰는 매크로

편집 화면에서 슬래시(/)를 누르면 매크로 목록이 뜬다. 종류는 수십 개지만 QA가 실제로 쓰는 것은 한정적이다.

매크로무엇을 하나QA가 쓰는 상황
Jira 업무 항목 (/jira)단일 이슈 링크 또는 JQL 결과를 표로 삽입미해결 결함 목록, 이번 릴리즈 범위
Jira 차트Jira 데이터를 차트로결함 해결 추이, 우선순위 분포
상태(/status)색이 있는 라벨Pass / Fail / 진행중 / 보류
할 일 목록체크박스릴리즈 체크리스트, 스모크 항목
정보 / 경고 / 주의강조 박스테스트 계정, 환경 주의사항, 알려진 이슈
확장(/expand)접었다 펴기긴 로그, 상세 재현 절차, 스크린샷 묶음
레이아웃2·3열 분할왼쪽 시나리오 / 오른쪽 화면 캡처
목차(/toc)자동 목차긴 테스트 계획서
콘텐츠 속성 + 보고서여러 페이지의 메타데이터를 표로 집계차수별 테스트 결과 대시보드

마지막 줄이 가장 강력한데 가장 덜 알려져 있다. 조금 뒤에 따로 다룬다.

참고 — Atlassian은 도구 용어를 계속 손본다. 앞 레슨에서 본 '이슈 → 업무 항목' 변경에 이어, Confluence Cloud에서는 페이지 속성(Page Properties) 매크로가 '콘텐츠 속성(Content Properties)'으로 이름이 바뀌었다. 검색해서 나오는 자료의 이름이 화면과 달라도 같은 기능이다.

Jira 연동 — 문서 안에서 결함까지 등록한다

Confluence와 Jira를 함께 쓸 때의 진짜 이득은 맥락 전환이 사라지는 것 이다. 두 가지 흐름을 익혀두면 된다.

1) 텍스트를 드래그해서 바로 이슈 만들기

탐색적 테스트 중 페이지에 메모를 적어두다가, 그 텍스트를 드래그하면 떠오르는 툴바에서 + Jira 업무 항목 을 눌러 그 자리에서 결함을 등록할 수 있다. 등록된 이슈는 원래 텍스트 자리에 링크로 남는다.

이 흐름이 좋은 이유는 모듈 5(탐색적 테스팅)의 원칙과 맞기 때문이다. 탐색 중에는 흐름이 끊기면 안 된다. 이상한 점을 발견할 때마다 Jira로 가서 폼을 채우면 탐색 세션이 망가진다. 메모로 쭉 쌓아두고, 세션이 끝난 뒤 한 번에 이슈로 전환하는 방식이 훨씬 낫다.

2) JQL 결과를 페이지에 심기

/jira 매크로에 앞 레슨에서 만든 JQL을 넣으면, 그 결과가 표로 페이지에 박힌다. 예를 들어 릴리즈 노트 페이지에 이렇게 심어둔다.

project = SHOP AND fixVersion = "v2.4.0" AND issuetype = Bug
ORDER BY priority DESC

이러면 릴리즈 범위가 바뀔 때마다 문서가 저절로 따라온다. 사람이 목록을 복사해 붙였다면 그 순간부터 어긋나기 시작했을 것이다.

테스트 계획서에도 같은 방식을 쓴다.

문서의 자리심을 것
"테스트 대상 범위"해당 에픽 하위 스토리 목록(JQL)
"현재 미해결 결함"미해결 Bug 목록(JQL)
"차단 요소"status = Blocked 또는 차단 링크가 걸린 항목
"릴리즈 판단 근거"우선순위별 잔여 건수 차트(Jira 차트 매크로)

콘텐츠 속성 보고서 — 차수별 결과를 자동으로 모으기

여기가 이 레슨에서 가장 실무적인 부분이다. 문제 상황부터 보자.

테스트를 차수별로 수행하고 매번 결과 페이지를 만든다. 3개월이 지나면 페이지가 12개다. 팀장이 "지금까지 차수별 결과를 한눈에 보고 싶다"고 한다. 지금까지는 매번 손으로 표를 다시 만들었다.

콘텐츠 속성(구 페이지 속성) 매크로 가 이걸 해결한다. 동작 원리는 단순하다.

① 각 차수 페이지 안에 '콘텐츠 속성' 매크로를 넣고
   그 안에 2열 표로 메타데이터를 적는다
 
   ┌─────────────┬──────────────┐
   │ 차수         │ 3차           │
   │ 기간         │ 09-01 ~ 09-04 │
   │ 대상 버전     │ v2.4.0        │
   │ 수행 케이스   │ 184           │
   │ Pass / Fail  │ 176 / 8       │
   │ 판정         │ [조건부 통과]  │  ← 상태 매크로
   └─────────────┴──────────────┘
             ↓  (라벨로 묶는다: test-round)
 
② 요약 페이지에 '콘텐츠 속성 보고서' 매크로를 넣고
   라벨 test-round 를 지정한다
             ↓
③ 12개 페이지의 표가 한 장의 집계표로 자동 생성된다

새 차수 페이지를 만들면 요약표에 자동으로 한 줄이 추가된다. 손으로 갱신할 것이 없다. 이 구조를 한 번 만들어두는 데 20분쯤 걸리고, 그 뒤로는 영원히 공짜다.

같은 패턴을 쓸 수 있는 곳들이다.

  • 릴리즈별 테스트 결과 요약
  • 환경별 점검 결과(개발/스테이징/운영)
  • 결함 트리아지 회의록 모음(회차·참석자·결정 건수)
  • 기능 영역별 테스트 커버리지 현황

테스트 케이스를 Confluence에 쓸까, 전용 도구를 쓸까

Confluence 표로 테스트 케이스를 관리하는 팀이 많다. 되긴 된다. 다만 어디까지가 적정선인지 를 알아야 한다.

상황권장이유
기능별 체크리스트, 스모크 목록Confluence가볍고, 맥락과 함께 읽힌다
탐색적 테스트 세션 노트Confluence자유 서술이 필요하다
릴리즈 점검 항목Confluence할 일 목록 매크로로 충분
케이스 300개 이상의 회귀 스위트전용 도구(Xray·Zephyr·TestRail)실행 이력·차수 관리가 필요
요구사항 ↔ 케이스 ↔ 결과 추적성전용 도구매트릭스와 리포트가 필요
자동화 결과와 결합전용 도구API로 결과가 밀려 들어와야 한다

경계선은 "같은 케이스를 여러 번 실행하고 그 이력을 비교해야 하는가" 다. 한 번 보고 끝나는 체크리스트는 Confluence가 낫고, 실행 이력이 쌓여야 하는 것은 전용 도구가 낫다. 모듈 22 레슨 1~3에서 본 도구들이 그 자리다.

Confluence 표로 관리하다 무너지는 전형적 신호 도 알아두면 좋다 — 표가 화면 밖으로 넘쳐 가로 스크롤이 생기고, "지난 차수 결과는 어디 있죠"라는 질문이 나오기 시작하고, 같은 케이스가 두 페이지에 다르게 적혀 있는 상태. 이 셋 중 둘이 보이면 이사할 때다.

결과 보고서와 승인 기록

테스트 차수가 끝나거나 배포 전 단계에서 쓰는 테스트 결과 보고서 는 Confluence가 가장 잘 맞는 문서다. 숫자는 매크로로 살아 있게 하고, 판단과 근거는 글로 쓴다.

보고서에 반드시 들어가야 할 것은 넷이다.

  1. 범위 — 무엇을 테스트했고 무엇을 안 했는가(안 한 것을 쓰는 게 더 중요하다)
  2. 결과 수치 — 수행/통과/실패, 미해결 결함(JQL 매크로로 삽입)
  3. 판단과 근거 — "출시 가능하다고 보는 이유" 또는 "권고하지 않는 이유"
  4. 승인 기록 — 누가 언제 승인했는가

4번을 가볍게 보면 안 된다. 릴리즈 후 문제가 생겼을 때 "QA가 괜찮다고 했다"와 "QA는 잔여 리스크 3건을 명시했고, PO가 그것을 인지한 상태에서 출시를 결정했다"는 완전히 다른 상황이다. 멘션(@이름)으로 승인을 요청하고 그 응답이 페이지에 남으면 그것이 기록이 된다.

모듈 25에서 배운 것과 같은 원리다 — 안전·인증 도메인에서 요구하는 "검증했음을 증명하는 문서"가, 일반 서비스 조직에서는 이런 형태로 나타난다.

문서가 썩지 않게 하는 세 가지 장치

모듈 7에서 "문서가 오래돼 못 믿게 되는 문제"를 배웠다. 실무에서 쓸 수 있는 대응은 셋이다.

1) 숫자는 적지 말고 심어라. 이 레슨의 핵심. 손으로 적은 숫자는 반드시 낡는다.

2) 소유자와 검토 주기를 페이지에 적어라. 콘텐츠 속성 매크로에 소유자 / 최종 검토일 / 다음 검토일 을 넣어두고, 보고서 매크로로 모아 보면 검토 기한이 지난 문서 목록 이 자동으로 만들어진다.

3) 죽은 문서는 지우거나 표시하라. 보관(Archive)하거나 상단에 경고 매크로로 "이 문서는 v1.x 기준이며 갱신되지 않습니다"를 붙인다. 틀린 문서는 없는 문서보다 나쁘다.

실무에서 왜 필요한가

QA는 조직에서 문서를 가장 많이 쓰는 직군 중 하나다. 테스트 계획, 결과 보고, 회의록, 체크리스트, 환경 안내. 이 문서들이 신뢰를 잃으면 QA의 말도 함께 신뢰를 잃는다. 반대로 "QA 페이지에 가면 최신 상태를 알 수 있다" 는 평판이 생기면 그것 자체가 영향력이 된다.

매크로를 쓸 줄 아는 것과 모르는 것의 차이는 시간으로도 크다. 차수별 결과 집계, 릴리즈 범위 목록, 미해결 결함 현황을 매번 손으로 만들던 것이 한 번의 설정으로 대체된다. 그 시간은 테스트로 돌아온다.

그리고 이 능력은 QA가 회의에서 자료를 만드는 방식 을 바꾼다. 회의 전날 밤에 스크린샷을 모아 슬라이드를 만드는 대신, 항상 최신인 페이지 링크 하나를 공유하면 된다. 앞 레슨의 대시보드와 같은 원리다 — 살아 있는 화면이 정적인 보고서를 대체한다.

실습 과제

과제 1 — 살아 있는 테스트 계획서 만들기 (25분)

Confluence에서 테스트 계획 템플릿으로 페이지를 하나 만들고, 아래를 매크로로 채운다(직접 타이핑하지 않는다).

섹션사용할 매크로
목차목차 매크로
테스트 대상 범위Jira 매크로 + JQL(해당 에픽 하위)
테스트 환경 주의사항정보 또는 경고 매크로
현재 미해결 결함Jira 매크로 + JQL
상세 재현 절차·로그확장 매크로
진행 상태상태 매크로

완성 후 Jira에서 이슈 하나의 상태를 바꾸고 페이지를 새로고침해서 문서가 따라오는지 확인한다.

해설 보기

이 과제의 핵심은 마지막 확인 단계다. 매크로를 넣는 것보다 "내가 손대지 않아도 문서가 변한다"는 것을 눈으로 보는 경험 이 습관을 바꾼다.

자주 막히는 지점 두 가지. (1) Jira 매크로에서 내 필터가 안 보인다 — 앞 레슨에서 다룬 필터 공유 설정 문제다. (2) JQL을 넣었는데 결과가 0건 이다 — 프로젝트 키나 상태 이름이 실제와 다른 경우가 대부분이다.

한 가지 더 시도해볼 것 — 같은 JQL을 넣은 매크로를 두 개 만들고 하나는 '표', 하나는 '개수'로 표시해보라. 계획서 상단에는 개수만, 하단 부록에는 표로 두는 배치가 실무에서 잘 읽힌다.

과제 2 — 차수별 결과 자동 집계 만들기 (25분)

콘텐츠 속성(구 페이지 속성) 구조를 직접 만든다.

  1. 테스트 차수 페이지 3개 를 만든다(내용은 간단해도 좋다)
  2. 각 페이지에 콘텐츠 속성 매크로를 넣고 2열 표로 메타데이터를 적는다 (차수·기간·대상 버전·수행/통과/실패·판정)
  3. 세 페이지에 같은 라벨을 붙인다(예: test-round)
  4. 요약 페이지에 콘텐츠 속성 보고서 매크로를 넣고 그 라벨을 지정한다
  5. 네 번째 차수 페이지를 추가 하고 요약표에 자동으로 반영되는지 확인한다
해설 보기

5번이 이 과제의 목적이다. 자동으로 한 줄이 늘어나는 것을 보면 이 구조의 값어치가 체감된다.

실무에 적용할 때 주의할 점은 속성 표의 왼쪽 열 이름을 절대 바꾸지 않는 것 이다. 그 이름이 집계표의 열 제목이 되므로, 한 페이지에서만 "수행 케이스"를 "실행 건수"로 바꾸면 열이 따로 생긴다. 템플릿으로 저장해두고 복사해 쓰는 것이 안전하다.

'판정' 칸에 상태 매크로를 쓰면 집계표에서도 색 라벨로 보인다. 12개 차수의 판정이 색으로 한눈에 들어오는 표는 회의에서 설명이 필요 없다.

과제 3 — 도구 경계선 판정하기 (15분)

지금 팀에서 Confluence로 관리하고 있는 테스트 관련 표·목록을 3개 꼽고, 본문의 기준으로 각각 판정한다.

대상케이스 수재실행하나이력 비교 필요판정(유지/이사)근거

'이사'로 판정된 것이 있다면, 어느 도구로 갈지와 이사 비용을 한 줄로 적는다.

과제 4 — 승인 기록 설계하기 (12분)

릴리즈 승인(Sign-off) 섹션의 형식을 설계한다. 다음이 모두 들어가야 한다.

  • 잔여 리스크 목록(각각 영향과 대응 방안)
  • 승인 요청 대상(역할 기준으로 — 이름이 바뀌어도 유지되게)
  • 승인 응답을 남기는 방식
  • 승인하지 않는 경우 무엇을 하는지

마지막 항목을 꼭 넣는다. 승인 절차만 있고 거부 절차가 없으면, 그 절차는 형식적으로만 돌아간다.

자가 체크리스트

  • Jira와 Confluence가 각각 무엇을 담는지 '무엇을 / 왜'로 구분해 설명할 수 있다
  • 숫자를 적는 문서와 심는 문서의 차이를, 신뢰도 관점에서 설명할 수 있다
  • QA가 자주 쓰는 매크로 여섯 개 이상의 용도를 말할 수 있다
  • 텍스트 드래그로 Jira 업무 항목을 만드는 흐름이 탐색적 테스팅과 왜 잘 맞는지 설명할 수 있다
  • JQL을 페이지에 심어 릴리즈 범위·미해결 결함을 자동 갱신되게 만들 수 있다
  • 콘텐츠 속성 + 보고서 매크로로 여러 페이지의 메타데이터를 집계하는 구조를 만들 수 있다
  • 테스트 케이스를 Confluence에 둘지 전용 도구로 옮길지 판단 기준을 말할 수 있다
  • Confluence 표 관리가 무너지는 신호 세 가지를 들 수 있다
  • 테스트 결과 보고서에 반드시 들어가야 할 네 가지를 열거할 수 있다
  • 승인 기록이 왜 QA를 보호하는지 설명할 수 있다
  • 문서가 썩지 않게 하는 세 가지 장치를 말할 수 있다

흔한 실수

  • 숫자를 손으로 적는다. 적는 순간부터 낡는다. Jira 매크로로 심는다.
  • 빈 페이지에서 시작한다. 템플릿을 쓰고, 팀에 맞게 고쳐 사용자 정의 템플릿으로 저장한다.
  • 탐색 중에 매번 Jira로 이동한다. 세션 흐름이 끊긴다. 메모로 쌓고 드래그해서 한 번에 이슈로 전환한다.
  • 테스트 케이스 300개를 Confluence 표로 관리한다. 실행 이력 비교가 필요해지는 순간 무너진다. 경계선을 알고 이사한다.
  • 콘텐츠 속성 표의 항목 이름을 페이지마다 다르게 쓴다. 집계표에서 열이 따로 생긴다. 템플릿으로 고정한다.
  • 승인 기록을 남기지 않는다. "QA가 괜찮다고 했다"만 남고 잔여 리스크 고지는 사라진다. 멘션과 응답을 페이지에 남긴다.
  • 거부 절차 없는 승인 절차를 만든다. 형식만 남고 실제로는 아무도 멈추지 못한다.
  • 낡은 문서를 그냥 둔다. 틀린 문서는 없는 문서보다 나쁘다. 보관하거나 상단에 경고를 붙인다.

참고 자료

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
JQL — 지라 질의 언어
결함 관리 도구에서 "이런 조건인 건만 보여 달라"고 적는 말.
API — 응용 프로그램 인터페이스
프로그램끼리 주고받는 창구. 사람이 화면 버튼을 누르는 대신, 프로그램이 정해진 주소로 요청을 보내 답을 받는다.
PO — 제품 책임자
무엇을 먼저 만들지 정하는 사람. 애자일 방식에서 쓰는 역할 이름이다.

용어집 전체 보기