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

by | May 18, 2024

게스트의 글입니다. (작성자: Ostap Elyashevskyy)

QA 절차를 처음부터 구축하거나 기존 QA 절차를 개선하는 경우, 올바른 테스트 관리 도구 선택은 매우 중요하다. 그것은 여러분이 버그를 찾고, 테스트 케이스를 관리하는 것을 도와준다. 또한 궁극적으로는, 소프트웨어 개발 절차를 잘 다듬을 수 있도록 돕는다.

이 글에서 나는 ELEKS의 우리 팀에게 효과적인 테스트 관리 솔루션을 찾은 경험을 공유하고자 한다. 그리고 그 과정에서 평가한 다른 몇 가지 대안들 드리고, 최종적으로 TestRail을 선택하게 된 이유도 함께 공유한다.

테스트 관리에서 겪는 흔한 어려움(Common Test Management Challenges)

몇 가지 가장 흔한 어려움들을 여러분은 소프트웨어 개발 프로젝트를 시작할 때 경험하게 될 수 있다. 다음과 같다:

  1. 가시성이 없음 (Lack of visibility)
  2. 테스트 관리 도구가 없거나 그 프로젝트에 사용하기에 부족함
  3. 올바르지 않게 또는 비효율적으로 현재의 테스트 관리 도구를 사용함
  4. 테스트 케이스 품질이 나쁘고 관리하기 어려움
  5. Jira와 테스트 관리 도구 사이에 통합이 없음
  6. 요구 사항, Jira 아티팩트, 테스트 케이스 사이에 대한 추적 능력이 없음

가시성이 없음 (Lack of visibility)

테스트 수행 작업은 눈에 보이지 않기 쉽다. 테스터들은 모든 작업을 해내고 있음에도, 그 결과들은 그들의 머릿속이나 컴퓨터 안에만 있는 경우를 나는 많이 봐왔다. 이는 프로젝트에 도움이 되지 않는다. 테스트 수행은 어떠한 소프트웨어의 프로젝트에서든 매우 중요하다. 하지만 오직 테스트 결과들이 효과적이고 빠르게 소통되는 경우에만 그렇다.

QA는 테스트 실행만으로는 안 된다. 그에 못지 않게 중요한 것이 있다. 여러분의 팀에게 좋은 가시성(visibility)을 제공해야 한다. 좋은 리포트와 대시보드를 통해서 말이다. 가시성 확보(Ensuring visibility)의 의미는 다음과 같은 질문들에 대한 대답을 이해하고 있는 것이다. “누가 테스트를 수행하는가?”, “테스트 되는 기능은 무엇인가?”, “테스트의 범위는 무엇인가?”, “모든 테스트 수행 활동을 언제 완료할 것인가?” 등의 질문에 답할 수 있어야 한다.

테스트 관리 도구가 없거나 그 프로젝트에 사용하기에 부족함

종종, 올바른 테스트 관리 도구를 가지고 있지 않은 팀들은, 프로젝트를 전반에 걸쳐 그 사용성이 떨어진다. 많은 프로젝트에서는 테스트 케이스들과 체크리스트들에 대한 추적을 스프레드시트 안에서 하고 있다. 스프레드시트가 소규모 프로젝트에서는 선택할 만하다. 하지만, 다수의 엔지니어들이 참여하는 대규모 프로젝트에는 부적합하다. 스프레드시트를 사용하면, 테스트 데이터 업데이트와 테스트 데이터 관리가 시간을 많이 잡아먹고 실수를 일으키는 악몽이 되는 경우가 종종 있다.

올바르지 않게 또는 비효율적으로 현재의 테스트 관리 도구를 사용함

여러분이 선택한 테스트 관리 도구가 만약 조직과 그리고 조직의 업무 방식에 맞지 않는다면 시간과 비용이 낭비될 위험이 매우 크다. 테스트 관리 도구의 모든 기능이 사용되고 있지 않는 경우라면, 그 업무에 맞지 않는 도구일 가능성이 크다. 그 틀린 도구는 그저 테스트 케이스 저장소 정도로 사용되고 있을 수 있다. 아니면 회사에서 사용되지 못하고 방치된 소프트웨어 더미 안에 버려져 있을 것이다.

테스트 케이스 품질이 나쁘고 관리하기 어려움

팀이 종종 당면하는 테스트 케이스와 관련된 두 가지 문제가 있다. 첫째, 충분한 문맥(contextual ) 정보가 들어 있지 않다. 둘째, 재사용 하기 어려운 방식으로 작성되어 있다.

예를 들어, 테스트 케이스는 있지만, 그 안에는 우선순위, 버전, 구성, 요구 사항에 대한 참조 , 기타 중요한 정보 등에 대한 정보가 없을 수 있다. 그러면 어려워진다. 즉, 올바른 테스트들을 우선순위에 두기, 정확하게 테스트하기. 테스트 수행 결과들을 리포트 해서 나머지 팀원들에게 의미 있는 방식으로 전달하기가 어렵다.

Jira와 테스트 관리 도구 사이에 통합이 없음

여러분의 테스트 관리 도구가 여러분의 기존 도구 스택과 통합되는지 확인하자. 특히, (Jira와 같은) 버그 또는 이슈 트래킹 소프트웨어와 통합이 되는지 봐야 한다. 이렇게 통합하면 장점이 있다. 즉, 사용자가 손쉽게 버그를 테스트 케이스 실행에 연결할 수 있다. 그리고 수준 높은 추적 능력(traceability )의 혜택을 누릴 수 있다. 적절한 통합이 없다면, 테스트 케이스들이 기능의 범위 안에서 실행되지 못할 수 있다.

요구 사항, Jira 아티팩트, 테스트 케이스 사이에 대한 추적 능력이 없음

추적 능력(traceability )의 목표는 여러분이 테스트 수행 활동(결함 관리 포함)들을 계획하고 관리해 위험을 최소화할 수 있도록 돕는다. 추적 능력(traceability )이 없으면 소프트웨어 개발 수명 주기(SDLC) 전반에 걸쳐 문제가 발생할 수 있다. 예를 들어, 추적 능력이 없으면, 변경 사항의 영향(impact)을 파악하기가 어렵다. 그 결과 일관성이 무너진다. 이는 테스트 진행 차질과 리소스 고갈로 이어질 수 있다.

테스트 관리 도구를 선택하기

테스트 관리 도구를 구축했다고 해서, 추적 능력(traceability), 가시성(visibility), 문서화(documentation ) 문제가 자동으로 해결되는 것은 아니다. 이는 이미 내가 경험했던 바다. 테스트 관리 도구로 스프레드시트를 사용했을 때 그리고 (TestRail로 전환하기 전) TestLink를 사용했을 때였다.

TestLink의 한계

자세히 적어 보겠다. TestLink는 무료 오픈 소스 테스트 관리 도구다. 그것은 다른 테스트 관리 시스템에 비해 기능 상의 장점이 없다. TestLink는 사용성이 부족하다. 또한 Jira 통합은 단방향(one-directional)이다. TestLink와 Jira 통합을 통해 여러분이 할 수 있는 것은 그저 다음과 같다:

  • Jira 이슈를 테스트 케이스에 연결하기
  • 테스트 케이스가 실패하는 경우 이슈 생성하기

여러분이 경험할 수 있는 TestLink의다른 한계들은 다음과 같다:

  • 사용성이 좋지 않음
  • 오래된 UI/UX
  • 적응하는 시간이 더 오래 걸림.
  • 테스트 상태와 통계를 보여주는 동적이고 시각적인 대시보드가 없음
  • 추가 필드와 추가 상태를 커스터마이징 하기 어려움.

Zephyr vs. TestRail

팀의 요구에 적합한 가장 사용자 친화적이며 강력한 도구를 가지고 일하고 싶다면, 여러분이 검토 중인 도구들의 무료 평가판을 설치해서 써 볼 것을 추천한다.

개인적으로, 나는 Zephyr와 TestRail을 모두 깊이 있게 사용해 봤다. 그리고 TestRail을 우리의 테스트 관리 도구로 선택했다. 장단점을 더 잘 보여주기 위해, 내 경험을 요약해 표를 만들었다. 이 표가 여러분의 팀에 가장 적합한 도구를 선택하는데 도움이 되기 바란다.

TestRail vs. Zephyr vs. TestLink 비교 표

Zephyr의 장점:

  • 다양한 Jira 이슈 유형(스토리, 버그, 테스트 케이스) 간의 추적능력이 우수하다.
  • Jira 안에 내장된 앱이기 때문에, 테스트 케이스를 Jira 이슈로 생성할 수 있다.
  • 훌륭한 리포트와 커스터마이징 옵션

Zephyr의 단점:

  • Jira 인스턴스 안에 있는 각 사용자 마다 비용을 지불해야 한다. (심지어, Zephyr를 사용하지 않는 경우도 포함)
  • 성능 이슈(UI 및 API 수준 모두): 이것은 Jira 인스턴스 안에 있는 모든 사용자에게 영향을 미친다.
  • 단계 공유(shared steps) 기능이 모든 버전에서 지원되지는 않는다.

최종적으로, 사용 편의성이 떨어지고, 시각적 대시보드가 없으며, 가격 모델이 우리의 니즈에 맞지 않아서, Zephyr는 우리 팀에 적합하지 않았다.

우리가 TestRail을 선택한 이유

우리는 TestRail을 테스트 관리 솔루션으로 선택했다. 다음과 같은 이점들 때문이다:

  • Jira와 양방향(Two-way) 통합
  • 향상된 가시성(visibility)
    • 동일한 테스트 단계들의 세트를 여러 테스트 케이스들에 걸쳐 공유할 수 있는 능력
    • 소프트웨어 테스트 리포트들에서 조치를 취할 수 있음
  • TestRail의 사용성 그리고 직관적인 사용자 인터페이스
    • 유연한 사용자 정의 필드를 테스트 케이스들과 결과들에 적용
    • 테스트 실행(test run)들을 할당할 수 있는 능력
    • 테스트 케이스 템플릿들 그리고 테스트 계획 기능들

TestRail과 Jira 통합

TestRail과 Jira 통합 방식은 여러 가지다. 여러분은 손쉽게 버그 리포트를 Jira로 밀어 넣기, 이슈 상세 사항을 검토하기, “New Issue” 양식으로 바로 이동하기 등등을 할 수 있다. 게다가 팀은, TestRail의 Jira용 결함(defect) 플러그인을 확장할 수 있다. 따라서, 필요한 경우, 이를 통해 이 통합을 Jira 사용자 정의에 맞게 적용할 수 있다.

TestRail용 Jira 통합은 다른 테스트 관리 도구들에 비해 가시성과 추적성이 더 좋다.

또한, 여러분이 쉽게 다음과 같은 질문에 답할 수 있도록 해준다:

  • 무슨 기능이 작동하지 않고 있는가? 왜 그런가?
  • 우리는 이 기능에 대한 테스트 케이스들을 가지고 있는가?
  • 이 테스트들은 왜 실패했는가?
  • 릴리스/마일스톤 테스트 수행의 진행 상황은 어떤가?

TestRail은 Jira와 양방향 통합을 지원한다. 따라서 여러분은 다음과 같은 것들을 할 수 있다:

  1. 테스트 케이스들과 테스트 결과들을 Jira에 연결하기
  2. 테스트 관리 도구 안에서 Jira 이슈를 생성하기 (해당 이슈 템플릿을 커스터마이즈 할 수도 있다.)
  3. Jira 이슈에서 직접적으로 테스트 결과들과 테스트 케이스들을 확인하기
  4. 추적성 리포트(traceability report)들을 구축해 그 안에 테스트 케이스, 테스트 결과, 참조되는 Jira 항목들에 대한 정보를 포함하기
  5. TestRail에서 Jira 이슈 미리 보기

TestRail을 Jira와 통합하는 방법

TestRail에 대한 Jira 테스트 관리 통합은 다음과 같이 두 단계로 구성된다:

  1. TestRail 안에서 통합 설정하기
  2. TestRail Jira 애드-온을 여러분의 Jira 인스턴스에 추가하기

또한 TestRail은 Jira 클라우드, 서버, 데이터 센터와 통합이 된다. TestRail의 Jira 통합 도움말 문서는 각 플랫폼 별로 다음과 같다:

가시성(visibility)을 향상시켜 주는 주요 기능들을 확인해 보자:

1. TestRail 안에서 테스트 케이스에 “reference(s)”를 추가하기

아래 그림을 보면, 테스트 케이스들이 Jira 서브 태스크와 연결되어 있다. (내 경우에는) 테스트 설계 활동을 추적하기 위해 만들었다.

만약 여러분이 Jira 안에서 ID가 DESK-10(나의 경우)인 “QA- Test Design” 서브 태스크를 여는 경우, “TestRail: Cases” 섹션으로 가면, 그 태스크에 연관된 테스트 케이스들을 볼 수 있다:

2.TestRail 안에서 테스트 실행에 Jira reference(s) 추가하기

여러분이 Jira 안에서 서브 태스크 또는 또다른 이슈 유형 하나를 생성해(예:”QA-Testing Feature”), 몇 가지 테스트들을 실행하기 위한 목적으로 사용하려고 한다면, 여러분은 테스트 실행(test run) 하나를 TestRail 안에서 생성하고 이를 Jira 이슈(서브 태스크)와 연결하면 된다.

이제 이 서브 태스크를 Jira 안에서 열면, 그 테스트 실행(test run) 결과가 Jira 이슈 안에서 표시된다. 그래서 TestRail을 열지 않아도 볼 수 있다. (하지만, 그 테스트 결과들을 여러분은 TestRail 안에서도 확인할 수 있다.)

3.API 통합하기

  • TestRail 안에 있는 테스트 상태들에 대한 자동 업데이트가, 자동화된 테스트 실행 중에 수행될 수 있도록 해 놓으면, 여러분의 시간을 절약할 수 있다. 또한 여러분의 테스트 자동화에 대한 가시성을 향상시킬 수 있다.
  • 만약 여러분이 Jira 안에서 자동화 테스트 결과들을 검토하다가 버그를 발견한다면, 여러분은 TestRail을 이용해 그 버그를 Jira 안의 결함(defect)에 연결할 수 있다. 그러면, 추적 능력이 완전해진다 – 이와 같이 자동화된 테스트들까지도 커버할 수 있다.
  • TestRail API를 활성화하고 사용하기 전에 확인해야 할 것이 있다. 여러분의 테스트들이 안정적인지 그리고 그 결과들이 여러분의 애플리케이션에 대한 실제 상태를 반영하고 있어서 그 결과를 신뢰할 수 있는지 살펴봐야 한다.

ELEKS에서 우리는 Python API를 사용한다. 그리고 우리의 테스트 자동화 엔지니어인 Maksym은 TestRail API에 대한 래퍼(wrapper)를 구현하고 거기에 기능을 더 추가했다. 따라서, 만약 여러분이 Python 클라이언트를 사용한다면, 오리지널 Python API 바인딩 또는 Maksym의 API 바인딩을 찾아서 참고할 수 있다.

  • API 바인딩 가져오기 및 구성하기: URL, API 키, 기타 정보를 제공해야 한다. API 도움말 문서에 필요한 것들이 적혀있다.

기타 유용한 TestRail 기능들

우리가 테스트 관리를 하면서 찾아낸 TestRail 기능들은 더 많다.

공유되는 단계들:

Shared Steps를 사용하면, 공통 단계들을 여러 테스트 케이스들에 걸쳐 재사용할 수 있다. 또한 테스트 케이스들의 유지 관리성을 향상시킬 수 있다 (물론 시간 절약 효과는 더 말할 필요도 없다!).

재사용을 실현하려면, 공유 단계들(shared steps)을 “importing”하면 된다. 신경 써야 할 사항이 있다. 공유 단계들에 이름을 붙일 때는 명명 규칙 신중하게 고려해야 한다. 공유 단계들은 쉽게 수백 개가 넘을 수 있기 때문이다. 공유 단계에 대한 이름 지정 패턴을 정해 놓으면(예: <기능 또는 페이지>-<단계 설명>), 여러분이 단계들응 탐색하고 가져오기가 쉬워진다.

만약, 변경이 필요하다면, 여러분은 한 곳에서만 업데이트하면 된다. 그러면 다른 테스트 케이스들에도 그 변경 사항이 반영된다.

대시보드(Dashboard)들과 와 리포트(Report)들:

TestRail의 대시보드(Dashboard)들과 차트(Chart)들은 테스트 수행의 현재 상태를 보여준다. 여러분은 이것들을 관련 회의에서 공유할 수 있다. 또는 정기적으로 이해관계자들에게 보내서 테스트 수행 진척에 대해 빠르게 보도록 할 수 있다.

리포트들의 상세 정보 수준은 “Report” 섹션에서 구성하면 된다.

리포트들은 그 범위가 매우 포괄적이다. 그리고 미리 정의된 15가지 템플릿을 바탕으로 생성되는데, 그 분류 카테고리는 다음과 같다:: “Cases,” “Defects,” “Results,” “Summary,” “Users.” 여러분은 “Summary” 섹션에서 제공하는 템플릿을 사용해 종합 리포트를 생성할 수 있다. 이 리포트는 QA 엔지니어부터 프로젝트 매니저와 제품 유자에 이르기까지 모든 사람이 유용하게 활용할 수 있다.

테스트 실행을 품질 엔지니어에게 할당하고 현재 할당된 작업을 추적할 수 있는 능력:

여러분이 QA 리드라면, 이 기능을 사용해, 테스트 수행을 팀 전체에 분배하고 그 진척도(progress)를 추적할 수 있다.

맞춤 설정:

여러분은 테스트 케이스, 결과 상태(result status) 필드, 우선순위, 템플릿, 기타 필드들을 커스터마이징 할 수 있다. 우리의 경우에는, 추가로 결과 상태(result status)를 만들었다. 그래서 아래와 같이 테스트 실행(test run)에 대해 보다 자세한 정보를 제공하도록 했다.

  • Environment issue – 환경 또는 구성 문제
  • Changed requirements – 요구 사항의 변경으로 인한 실패
  • Known issue – 이미 알고 있는 이슈
  • Next release – 다음 출시 버전 릴리스로 옮겨져야 함
  • Skipped – 다른 이유로 인해 이 결과를 건너 뛰었음

Test case templates:

시간이 제한적일 때, 테스트 케이스 하나 안의 모든 단계들을 서술하는 것이 번거로울 수 있다. 시간 절약을 위해, 여러분은 테스트 케이스들을 위한 간소한 템플릿을 사용할 수 있다. 또는 탐색 세션에 여러분이 검증하고 싶은 기능을 서술할 수도 있다.

QA 절차를 개선하기 위한 추가 권장 사항:

  • 별도의 Jira 보드(예: 칸반 보드)를 생성하라. 그 대상이 실제 테스트 케이스 작성, 계획 또는 테스트 수행 이외의 일회성 QA 작업이라면 말이다. 그러면 작업의 진척도와 업무 부담에 대한 가시성이 높아진다.
  • Jira 대시보드의 지표들을 포착하고 모니터링하라:
    • 릴리스, 마일스톤 별로 오픈된 버그 수
    • 매우 중요한 그리고 작동을 방해하는 이슈들
    • 지난 주/지난 반복 동안 발견된 버그 수
    • 자동화를 통해 발견된 버그 수
    • 테스트 커버리지 (더 자세한 내용은 Traceability and Test Coverage in TestRail를 참조)

TestRail의 양방향 Jira 통합을 구현하면, 여러분은 실행 상태를 TestRail과 Jira 안에서 볼 수 있다. 또한 Jira 이슈를 미리 보기를 할 수 있다. 그 이슈가 TestRail의 결과 또는 테스트 케이스에 연결되어 있다면 말이다.

TestRail는 사용성이 좋고 사용자 인터페이스 가 직관적이다. 덕분에 쉽게 적응할 수 있다. 그리고 라이선스 모델에 유연하다. 그래서 사용하는 만큼 지불하면 된다. 이 방식은 우리에게 발 맞았다. 우리는 처음에 사용자 2명으로 시작했다. 그리고 확장해서 20명 이상이 시스템 안에서 사용하고 있다. 여기에는 개발자들도 포함되어 있다. 그들은 매일 TestRail을 사용한다. 그래서 이 정확한 단일 정보를 통해 테스트 케이스, 데이터, 결과, 전반적인 진척도등을 파악한다.

TestRail 덕분에, 우리는 테스트 절차를 잘 정비할 수 있었다. 또한 Jira와의 통합 활용, 가시성 및 사용성 향상 등을 실현할 수 있었다. 시켰다. 최종적으로, TestRail 즉 우리의 전용 테스트 관리 솔루션을 사용함으로써, QA 팀은 테스트 수행에 대한 가시성을 확보했다. 또한 QA를 더 효율적으로 확장하고 더 많은 테스트 수행을 할 수 있었다.

Ostap Elyashevskyy는 소프트웨어 테스트 및 개발 분야에서 14년 이상의 경력을 가지고 있다. ELEKS의 테스트 자동화 역량 관리자(Test Automation Competence Manager)로서, 그는 테스트 자동화 강좌를 진행하고, ELEKS의 전문가 네트워크를 키우고, 새 프로젝트들을 시작할 때 모범 사례를 따를 수 있도록 돕고 있다. 그는 직원이 회사의 가장 큰 자산이라고 믿는다. 그리고 사람들이 성장하도록 돕는 것은 언제나 ‘윈윈’ 전략이라고 믿고 있다.

(원문: Hannah Son | February 14th, 2023 | How Software Development Company ELEKS Increased Visibility and Productivity by Integrating Jira with TestRail)

다른 기고들

어느 문서 관리 회사가 테스트 수행을 능률화하고 효율성을 향상시킨 방법: TestRail과 Reflect를 활용

문서 관리 업계에서 선도적인 회사의 사례다. 이 회사는 클라우드 기반 문서 관리 플랫폼을 통해 디지털 콘텐츠 액세스 및 구성을 능률화하는 데 상당한 진전을 이루었다. 이 회사의 소프트웨어 제품군을 사용하면, 기업은 운영, 양식, 절차, 컨텐츠를 디지털화하고 효율적으로 관리할 수 있다. 25년 이상의 서비스 역사를 자랑하는 이 회사의 솔루션은 주요 주 정부 기관 및 지방 정부 기관 분야에서 광범위하게 활용되고 있다. 이렇게 수많은 기관의 디지털 전환을 밑받침하고 있다. 당면...

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

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

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

여러분의 팀이 소프트웨어 개발 관리를 위해 Jira를 사용하고 있다면, 테스트 수행 및 QA 절차를 Jira와 통합하는 것은 필수적이다. 일반적으로 두 가지 기본 선택권이 있다: Jira를 직접 활용하여 테스트 수행 작업을 모니터링한다. (주로 개발 이슈와 관련된 하위 작업 또는 사용자 정의 이슈 유형을 통해) Jira 기반 테스트 관리 애드-온을 사용한다. (무료일 수도, 유료일 수 있다.) 테스트 관리를 위해 Jira 사용하기 Jira는 애초에 소프트웨어 테스트 수행을...