영상 링크 : https://www.youtube.com/watch?v=DwqwUsFmoCU
1. 무엇을 소개하는가?
토스 닥터라고 부르는, 스모크 테스트 자동화 툴을 소개한다.
메신저에서 /토스닥터 를 입력하고 몇가지 옵션을 선택하면 Appium을 이용해 테스트 스크립트를 실행하고, 테스트 결과를 출력하는 일종의 "딸깍" 하나에 20분치 업무를 수행해주는 툴이다.
*스모크 테스트 : 주요 기능 테스트를 빠르게 하는 것
2. 도입 배경
기존에는 수동 테스트에 너무 많은 인력 소모가 있었던 것 같다.
1회 릴리즈 할 때 평균 RC 빌드를 5회 발행하고,
1년간 Android와 iOS에서 RC 빌드를 540회 발행했으며,
기존 RC 빌드를 1회 수동 테스트하는 데에 평균 20분 걸린 것을 계산하여 총 179시간의 비용이 들었다고 한다.
**RC 빌드 : 출시 후보
하지만 토스 닥터 자동화 툴을 사용했을 때, 자동 테스트로 평균 10분 단축시키면서 두가지 확실한 이득을 볼 수 있었다.
- 총 RC 빌드 테스트 시간을 90 시간을 아낀다.
- 179시간 * 수동 테스트 참여 인원의 비용을 아낀다.
또한, RC 빌드가 발행되었을 때 기존 업무를 중단하고 다른 업무로 바꿀 때의 집중력 분산, 수동 테스트를 반복할 때에 오는 업무 피로감 등의 보이지 않는 이점 또한 얻을 수 있었다.
3. 주요한 세가지 특징
토스 닥터 컨퍼런스에서 세가지 주요한 세가지 특징을 소개했다.
- webdriver 세션 재사용하기
- 자동으로 테스트 결과 기록하기
- 실시간으로 테스트 진행 상황 모니터링하기
1번으로는, @pytest.fixture 이라고 부르는 데코레이터를 사용했다고 한다.
반복되는 세팅 (앱을 켜기, 로그인하기 등) 을 각 세션을 테스트 할 때 마다 실행한다면 반복되는 코드가 나올 뿐만 아니라 매번 재실행하는데에 시간 소요도 커지게 된다.
그런 낭비를 줄여주는 기능을 소개하는 것으로 보인다.
2번으로는, pytest의 testrail 플러그인을 사용해 테스트 결과를 testrail api로 전달하는 방식으로 구현했다고 한다.
테스트레일에 ID를 지정하고, pytest의 testrail 플러그인에 ID를 1대1 매칭해놓으면 testrail에 결과가 보고된다고 한다.
3번으로는, 테스트 자동화 중 테스트 시작, 성공, 실패, 경고를 통해 테스트 진행 상태를 실시간으로 볼 수 있게 구현했다.
2번에서 테스트 결과가 기록되더라도 "이걸 실시간으로 어떻게 보느냐?" 에 대한 해답을 내놓았다.
실제로 메신저에 구현한 것을 보면, 대강 이런식이다.
🎯 탭 노출 확인
✅ 로그인 (0.5s) <- Pass
✅ 1번 탭 노출 확인 (0.3s) <- Pass
✅ 2번 탭 노출 확인 (0.3s) <- Pass
🔥 3번 탭 노출 확인 (0.3s) <- Fail
⚠️ 4번 탭 노출 확인 (0.3s) <-warn
이런식으로, 어떤 기능을 테스트하는지, 성공하였는지, Fail하였는지, 몇초 걸렸는지를 한눈에 볼 수 있게 완성도 높은 구현을 했다.
주요한 세가지 특징이라고 말을 했는데, 굉장히 훌륭하고 꼭 필요한 기능일 것 같다.
그리고, 굉장히 깔끔하다!
4. 느낀 점
첫 회사에서, 매 빌드마다 스모크 테스트와 같은 메뉴얼 테스트를 수동으로 한 경험이 있다.
그때 당시, 수동 테스트를 매번 반복하는 과정이 썩 즐겁지만은 않았고 기계가 된 기분이기도 했었다.
지금으로 와서, 토스 닥터와 같은 자동화에 영감을 받고 충분한 공부 시간과 역량을 갖춘다면 자동화를 구현해보고 싶을 것 같다.
하지만 과연 토스 닥터와 같이 "잘" 만들 수 있을까?
위의 주요한 세가지 특징 중 몇개나 구현이 가능할까?
한번 도전해보고싶다. 최근 시간 여유가 있는데, 한번 기획하고 만들어보는것도 좋을듯!
'노트' 카테고리의 다른 글
[Docker] 인프런 - 도커 기초🐋[完] #003 (0) | 2025.04.16 |
---|---|
[Docker] 인프런 - 도커 기초🐋 #002 (0) | 2025.04.15 |
[Docker] 인프런 - 도커 기초🐋 #001 (2) | 2025.04.14 |
[CS] 1.1 + 0.1 == 1.2 가 False인 이유 (2) | 2025.03.11 |
[컨퍼런스] NDC22 - 테스트자동화 도구 개발 생존전략 후기 (0) | 2025.02.13 |