테스트 관리를 위한 Jira: 선택, 과제, 그리고 솔루션

by | May 10, 2024

여러분의 팀이 소프트웨어 개발 관리를 위해 Jira를 사용하고 있다면, 테스트 수행 및 QA 절차를 Jira와 통합하는 것은 필수적이다. 일반적으로 두 가지 기본 선택권이 있다:

  1. Jira를 직접 활용하여 테스트 수행 작업을 모니터링한다. (주로 개발 이슈와 관련된 하위 작업 또는 사용자 정의 이슈 유형을 통해)
  2. Jira 기반 테스트 관리 애드-온을 사용한다. (무료일 수도, 유료일 수 있다.)

테스트 관리를 위해 Jira 사용하기

Jira는 애초에 소프트웨어 테스트 수행을 위해 고안된 것이 아니다. 그래서 기본 탑재된 테스트 관리 기능은 부족하다. 하지만 적응성이 뛰어나고 커스터마이징 가능한 필드가 있다. 이 덕분에 테스트 케이스 관리와 같은 작업을 위해 사용하려는 사용자가 많아졌다.

하지만, Jira를 테스트 관리 도구로 사용하는 데에는 어려움이 따를 수 있다. 특히 QA 팀과 개발 팀의 규모와 구조에 따라, 득보다 실이 큰 경우가 생길 수도 있다.

그림: Jira 보드는 팀의 작업을 기둥 사이로 이동하는 카드로 표시한다.

테스트 관리를 위해 Jira를 사용할 때의 장점

테스트 요구 사항이 덜 복잡한 팀의 경우, 테스트 활동을 모니터링할 때 Jira로도 충분하다. 여기에는 세가지 주요 이유가 있다:

  • 접근: 팀이 개발 추적에 이미 Jira를 사용하는 경우, Jira에서 테스트 수행을 추적하기 위한 추가 라이선스가 필요하지 않을 수 있다.
  • 도구 강화: 모든 추적을 하나의 도구로 진행하면, 유지해야 하는 플랫폼이 줄어든다. 또 애자일 소프트웨어 개발 작업 전반에 대한 시야를 향상시킬 수 있다.
  • 유연성: 일부 작업을 통해, Jira의 이슈 템플릿이 다양한 사용자 정의 필드를 포함하도록 조정할 수 있다. 이 기능을 사용하면 ‘탐색적 테스트’ 또는 ‘회귀 테스트’와 같은 특정 사용자 정의 이슈 유형을 생성할 수 있다. 기본 이슈 유형(에픽, 스토리, 작업, 하위 작업, 버그 등)과는 별도로 만들 수 있다.

테스트 관리를 위해 Jira를 사용할 때의 어려움

Jira는 충분한 시간과 노력이 있을 때엔 테스트 관리에 사용할 수 있다. 하지만 상당한 어려움도 있다:

  • 테스트 케이스 및 테스트 계획 구성이 복잡할 수 있다.
  • 여러 번의 테스트 주기에 따른 테스트 결과를 추적할 수 있는 방법이 쉽지 않다.
  • Jira는 테스트 자동화를 거의 지원하지 않는다. 전혀 지원하지 않는 경우도 있다.
  • 추적성이나 커버리지에 대해 리포트 할 수 있는 방법이 쉽지 않다.

1. 테스트 계획 및 조직을 위한 설정이 복잡하다.

Jira를 사용해 테스트 케이스를 구성하는 것, 그리고 Jira 이슈를 사용해 테스트 스위트를 구축하는 것은 절차가 복잡하다. 추가적인 플러그인이나 애드-온 또는 도구 없이 Jira 테스트 관리에 접근하는 방식은 두 가지다.

기존 Jira 워크플로 안에 테스트 작업을 넣기

기존 Jira 워크플로 안에서 테스트 추적을 시작할 수 있다. 이슈 설명 필드 및 하위 작업을 활용하여 모든 관련 테스트 정보를 기록하면 된다. 하지만, 이 접근 방식에는 확장성이 없다. 또 테스트 데이터 및 전제 조건을 관리하기 어렵다. 그리고 테스트 진행 상황에 대한 가시성이 제한된다.

사용자 정의 Jira 이슈 유형들을 만들기

여러분은 사용자 정의 Jira 이슈 유형을 만들 수도 있다. 이는 테스트를 기록하고 추적하는데 적합하다. 그러나, 이는 혼란을 초래할 수도 있다. Jira 보드가 복잡해질 수도 있고, 테스트 수행 전용으로 별도 Jira 프로젝트를 유지해야 할 수도 있다. 여러분은 Jira 이슈를 그룹화 해서 “테스트 스위트”를 만들기를 시도해 볼 수 있다. 사용자 정의 레이블 또는 필드를 사용하는 것이다. 그러나 모든 관련 테스트를 한 눈에 볼 수 있게 계층적으로 Jira 이슈를 구성하는 방법은 기본 탑재 되어있지 않다. 여러분의 팀은 에픽을 사용해 테스트 스위트를 만들 수도 있다. 그러나 재사용 가능한 테스트를 찾거나 유지 관리가 필요한 테스트를 찾아내려면 상당한 검색을 해야 한다.

그림: 사용자 정의 Jira 이슈를 사용하면, Jira 보드가 복잡해질 수도 있다. 그리고 테스트 수행 전용으로 별도 Jira 프로젝트를 유지해야 할 수도 있다.

2. 시간의 경과에 따른 테스트 결과를 추적하는 것이 어렵다.

테스트 수행 프로그램의 확장을 위해, 테스트 케이스를 효율적으로 재사용할 수 있어야 한다. 그러나, Jira 이슈는 이런 용도로는 적합하지 않다. Jira 이슈를 한 릴리스에서 다른 릴리스로 복제하는 것은 가능하다. 하지만 엔드투엔드 회귀 테스트 수행에 중요한 전체 이슈 세트를 처리할 때는 시간이 많이 소요된다. 또한, 복제된 이슈는 시간의 경과에 따른 테스트의 성공 또는 실패 비율을 추적할 수 있는 기능이 없다.

Jira 쿼리 언어(Jira Query Language, “JQL”)를 사용한다 해도, 특정 Jira 이슈를 정확히 찾아내는 것은 어려울 수 있다. 특히 이전 테스트의 복제본이거나 다른 이슈의 하위 작업으로 시작된 경우에는 더욱 그렇다. Jira 작업이 ‘완료’로 표시되고 나면, 더이상 보이지 않는다. 해당 작업을 찾으려면, Jira의 검색 기능을 사용하여 과거 이슈를 살펴봐야 한다. 아니면 Jira 과거 이슈를 엑셀로 내보내기 한 다음 수동으로 필터링해야 한다.

3. Jira는 테스트 자동화를 거의 또는 전혀 지원하지 않는다.

Jira 소프트웨어는 다양한 REST API를 제공한다. 하지만 테스트 자동화 도구에 대한 기본적인 지원은 부족하다.

Cucumber과 같은 도구로 BDD 테스트 수행을 하든, JUnit이나 Selenium과 같은 프레임워크로 자동화 테스트를 실행하든, 테스트 자동화를 Jira에서 추적되는 나머지 수작업 테스트와 통합하는 방법은 쉽지 않다. 이렇게 통합이 어려워 발생하는 분리는 QA팀 내에 사일로를 만들어 테스트 절차에 대한 실시간 가시성에 영향을 미친다.

4. 테스트 커버리지 또는 추적 능력에 대해 리포트 할 수 있는 방법이 없다.

효과적인 추적 능력은 팀이 요구 사항에 대한 문서나 테스트 케이스를 빠르게 찾으려 할 때 도움이 된다. 그리고 규정 준수를 위한 규제 감사를 통과해야 하는 규제 대상 산업이나 애플리케이션에 대단히 중요하다.
Jira는 사용자 스토리, 결함, 에픽 간의 연결을 간소화한다. 하지만 내장된 커버리지 리포트나 추적 능력 리포트가 없다. 연결된 이슈를 검색하는 데 시간이 많이 걸린다. 그리고 링크 설정을 확인하는 내장된 워크플로나 리포트가 없으면 규정 준수가 어려워진다.

테스트 관리를 위해 Jira 애드온 사용하기

다른 옵션으로는 Atlassian Marketplace를 통해 제공되는 앱이나 애드-온을 사용하는 것이 있다.

Jira에는 두 가지 다른 유형의 테스트 관리 앱이 있다:

  1. Jira를 기반으로 구축되고 관리되는 앱 (예: Xray)
  2. Jira를 전용 테스트 관리 플랫폼과 통합하는 앱 (예: TestRail)
장점단점
Jira 테스트 관리 애드온 •향상된 테스트 케이스 구성 및 계획
•개선된 가시성 및 리포트
•결함 추적과 추적 능력 향상
•모든 팀 구성원들이 Jira 내에서 테스트 케이스, 결과물, 보고서들에 접근 가능
•선택한 앱이 유료라면 (Jira 서버, Jira 클라우드, 또는 Jira 데이터 센터), 기존 Atlassian 구독료에 추가되어 청구됨
•비용 문제: 비싼 것도 있다. (특히 라이선스가 Jira 사용자 모두에게 필요한 경우)
•제한적인 커스터마이징: 팀의 필요에 맞게 도구를 조정하는 것이 아니라, 팀이 도구의 설계에 맞춰야 할 수도 있다.
•복잡한 신규 진입: 애드온을 채택하고 효과적으로 사용하는 것이 팀 구성원들에게는 어려울 수 있다.
•확장에 영향: Jira를 확장하면 성능 이슈가 발생할 수 있다. 애드온 사용자뿐만 아니라 전체 사용자에게 영향을 미칠 수 있다.
전용 테스트 관리 솔루션과 동기화 되는 Jira 앱 •QA 워크플로의 손쉬운 관리
•테스트 자동화 및 기타 DevOps 절차와 원활하게 통합 가능
•더욱 향상된 커스터마이징
•QA와 개발 간의 가시성 향상
•테스트 관리의 제어력 향상
•확장성 향상
•별도 라이선스: 일반적으로, 이런 유형의 플랫폼의 경우 별도 라이선스를 구매해야 한다. (Jira 앱 자체가 무료인 경우에도)

올바른 Jira 테스트 관리 솔루션을 선택하는 방법

이상적인 도구를 선택하려면 팀의 구체적인 필요 사항과 목표를 이해해야 한다. 목표를 정의하라. 예를 들면, 커버리지 격차 파악, QA 생산성, 테스트 절차에 대한 인사이트 확보 등을 정의한다.

팀 고유의 테스트 수행 목적 외에도 고려해야 할 사항이 있다. 기능, 가격, 지원, 사용자 피드백 또는 사례 연구를 고려해서 적합한 도구를 비교하고 선택한다.

더 나아가서, 애자일 팀이 Jira를 사용한다면, “적합한” 테스트 관리 도구를 선택할 때 고려해야 할 것이 있다. 다음은 그 7 가지 사항이다.

1. 워크플로 커스터마이징

효과적인 테스트 관리 도구는 테스트 활동을 조직하고 계획하기 위해 강력한 기능을 제공해야 한다. 테스트 케이스의 생성, 관리, 재사용이 가능해야 한다. 그리고 테스트 수행 진행 상황 추적과 리포트가 용이해야 한다.
예를 들어, TestRail에서는, 모든 테스트 케이스를 한 곳에서 관리, 조직, 추적할 수 있다. 그리고 여러 테스트 실행, 구성, 마일스톤에 대한 포괄적인 프로젝트 리포트를 생성한다. 또, 추적성 및 커버리지 리포트를 받아 요구 사항, 테스트, 결함에 대한 커버리지를 추적할 수 있다.

그림: 좋은 Jira 테스트 관리 도구를 사용하면, 플랫폼 내에서 많은 동작과 테스트 엔티티를 커스터마이징 할 수 있다. 테스트 케이스 및 결과 필드부터 테스트 케이스 템플릿 및 사용자 역할까지 모두 가능하다.

2.낮은 학습 곡선

도구가 너무 다루기 힘들거나 배우기 어렵다면, 그 도구를 사용하는 것은 매우 힘겨운 일이 될 것이다. 평가판을 통해 사용자 경험을 평가해 보자. 직관적 인터페이스, 유용한 문서, 기존 사용자의 리뷰가 있는 도구를 찾아보자.

그림: (G2 리뷰) TestRail의 편리함과 직관적인 사용자 인터페이스로 인해 적응이 빨라진다.

3.기술 스택과의 통합

테스트 관리 플랫폼에 기술 스택을 통합하면 사용자 경험이 향상될 뿐만 아니라 시스템 간 정보 공유도 능률화된다.

TestRail과 같은 독립적인 테스트 관리 도구를 통해, 거의 모든 테스트 자동화, CI/CD 또는 기타 DevOps 도구와 통합할 수 있다. 즉, 팀에 가장 적합한 도구를 사용할 수 있다. 동시에 애플리케이션 품질에 대한 신뢰할 수 있는 단일 소스를 유지할 수 있다.

그림: Selenium과 같이 널리 사용되는 자동화 도구, Junit과 같은 유닛 테스트 수행 프레임 워크, Jenkins와 같은 지속적인 통합(CI, continuous integration) 시스템을 사용하는 경우에도 TestRail은 거의 모든 도구와 통합될 수 있다.

4.확장성

회사가 성장함에 따라, 요구 사항 역시 더욱 복잡해진다. 테스트 데이터의 양, 사용자 수도 늘어나는데, 도구는 이런 사항들에 대응할 수 있어야 한다.

이는 많은 수의 Jira 기반 애드온에는 특히 어려운 과제다. 테스트 볼륨이 증가함에 따라, Jira 인스턴스의 데이터베이스에 저장되는 Jira 이슈의 수도 증가 증가하기 때문이다. Jira 이슈가 너무 많으면 인스턴스의 속도가 현저히 감소하기 시작해, 팀 구성원 모두 작업이 힘들어질 수 있다.

보통, Jira 외부에 구축된 테스트 관리 도구는 테스트 수행 데이터를 위해 더욱 탄탄한 인프라를 제공할 수 있다. 대규모 성능 관리를 위해 Jira의 데이터 아키텍쳐에 의존하지 않기 때문이다. 과거 테스트 데이터 이력을 유지 및 보관할 수 있는 도구를 선택하도록 한다. 그러면 애플리케이션의 성능에 영향을 미치지 않으면서, 해당 데이터에 대한 액세스를 활성화 상태로 유지하지 않아도, 과거 테스트 실행과 결과를 참조할 수 있다.

그림: TestRail을 사용하면 과거 테스트 실행과 결과에 액세스하고 검토할 수 있다. 해당 데이터에 대한 액세스를 활성화 상태로 유지할 필요도 없다. 이 기능을 통해 과거 정보를 참조해도 애플리케이션의 성능에 영향을 주지 않는다.

5.테스트 커버리지 증가

테스트 커버리지는 QA 팀의 핵심적인 지표다. 그래서 이 테스트 수행 프로그램이 애플리케이션의 모든 기능을 커버하고 있는지 보장한다. 테스트 관리 도구는 요구 사항 커버리지 시각화를 신속하게 처리한다. 예를 들어, TestRail을 사용하면, 요구 사항, 테스트, 결함에 대한 커버리지 리포트를 버튼 클릭 한 번에 받을 수 있다.

TestRail과 같은 테스트 관리 도구를 통해, 프로젝트 수명 주기 전반에 걸쳐 커버리지를 쉽게 모니터링할 수 있다. 또 더 많은 테스트를 도입해야 하는 영역을 파악하여, 보다 자신감 있게 고품질의 제품을 출시하기 위한 조치를 취할 수 있다.

그림: TestRail의 Jira통합을 사용하면, 테스트 케이스를 사용자 스토리, 에픽, 또는 기타 다른 종류의 Jira 이슈에 연결하여, 정확히 어떤 요구 사항에 대해 테스트하고 있는지 파악할 수 있다.

6.테스트 수명 주기에 대한 가시성 향상

추적 능력은 조직의 서비스 또는 제품의 품질과 안정성을 향상시킨다. 요구 사항/사용자 스토리와 같은 다양한 아티팩트를 해당 테스트 케이스, 테스트 실행, 테스트 실행 결과(발견 시, 결함 상세 정보 포함)에 연결함으로써 그렇게 할 수 있다.

테스트 관리 도구는 테스트 케이스와 버그의 과거 이력을 확인하고 유지 관리할 수 있다. 그러므로 테스트한 항목과 앞으로 테스트해야 할 항목을 정확히 기록할 수 있다. 훌륭한 테스트 관리 도구는 QA팀에게 각 테스트와 요구 사항 페어링의 로직에 대한 향상된 인사이트를 제공한다. 그리하여 개발 팀과 엔지니어링 팀이 테스트 수행 기간 동안 발견한 이슈를 더 쉽게 파악할 수 있도록 한다.

7.명료성 향상

많은 팀에는 다수의 이해관계자들이 있다. 그들은 테스트 수행 진행 상황에 대해 이해하고자 한다. 물론 QA 팀 또한 그들의 진행 상황을 추적해야 한다. 테스트 커버리지, 테스트 완료 상태, 테스트 안정성과 같은 QA 지표를, 예정된 리포트를 통해 쉽게 또는 자동으로 전달할 수 있어야 한다.

Jira와 통합이 되었든, 또는 외부 테스트 관리 플랫폼과 동기화가 되었든, 상관없이 애드온은 이해관계자 및 전체 조직에게 명료한 데이터를 제공해야 한다. 그리하여 완벽한 시야를 보장해야 한다.

중요한 것은 팀의 요구에 맞는 올바른 도구를 선택하는 것이다. 팀의 필요 사항과 시중에 나와 있는 도구를 비교하는 데 시간을 들여야 한다. 그러면 원활하고 효율적으로 테스트를 관리할 수 있게 된다.

효율적인 테스트 수행 절차를 빌드하고, 커버리지를 추적하고, 포괄적인 추적 능력을 구축하는 방법에 대해 더 자세히 알아보려면, TestRail 아카데미에서 TestRail 및 Jira에 대한 과정을 확인해 보자.

(원문: Hannah Son | December 23th, 2023 | Jira for Test Management: Options, Challenges, and Solutions)

다른 기고들

소프트웨어 개발사 ELEKS는 어떻게 가시성과 생산성을 높였을까: Jira와 TestRail을 통합한 사례 연구

게스트의 글입니다. (작성자: Ostap Elyashevskyy) QA 절차를 처음부터 구축하거나 기존 QA 절차를 개선하는 경우, 올바른 테스트 관리 도구 선택은 매우 중요하다. 그것은 여러분이 버그를 찾고, 테스트 케이스를 관리하는 것을 도와준다. 또한 궁극적으로는, 소프트웨어 개발 절차를 잘 다듬을 수 있도록 돕는다. 이 글에서 나는 ELEKS의 우리 팀에게 효과적인 테스트 관리 솔루션을 찾은 경험을 공유하고자 한다. 그리고 그 과정에서 평가한 다른 몇 가지 대안들...

애자일 테스트 수행에서의 수락 기준들 (Acceptance Criteria in Agile Testing)

애자일이라는 직조물(tapestry)에서, 수락 기준은 황금색 실과 같다. 이것은 사용자 스토리를 최종 형태로 연결한다. 이 기준은 테스터가 테스트 수행 전략을 수립하는데 도움이 된다. 그리고 기능 및 품질 보증을 검증하는 데에도 중요한 임계 값 역할을 한다. 수락 기준은 제공된 제품이 고객의 기대에 부합할 것이라고 약속한다. 고객에게 필요한 사항을 정확히 정의하여, 발생 가능한 오해를 줄이고, 더욱 명료하게 한다. 이렇게 고객의 기대치에 맞춰 조율하는 것은 고객 만족으로...

테스트 자동화 리포트 방법(도구+지표)

테스트를 자동화하면, 반복적인 작업이 간소화되고, 테스트 수행 절차가 가속화된다. 또 소프트웨어 테스트 수행의 결과가 일관되고 신뢰성을 가지도록 한다. 테스트 자동화 리포트는 테스트 결과에 대한 실행 가능한 인사이트(actionable insight)와 가시성을 제공한다. 그로 인해 팀은 정보에 근거한 의사 결정을 내릴 수 있고, 문제를 신속하게 파악할 수 있다. 또 전반적인 소프트웨어 품질을 효율적으로 향상시킬 수 있다. 테스트 자동화 리포트란 무엇인가? 테스트 자동화...