UI 자동화 도입 및 도구 선정,
이렇게 시작했습니다

by 현명한 봄


자동화 도입 배경

제가 첫 Test engineer로써 입사한 회사에서는 저를 포함해 2명의 팀원이 있었습니다. 당시 프로젝트는 언제나처럼 거대하게 느껴졌고, 이때만 해도 테스트 케이스(TC)를 설계하고, 전수, 기능 단위의 수동 테스트를 하는 업무가 주요 업무였습니다. 수백개의 테스트케이스를 제한된 인력 자원으로 수행하려다 보니, 많은 리소스가 많이 투입될 뿐만 아니라 한번 수행하는데 2-3일씩 걸리는 문제가 있었습니다. 이 문제를 해결하기 위해 테스트 자동화를 도입하게 되었습니다. 자동화 적용 후, 테스트 케이스 1개당 평균 수행 시간이 27초에서 9초로 단축되며 약 66%의 성능 개선을 달성했습니다.

스크린샷 2025-02-18 오후 9.58.54.png 자동화 도입 결과


하지만 적은 인원으로 테스트를 하면서 구축하는 것은 쉽지 않았습니다. 더이상 물러설 수 없다! 자동화에 많은 리소스를 투입하기로 결정했습니다. 팀 내에서 이전에 Selenium 기반 웹 자동화 프로젝트를 진행하면서 어떤 어려움을 겪었고 어떻게 해결해 나갔는지 기록해보겠습니다. 나와 누군가에게 도움이 되길 희망하며 :)




도구 선정 과정

새로운 프로젝트를 시작할 때, 가장 시간이 많이 걸리는 단계가 환경 설정이라고 생각합니다. 그럼에도 불구하고, 충분한 고민이 필요한 과정입니다. 예를 들어, python으로 개발하던 코드를 Java로 바꾸기란 쉽지 않을테니까요.UI 자동화에 활용된 대표적인 도구들은 다음과 같습니다. 팀 내에서 어떤 이유로 선정하게 되었는지 간단히 설명드리겠습니다.

개발 언어 : python

테스트 프레임워크 : pytest

개발 프레임워크 : selenium

패키지 관리자 : poetry


python은 개발을 시작하시는 분이라면 누구나 접하기 쉬운 언어라고 생각합니다. 특히 팀원은 비전공자이기 때문에 개발에 대한 어려움이 있었고 팀원과 함께 개발하기에는 python이 빠르게 익히고 소통하기 좋을 것으로 생각이 되었습니다.


selenium은 웹 브라우저를 자동화하기 위한 프레임워크로 브라우저를 원격으로 제어하여 테스트를 수행하는 데 사용됩니다.

1. Chrome 외에도 Safari, Edge 등 다양한 브라우저를 지원하여 크로스 브라우징 테스트 가능

2. Python 외에도 JavaScript, Java 등 다양한 프로그래밍 언어에서 사용 가능

3. 클릭, 스크롤, 파일 업로드 등 웹 기반 UI 상호작용에 대한 테스트 가능

4. QA 테스트 자동화에서 가장 널리 사용되며 레퍼런스가 많음

5. 비동기 로딩 요소 처리에 강함

위와 같은 장점 중 특히 3, 4번 항목이 가장 유용하다고 생각했습니다.


또한, selenium과 결합해서 사용할 때 더 유용할 pytest!

1. 개별 테스트 관리 용이

2. 테스트 리포트 제공

3. 테스트 데이터 파라미터화 가능

4.병렬 실행 가능

웹 페이지별로 구분하고 테스트 실행 관리가 용이할 뿐더러 결과 HTML 형태로 생성할 수 있어 디버깅하기에도 편하다는 장점이 있었습니다. 또한, 병렬 실행이 가능하기에 리소스 감축에는 더욱 효과가 강력할 것으로 기대되었습니다.


패키지 관리자의 경우에는 pip, pipenv, poetry 등이 존재하지만 대규모 프로젝트인 점과 CI/CD에 용이하다는 점에서 poetry를 선정하게 되었습니다.



다음 글에서는 위에서 선정한 도구들을 어떻게 설정하고 활용했는지 상세히 다뤄보겠습니다.

keyword