# A/B 테스트의 상태

A/B 테스트의 상태는 여러 가지가 있습니다.\
이 문서에서는 어떤 상태가 있는지 알아보고 대시보드에서 A/B 테스트를 시작, 일시정지, 종료, 보관처리하는 방법을 확인할 수 있습니다.

## A/B 테스트 상태의 종류

아래의 다이어그램을 통해 환경 별 A/B 테스트 상태를 한 눈에 파악할 수 있습니다.\
상태의 시작은 **A/B 테스트 생성**으로, 하나의 A/B 테스트를 생성하면 운영 환경과 개발 환경 모두 사용 가능합니다.

![환경 별 A/B 테스트 상태](/files/lx6EeykMYe7PTnY27GOY)

### 운영 환경

* **`준비`** - **`진행 중`** - **`일시정지`** - **`종료`** - **`보관`** 등 다섯 가지 상태를 제공합니다.
* 상태 변경이 가능합니다.
* **`종료`** 혹은 **`보관`** 상태로 변경할 경우, 개발 환경의 상태도 함께 변경됩니다.
* 테스트의 새 버전을 만들면 자동으로 준비 상태로 변경됩니다. 준비, 보관 상태일때는 새 버전을 만들 수 없습니다.

### 개발 환경

* **`준비`** - **`진행 중`** - **`일시정지`** - **`종료`** - **`보관`** 등 다섯 가지 상태를 제공합니다.
* 준비 -> 진행중 <-> 일시 정지로 상태 변경을 할 수 있지만, 종료와 보관은 운영 환경의 상태를 따릅니다. 즉, 운영 환경에서 종료 상태가 되면 개발 환경 또한 종료 상태가 됩니다.
* 테스트의 새 버전을 만들면 자동으로 준비 상태로 변경됩니다. 준비, 보관 상태일때는 새 버전을 만들 수 없습니다.

{% hint style="info" %}
여러 환경에서 테스트 진행하기

개발 환경과 운영 환경에서 동시에 A/B 테스트를 진행할 수 있습니다. 둘 중 하나의 환경에서만 A/B 테스트를 진행하는 것 또한 가능합니다.\
다만 운영 환경에서 A/B 테스트를 종료할 경우 개발 환경에서도 역시 종료 상태가 되는 점을 기억하세요.
{% endhint %}

## A/B 테스트 상태 변경하기

대시보드에서 A/B 테스트의 상태를 변경하는 방법을 다룹니다.\
종료, 보관 상태 변경은 **`운영 환경`**&#xC5D0;서만 가능합니다.

### A/B 테스트 시작하기

준비 상태인 A/B 테스트의 상세 페이지 우측 상단에 위치한 **`시작하기`** 버튼을 클릭하여 시작할 수 있습니다. 이후 노출되는 팝업창에서 트래픽 할당 수준을 설정하고 **`시작하기`** 버튼을 다시 한번 클릭하면 트래픽 할당 수준에 따라 사용자들이 A/B 테스트에 노출됩니다.

![](/files/8NckB9Tl6VT8oDJ1LgWC)

### A/B 테스트 일시정지

진행 중인 A/B 테스트의 상세 페이지 우측 상단에 위치한 **`일시정지`** 버튼을 클릭합니다. 일시정지된 A/B 테스트의 모든 사용자에게는 그룹 A에 해당하는 상태(화면, 기능, 로직 등)가 노출됩니다.

A/B 테스트 진행 중 장애 상황이 발생하거나 A/B 테스트로 인한 사이드 이펙트가 의심될 때 원인 파악을 위해 일시정지 상태로 전환하는 방안을 고려할 수 있습니다. 재개를 원할 때에는 다시 **`시작하기`** 버튼을 클릭합니다.

![](/files/RdCau67lX8Fh0vw82z58)

### A/B 테스트 종료하기

진행 중이거나 일시정지 상태인 A/B 테스트의 상세 페이지 우측 상단에 위치한 **`테스트 종료`** 버튼을 클릭합니다. 이후 노출되는 팝업창에서 어떤 테스트 그룹으로 A/B 테스트를 종료할지 선택하고, **`테스트 종료하기`** 버튼을 클릭합니다.

![](/files/CDcIm93HvePdKDERuBQB)

종료 처리 시 Winner 그룹을 선정하고 나면 테스트 그룹 분배 시 Winner 그룹으로만 분배됩니다.\
예를 들어 테스트 그룹 B로 Winner 그룹을 선정했다면 이후 모든 사용자가 테스트 그룹 B에 해당하는 로직을 만나게 됩니다.

{% hint style="danger" %}
종료 후 A/B 테스트와 관련된 코드를 제거하세요

A/B 테스트와 관련된 코드를 방치할 경우 **서비스 안정성이 떨어지는 문제**가 발생할 수 있습니다.

* A/B 테스트를 수행한 대상과 관련된 코드를 작성할 때 의존성(dependency)이 강해질 수 있습니다.
* 불필요한 서버 트래픽이 발생할 수 있습니다.

따라서 A/B 테스트 종료 후에는 반드시 관련된 코드를 정리해주시기 바랍니다.
{% endhint %}

### A/B 테스트 새 버전 만들기

A/B 테스트 키를 유지한채로 실험을 다시 시작하고 싶을때 새 버전을 만들어 활용할 수 있습니다.\
진행중/일시정지/종료 상태인 A/B 테스트의 상세 페이지 우측 상단에 위치한 **`새 버전 생성하기`** 버튼을 클릭하면 핵클이 현재 버전의 A/B 테스트 결과는 보존한채로, 새로운 버전을 만듭니다.\
새로 만들어진 버전은 준비 상태이며, 다시 진행중으로 변경한 시점부터 데이터를 새로 계산합니다.

![1514](/files/XzH7MjJZ297EFqKr1WAB)

### A/B 테스트 보관하기

더 이상 사용하지 않는 A/B 테스트는 보관 상태로 변경할 수 있습니다.\
종료 상태인 A/B 테스트의 상세 페이지 우측 상단에 위치한 **`테스트 보관처리`** 버튼을 클릭하면 핵클이 해당 A/B 테스트 결과를 보존하게 됩니다.

![](/files/wWb87hbRBiMkRbsBE41E)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/ab-test/status.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
