공부일기/Machine-Learning

A/B 테스팅(A/B Test)

pipiiiiii 2024. 8. 6. 12:49

A/B 테스팅

웹 사이트 방문자를 임의로 두 집단으로 나누고, 한 집단에게는 기존 사이트를 보여주고 다른 집단에게는 새로운 사이트를 보여준 다음, 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 측정하여 새 사이트가 기존 사이트에 비해 좋은지를 정량적으로 평가하는 방식이다. 

이때 성과란 새 사이트가 목표로 했던 바에 따라 다르다. 

 

A/B 테스팅은 과학 혹은 의학에서 무작위 비교 연구라 불리는 방법을 인터넷 마케팅에 적용한 것이다. 

주로 웹사이트의 마케팅과 관련하여 많이 사용하지만, 웹사이트가 아닌 모바일 앱, 게임 등의 분야에서도 활용된다.  

 

A/B 테스팅을 하는 이유는 상관관계로부터 인과관계일 가능성이 높은 것을 찾아내가 위해서다. 그래야만 우리가 '원인'에 해당하는 요소에 개입을 하여 '결과'에 해당하는 요소가 우리가 원하는 방향으로 변화되도록 할 수 있기 때문이다. 혹은 이미 '결과'에 변화가 생겼을 때 이 변화의 '원인'이 우리가 했던 개입 대문이 맞는지 아닌지 판단할 수 있다. 

 

 

A/B 테스트와 유사한 개념들

비교 실험을 한다는 점에서 동일하지만 세부적으로는 차이점이 있는 유사 개념들이다. 

 

스플릿 테스트(Split Test)

완전히 다른 디자인에 대해 성과를 측정한다. 

특정 요소만을 변형한 A/B 테스트와는 다르게 전체적으로 다른 컨셉을 비교할 때 유용하다. 

 

다변량 테스트(Multivarate Test) 

A안, B안 두 가지가 아니라 C안, D안 등 다양한 요인에 대해 비교하는 방법이다. 

다변량 테스트의 경우, 실험의 대상이 되는 사용자 집단이 많기 때문에 많은 데이터가 필요하다. 그리고 한 번의 테스트 만으로는 어떤 이유로 좋은 성과가 나왔는지 파악하기 어려울 수 있어, 테스트를 반복 수행해야 하는 단점도 있다.  

 

 

A/B 테스트에서 사용자를 나누는 방법

총 3가지 방식이 있다.

  1. 노출 분산 방식
    • A/B 테스트가 진행되는 페이지가 랜더링 될 때, 특정 비율로 A와 B를 다르게 노출시키는 방법이다. 
    • 특정 Heavy User가 많은 Action을 보여주더라도 노출 빈도에 따라 양쪽에 모두 포함시킬 수 있기 때문에 상대적으로 통계정 유의성이 높다. 
    • 동일한 사용자더라도 매번 UI/UX가 다르게 나올 수 있어 사용자들에게 혼란을 줄 수 있고, 결괏값에 bias(편)을 만들 수 있다. 
    • 알고리즘 테스트에 적합하다. 
  2. 사용자 분산 방식
    • 특정한 사용자를 A그룹과 B그룹으로 분리하여, 고정적으로 다른 Vasriation(변이)을 노출시키는 방법이다.  
    • 노출 분산 방식보 사용자 별로 고정 UI/UX가 나오기 때문에 UI/UX 테스트에 적합하지만 특정 Heavy User에 따라 결괏값이 왜곡될 수 있다는 특징이 있다.
    • UI/UX 테스트에 적합하다.  
  3. 시간 분할 방식  
    • 초에서 분단위 정도로 시간대를 세밀하게 분할하여 A안과 B안을 노출시키는 방법이다. 
    • 보안/설계 상의 문제로 분산 방식의 사용이 어려울 때 상대적으로 쉽게 활용할 수 있다는 특징이 있다.
    • 노출/사용자 분산 방식을 사용할 수 없는 경우 대안적으로 활용한다. 

 

 

A/B 테스트 진행 방법

크게 다섯 단계로 나누어 진행할 수 있다.

  • 리서치
    A/B 테스트를 진행하기 전 현재 웹사이트의 성과를 측정해야 한다. 
    데이터를 살펴보면서 고객들이 방문하지 않는 페이지, 이탈률이 높은 페이지 등을 찾을 때 발생하는 문제점을 고객 인터뷰를 통해 확인할 수 있다. 반대로 고객 인터뷰를 먼저 진행해 발견한 문제점을 데이터로 확인할 수도 있다. 

  • 가설 수립 
    리서치 과정을 바탕으로 우리가 직면한 문제점에 대한 가설을 세울 수 있다. 

  • A안과 B안 생성
    가설을 기반으로 기존 요소가 담긴 A안과 특정 요소를 변형한 B안을 생성한다. 
    이때, A안을 보는 집단은 대조군, B안을 보는 집단은 실험군이 된다. 

  • 테스트 진행
    테스트를 진행할 때 주의할 점은 테스트 기간과 표본 크기다. 

    먼저 A안과 B안의 테스트는 동시에, 동일한 기간 동안 진행되어야 한다. 변형한 요소 외에 실험에 영향을 줄 수 있는 다른 변수를 최대한 통제하기 위해서다. 

    표본 크기가 중요한 이유는 '통계적 유의성'때문이다. 통계적 유의성을 판단할 수 있는 충분한 데이터가 모이기 전에 테스트를 종료하면 잘못된 해석으로 이어질 수 있다. 

  • 분석 및 의사결정
    테스트가 종료되면 결과를 분석하고 의사결정을 해야 한다.

    목표했던 지표에 대해 신규 안이 기존안보다 높게 나왔다면 신규 안을 배포하면 된다.
    단순히 배포만 하고 끝내기보다 신규 안에서 더 좋은 성과가 나온 이유가 무엇인지 정리하는 것을 추천한다. 

    반대로 통계적으로 유의미한 결과를 얻지 못한 경우 기존 안을 그대로 운영하면 된다. 이때 실험에서 얻은 인사이트를 정리하고 새로운 테스트를 계획해 볼 수 있다. 

 

 

A/B 테스트 평가 방법

가장 많이 활용되는 방식은 AA Test와 P-Value 분석이다. 

 

AA Test

A/B 테스트를 수행하기 전에 분산된 트래픽에 대해 동일한 Vasriation(변이)을 동시에 보여주고 차이가 있는지 없는지를 확인한 후 차이가 없다면 A/B 테스트를 진행해서 차이가 발생하는지를 확인하는 방법이다. 

 

일부 실험 대상군에 심각한 편중이나 왜곡이 있을 경우 AA Test에서 같은 Vasriation(변이) 임에도 불구하고 결괏값이 차이가 나면 A/B 테스트를 수행할 수 없다. 편중이나 왜곡을 해결한 후 A/B 테스트를 진행해야 한다. 

 

P-Value 분석

통계 분석에서 가장 널리 활용되는 유의성 검증 방식이다. 

A/B 테스트라는 분석 자체도 모집단(전체 기간에 대한 이상적 실제값)을 샘플(A/B 테스트가 진행되는 특정 기간)의 값을 활용하여 추정한다고 했을 때, 샘플의 수가 너무 적으면 P-Value 값이 높아질 수 있다. 

 

P-Value 계산은 대부분의 AB Testing Tool에서 자체적으로 해주는 경우도 많고, 계산 자체가 어려운 것은 아니기 때문에 웹에서 바로 계산을 해주는 calculator(계산기)들도 많이 있다. 

 

그리고 결과의 P-Value가 높다면 A/B 테스트 기간을 늘리는 것이 가장 일반적인 해결책이다. 

 

 

A/B 테스트 유의 사항

A/B 테스트를 수행할 때 주로 하는 실수는 아래와 같다.  

 

1. 무가설

테스트를 통해 검증하고 싶은 가설이 무엇인지 정의하지 않는다면 실험에서 얻을 수 있는 결과는 거의 없다. 

 

2. 통제 변수 관리 실패

실패하는 가장 큰 원인은 통제 변수를 식별하지 못했거나, 통제 변수를 잘 관리하지 못하는 것이다.

가설에서 정의한 독립 변수 외에 다른 변수가 종속 변수에 영향을 미쳤다면 그 결과를 성장의 밑거름으로 활용할 수 없다. 

 

3. 단순 평균 비교

종속 변수의 변화를 단순 평균 비교하면 우연에 의한 결과와 실제 효과를 혼동할 수 있다. 평균 비교 외에도 분포, 유의 수준 등을 종합적으로 고려해서 결과를 해석해야 한다.   

 

4. 시간 흐름 무시

시간의 흐름에 따라 종속 변수가 어떻게 변화했는지를 보는 것도 중요하다.

실제로 실험 초반에는 조건별 차이가 나타났다가 후반에는 차이가 사라지는 경우 또는 그 반대의 상황이 종종 나타나기 때문이다.  

 

5. 엿보기와 조기 중지

실험 중 계속해서 P-Value의 변화를 살펴보다가 0.05 이하로 내려가는 시점에 갑자기 실험을 중단하는 경우를 말한다. 

통계적으로는 유의미한 차이가 있는 것으로 보이지만, 사실은 실험자가 인위적으로 만들어낸 결과이므로 서비스의 성장에 크게 도움이 되지 않는다.   

 

6. 과거에 대한 맹신

A/B 테스트에서 유의미한 결과가 나왔다고 해서 그것이 계속 유의미하다고 보장할 수는 없다. 

시장 변화, 계절 변화, 유저 변화 등 다양한 요인에 의해 얼마든지 달리질 수 있다. 

 

 

 

A/B 테스트 주의 사항 

1. 테스트 시작 전 분석 대상 페이지에 방문자가 충분히 유입되는지 검토해야 한다. 

A/B 테스트를 실시하기 위해서는 '충분한 샘플 크기'가 확보된 사이트를 요구한다. 

샘플 크기는 테스트 대상 페이지의 방문자수를 나타내는데, A/B 테스트 결과는 기본적으로 통계적 의미가 있는 차가 생겨야지만 '신뢰'할 수 있게 되므로 매우 중요하다. 

 

그럼 어느 정도의 방문자 수가 필요할까?

A/B테스트 툴로 유명한 옵티마이즐리에서 샘플 사이즈 계산기를 제공한다. 누구나 쉽게 테스트 시작 전 어느 정도의 샘플 크기가 필요한지 파악할 수 있다.  

 

2. 웹 페이지의 개선 사항을 발견한 후 우선순위를 결정한다. 

먼저, 어떤 웹 페이지를 테스트할 것인가 정하기 위해 '웹 사이트'의 전반적인 문제점을 살펴본다. 

웹 사이트 중 어떤 페이지가 병목 페이지인지 파악하기 위해서는 웹 페이지 별 이탈률을 살펴보거나 전환율이 어떻게 달라지는지를 정리하는 것이 좋다.

 

웹 페이지의 상세한 문제점은 뷰저블의 히트맵을 활용하여 파악할 수 있다. 

 

3. 외부 요인에 좌우되지 않도록 테스트를 설계하고 실시해야 한다.    

A/B 테스트를 실시할 때는 테스트를 실시할 '패턴' 외에는 모두 같은 조건이어야 한다. 또한, '유입 사용자의 속성'을 동일하게 맞춰야 한다.

 

4. 어떤 페이지를 실시해야 할지 모르겠다면 랜딩 페이지를 먼저 진행해 본다.   

랜딩페이지는 '전환율 증가를 위해 특별히 설계된 페이지(보통 한 페이지)' 등을 가리키는 협의의 의미를 나타낸다. 광의의 의미로는 '단순히 사용자가 가장 먼저 사이트에 도착하여 보는 페이지'가 될 수 있다. 

 

왜 랜딩페이지를 추천할까?

보통 랜딩페이지에는 전환과 직결되는 매우 중요한 CTA 버튼이 배치되어 있을 확률이 높다. 또한 보통 사용자가 가장 많이 보는 페이지 중 하나이기 때문에 테스트를 통해 페이지를 개선한다면 성과 또한 가장 빨리 도출할 수 있을 것이다.     

 

5. 결과가 나쁘다고 해서 테스트를 중단해서는 안된다. 교훈을 얻어 다음 테스트를 준비해야 한다. 

A/B 테스트는 한번 실시하고 끝내지 않고 반복적인 사이클을 돌려 점진적으로 서비스를 개선해 나갈 수 있어야 한다. 테스트 결과가 나쁘다고 해서 그것으로 끝내서는 안 되며 왜 결과 나빠졌는지 교훈을 얻어 다음 테스트를 준비할 수 있도록 해야 한다. 

 

A/B 테스트 결과는 신뢰도가 95%를 넘지 않을 경우 섣불리 판단해서는 안된다. 이러한 신뢰도는 보통 A/B 테스트 툴에서 테스트 결과와 함께 제공하고 있으며 별도의 계산기로도 측정해 볼 수 있다. 

VWO라는 업체에서는 엑셀 시트로 이러한 계산기를 누구나 다운로드할 수 있게 제공하고 있다. 

 

6. A/B 테스트가 브랜드 가치를 훼손해서는 안된다.  

A/B 테스트에도 무수한 트렌드가 있다. 하지만 이러한 트렌드를 그대로 받아들이고 자사 서비스에 반영하면 브랜드 이미지나 가치가 훼손되어 버린다. 

 

전환율을 개선하고자 하는 의지는 좋지만 잃어버린 브랜드 가치는 다시 되돌리기까지 많은 노력이 필요하다. 그러니 '왜 이렇게 표현해야만 클릭수가 올라가는가'의 '왜'에 포인트를 맞춰 자사에 어떻게 내재화할 수 있는지를 검토해야 한다. 

 

7. A/B 테스트는 수단이지 목적이 되어버려서는 안 된다.  

A/B 테스트는 다양한 산출물을 비교 및 검증하여 최선의 디자인 안을 선택해 나가는 과정이다. 하지만 수치에 휘둘리는 순간 다른 한 면은 잃어버리는 수도 있다. 

 

테스트 결과와 수치에만 휘둘려 더 큰 것을 잃어버리지 않도록 조직은 끊임없이 토론해야 하며, 항상 비판하는 자세로 결과에 대해 냉철하게 판단해야 한다.  

 

 

A/B 테스트 코드 공부

https://github.com/DIB-PP/Machine-Learning

 

GitHub - DIB-PP/Machine-Learning

Contribute to DIB-PP/Machine-Learning development by creating an account on GitHub.

github.com

 

 

 

 

 

 

 

참고 자료