AB 테스트란?

  • 유래 : 신약을 테스트 할때 기준을 정하고(혈압, 혈당 등) 신약,구약 후보군을 둘로 나눠서 효능 테스트함. AB 후보군의 혈당, 혈압의 차이가 통계적 의미를 가지는 정도 인지를 본다. 이를 코드 개발에도 적용하게됨. A와 B 페이지를 동시에 구성해서 A페이지 B페이지의 고객 행동의 차이가 있는지 관찰가능.
    +가설 : 이 약을 먹으면 혈압이 증가할 것이다.
  • AB 테스트는 새로운 기능이나 변경이 생겼을때,  가설을 실험하고 검증할 때 쓰인다.
    예) 상품 추천 알고리즘을 머신러닝으로 하면 매출이 늘어날 것이다. -> AB 테스트 검증 -> 사실
    예) 상품 스텝을 줄이면 결제가 올라갈것이다. -> AB 테스트 검증 -> 비싼 상품은 신뢰도가 더 중요

AB테스트 장단점

  • 장점:
    1. 성능 최적화:
       - A/B 테스트를 통해 여러 버전을 동시에 평가하므로 어떤 기능 또는 디자인이 사용자에게 가장 긍정적인 영향을 미치는지 확인할 수 있습니다.
       - 이를 통해 성능을 최적화하고 사용자 만족도를 높일 수 있습니다.

    2. 데이터 기반 의사결정:
       - A/B 테스트는 데이터 기반의 의사결정을 가능하게 합니다. 통계적으로 유의미한 결과를 얻어, 개선 사항을 신뢰성 있게 판단할 수 있습니다.

    3. 배우기 쉬움:
       - A/B 테스트는 비교적 간단한 개념으로, 초기 단계에서 적용하기 쉽습니다.
       - 실험과 통계 분석에 대한 지식을 키우는 데 도움이 됩니다.

    4. 비즈니스 목표 달성:
       - 비즈니스 목표를 달성하기 위한 최적의 전략을 찾아내는 데 도움이 됩니다.
       - 기능이나 디자인 변경이 실제로 비즈니스 성과에 어떤 영향을 미치는지 확인할 수 있습니다.

    5. 위험부담 감소
        - 잘못돼도 절반의 위험

  • 단점:
    1. 시간과 비용 소모:
       - A/B 테스트를 실시하기 위해서는 시간과 자원이 소모됩니다. 두 가지 이상의 버전을 개발하고, 테스트를 실행하며, 결과를 분석하는 데에 시간과 비용이 듭니다. (airbnb의 경우 70% 데이터 사용)

    2. 리소스 낭비:
       - 실패한 변형에 할당된 리소스는 낭비될 수 있습니다. 실험 결과가 예상치 못하게 나오면 투자한 노력과 비용이 낭비될 수 있습니다.

    3. 테스트 설계의 어려움:
       - 적절한 실험 설계를 수립하는 것이 어려울 수 있습니다. 변수의 올바른 설정, 샘플 크기 결정 등이 중요하며, 실수할 경우 결과의 신뢰도가 감소할 수 있습니다.

    4. 유의미한 결과 부족:
       - 가끔은 테스트 결과가 유의미한 차이를 보이지 않을 수 있습니다. 이는 사용자 행동의 복잡성이나 다양성 때문일 수 있습니다.

AB테스트 사용하면 안되는 경우

  • 가설에 근거가 없거나 구체적이지 않은 아이디어
  • 버그 수정을 위한 AB 테스트(둘중에 더 좋은걸 판단하는게 AB테스트, 버그는 그냥 빨리 고쳐!)
  • 비교 대상이 하나가 아닌경우
  • 트래픽이 별로없는 서비스의 경우, 어짜피 분석해봤자 유의미한 결과가 나오기 힘들다.
  • 어떤 결정(가격)은 데이터로만 판단할수 없음 : 거시적 경제상황, 경쟁사의 가격정책도 고려
  • 분석에 필요한 데이터 품질이 낮은경우
  • 특정팀이나 개인의 의견만이 반영되는 환경
  • 리뷰 리딩하는 사람이 주니어라 No라는 말을 잘 못하는 경우 -> 시니어급으로 할것

AB테스트 실제 예 

  • 가격 인상 전에도 AB테스트를 해봄. 인상군 비인상군 비교-> 큰차이가 안남 ->  큰차이가 안나서 가격을 일괄올림 -> 판매량 급감

AB 테스트는 agile 해야함

  • 주요한 Agile 원칙은 "개발자와 비즈니스 담당자 간의 긴밀한 협력",
  • "작동하는 소프트웨어를 우선으로",
  • "변화에 대응하는 유연한 계획",
  • "자주 배포"

AB테스트 과정

  • 실행전 AB테스트 제안
  • 성공기준 정함
  • 실행중 AB테스트 결과 리뷰

AB테스트 실제과정

  1. 0~1% smoke test : B가 버그가 있는지 확인하는 정도
  2. 5~10% initial ramp : 가설 확인
  3. 25~50% intermediate ramp : 가설과 별도로 매출의 영향을 봄
  4. 100% Final ramp-up : 최종 판단 후 결정

AB 테스트 분석을 위해 필요한 정보

  1. 사용자별 AB 버킷 정보(사용자중 누가 A들어갔고, B에 들어갔는지)
  2. 사용자별 행동 정보(본거,클릭, 구매)
    -> 1,2 join 해서 그룹간 통계 정보 계산
  3.  

초록색 : 통계적으로 높다/ 빨간색 : 통계적으로 낮다.

AB테스트 시스템 구성

  • 작은 회사는 SaaS 를 사용
  • 런타임 시스템(버킷 결정로직 중요) + 분석시스템 2개로 나뉜다.

 

  • 전체과정

 

 

AA테스트

  • AA 테스트는 기본적으로 A/B 테스트에서 A와 A로 구성된 실험입니다. 즉, 두 그룹이 동일한 조건에서 같은 변종을 보는 실험입니다. 이는 주로 실험 환경의 안정성을 확인하거나 테스트 시스템의 정확성을 검증하기 위해 사용됩니다.

 

userid vs deviceid 

  • userid : 등록사용자
  • deviceid : 로그인 상관없이 서비스 방문자에게 부여되는 id, 브라우저 쿠키로 만들어짐
  • 나누는 방법들 

 

 

 

outlier가 A/B 테스트에 미치는 영향

  • 큰손들의 구매
  • 특정 이슈로 인한 과 트래픽 발생

'데이터 기초' 카테고리의 다른 글

ETL 기초 실습  (0) 2023.12.31
테스트 코드 구조 소개  (1) 2023.12.25
워드클라우드 이용 데이터 시각화  (0) 2023.10.27
셀레니엄 이용한 자동화 웹 스크래핑  (0) 2023.10.26

+ Recent posts