사내 E2E 테스트 도입 경험기 #1 - 도입 배경

띵지·2023년 4월 23일
2

E2E

목록 보기
3/3
post-thumbnail

들어가기 전에

작년 말, E2E 도입이 처음 이슈업 되었고
2023년이 시작되면서 본격적으로 E2E 테스트 프로세스 도입을 내가 맡게 되었다.

처음에는 '테스트 케이스만 추가하면 되는건가'라고 생각하는 등
일의 난이도나 깊이에 대해 정확하게 파악을 하지 못했다.

그리고 수많은 시행착오를 겪어오면서 현재는 E2E 도입이 가능한 프로세스 구축까지 구현해두었다.
지금부터 풀어볼 이야기는 시작부터 지금까지의 도전 이야기,
그리고 실제 E2E 테스트를 하며 앞으로 겪게 될 또 다른 시행착오들도 함께 풀어나가지 않을까 싶다.


E2E 테스트가 뭔데요?

End-to-End 테스트의 약자로,
실제 사용자 시나리오를 시뮬레이션하여 프로그램의 전체 흐름을 테스트하는 유형을 의미한다.
단위, 구성테스트에서 발견하기 어려운 통합 단위의 문제를 파악하기 위한 테스트이기도 하다.

우리팀에서는 Playwright 라이브러리를 활용하기로 했다.

이유는 크게 3가지였다.

  • 빠른 테스트 속도: 테스트 병렬 실행 가능
  • Microsoft 사 라이브러리: 오랜 기간 관리될 가능성 높음
  • codegen 기능: 빠른 테스트코드 작성에 도움을 줌

E2E 테스트가 왜 필요했나요?

사실 테스트 문화를 만들기에는 다들 너무 바빴다

테스트 코드,
꼼꼼하게 잘 작성되고 모두가 테스트 문화를 지켜나간다면 너무 좋지만
여러 개발팀에서는 시간에 쫓기다보니 일이 바쁜 경우에는
테스트코드가 우선순위에서 계속 밀려나게 된다.

현재 내가 속한 서비스 개발팀도 일이 많이 쌓여있다보니
다들 테스트 코드에 대한 문화를 고민할 여유가 없는 상황이 지속되고 있었다.

이런 상황에서 내가 어떻게 E2E 테스트 프로세스 구축을 맡게 되었을까,
사실 E2E 테스트 문화만큼은 우선순위를 조금 더 높여 도입해야했던 이유가 있었다.

배포 때마다 반복되는 수동 QA, 비효율적인 과정은 제거하자

우리 팀이 웹서비스를 개발하고 배포하는 과정은 아래와 같다.

로컬 개발 -> 알파 배포 -> 베타 배포 -> 리얼 배포

  • 1달에 1번 진행하는 정기배포 (+ 베타 배포)
  • 그외 필요할 때마다 진행되는 수시배포 (+ 베타 배포)

베타 배포, 리얼 배포 직후 필수로 진행해야 하는 E2E QA 리스트가 있었는데
우선순위 1번째 QA 리스트라는 의미에서 팀에서는 P1 테스트라고 명명한다.

그리고 기획팀에서 1달에 최소 2회 이상의 정해진 P1 테스트를 직접 진행해왔다.
(그리고 P1 리스트에 속해있는 테스트 케이스들의 수는 거의 200~300개)

고정된 테스트를 매번 사람이 직접 반복적으로 확인하는 상황 자체가 굉장히 비효율적이었고,
이 문제를 개선하기 위해 P1 테스트만큼은 배포 직후 자동으로 테스트가 수행되도록 하는 프로세스가 필요했다.

그리고 난 정말 용감하게도 "제가 해봐도 되나요?"라고 말해버렸다.
그 당시 생각했던 테스크의 규모와, 지금 내가 되돌아보는 이 테스크의 규모 차이는 극과 극이랄까..
그래도 많이 배울 수 있었던 너무 좋은 기회였다
(기회였다...? 사실 아직 -ing 중이다 🫠)


근데 E2E 레퍼런스가 너무 없다

사실 이번 테스크를 시작하면서 E2E 테스트라는 것에 대해 처음 찾아보게 되었고,
생각보다 너무 자료가 없어서.. 당황스러웠다.

여기서 쓴 자료가 없다는 말은 아래와 같다.

  • 타 기업에서 Playwright를 활용한 성공 사례가 없다.
  • 사실 타 라이브러리로도 E2E를 성공적으로 도입한 기업 사례가 거의 없다.
  • 그래서인지 E2E 관련 컨퍼런스 영상이.. 1-2개 뿐이랄까..? 사실 이마저도 현재 우리팀 상황과 많이 달라서 아쉬웠다.

누군가가 잠깐 공부하려고 올린 포스팅은 사실 필요한 정보들에 가깝지 않았기 때문에
결국 맨땅에 헤딩을 하듯이 공식 문서를 미친듯이 찾아보고, 혼자 구조를 설계하며 새롭게 꾸며가게 되었다.

1년차도 안된 내가 회사에서 무언가를 처음부터 이끌고 문화를 만들어 나간다는게 조금 부담스럽기도 했고,
그만큼 잘 해내고 싶은 욕심이 컸는데 내 실력이 따라와주지 않아 속상했던 적도 많았다.

그래도 지금 포스팅으로 회고록을 작성하기 시작할 정도로 진도가 많이 나갔기 때문에
중간에 포기하지 않고 잘 이끌고 왔다고 스스로에게 칭찬 한 마디 건네주고 싶다 💪


다음 포스팅에서

다음 포스팅부터는 내가 구현한 E2E 테스트 프로세스에 대해 조금더 deep하게 소개할 예정이다.
이번 글은 약간의 빌드업과 지금까지 느낀 내 생각 정리랄까 ㅎㅎ

그렇다면 이제 2편에서 마저 작성해보는걸로!🔔

profile
1년차 주니어 백엔드 개발자, 기록으로 완성하는 나

0개의 댓글