brunch

You can make anything
by writing

C.S.Lewis

by 이지원 Jun 06. 2023

Test Automation Evangelist

테스트 자동화 에세이-새로운 목표

10 ParallelTesting

나는 왜 당연히 Pass로 예상되는 E2E 테스트 코드를 최적화하고 작성하는 것에 많은 시간과 노력을 쏟을까에 대한 생각으로 시작된 불완전한 결론에 이르기까지 자그마치 6개월, 너무 가볍지도 무겁지도 않게 보냈던 시간들. 커리어 마지막으로 나아가야 할 방향을 새롭게 정리하며 직장인 생활을 끝마칠 무렵 그래도 누군가의 꿈과 비전에 동참하여 조력자로서의 삶에 충실했다는 위로와 안녕 그리고 새로운 시작과 자아실현을 위한 도전을 스스로에게 건넬 수 있는 단단한 사람으로 성장하길. 


테스트 코드를 구현하는 함수의 동작과 검증에 대한 Jest 단위 테스트

가끔 E2E 상시 테스트 자동화가 필요할까 라는 의문이 들 때면 E2E 테스트 코드 구현에 필요한 action과 check 함수에 대한 단위 테스트를 실행하곤 한다. 3초쯤 지났을까, E2E 테스트와는 다르게 금세 결과 확인 가능한 단위 테스트를 살펴보며 역시 통합 테스트와 E2E 테스트 자동화는 가치 있는 활동이라며 되새기곤 한다. 하지만 E2E 테스트 자동화를 실행하면 어차피 대부분 Pass 일 텐데 뭐 그리 중요하고 대체 왜 해야 할까라는 의문에 대한 공감대는 스스로 풀어야 할 숙제이고 책임 중 하나이다.


가장 높은 비용의 E2E 테스트 자동화를 해야 하는 이유와 가치에 대해 생각해 본다면 CICD 파이프라인에서의 지속적인 테스트와 더불어 최종 사용자가 경험하는 비즈니스 로직에 대한 확신이 아닐까, 새로운 기능과 리팩토링을 위해 작성하고 반영 예정인 코드가 프로덕션 환경에서 잘 동작하는 기능에 영향을 끼치지 않을 것이라는 확신. 이러한 확신은 개발 과정에 있어서 자신감이 되어줄 거라 생각하고 개발 문화에 자연스레 접목시키기 위해선 보이지 않고 다소 눈에 띄지 않는 노력이 필요하다. 비즈니스 로직 동작에 대한 확신은 정적 테스트도 단위 테스트도 통합 테스트도 아닌 E2E 테스트가 가장 적합하다. 소프트웨어 사용 방식과 유사할수록 더 많은 신뢰를 보장할 수 있기 때문이다. 비록 프로덕션 환경이 아닐지라도.


테스트 레이어 전체에 대해 기술 관점으로 생각해 본다면 SonarQube와 같은 정적 분석 도구를 활용한 정적 테스트는 문법 오류와 잠재적인 버그를 체크할 순 있어도 최종 사용자가 경험할 비즈니스 논리에 대한 확신을 주지 못한다. 단위 테스트는 어떠할까, 개별 모듈이 올바르게 동작하는지 확인할 순 있어도 종속성을 호출할 때 종속성이 올바르게 동작하는지 정확히 확인할 수 없다. 통합 테스트 또한 사용자 인터페이스와 백엔드 간의 상호작용을 검증하는 것이 목표일 뿐 전체 애플리케이션의 동작을 테스트하기 위한 테스트는 아니며 통합 테스트만으로는 비즈니스 로직에 대한 확신을 가지기 어렵다. 하지만 E2E 테스트는 프로덕션과 100% 동일한 환경은 아닐지라도 최종 사용자가 경험할 비즈니스 논리에 대한 확신을 가질 수 있다. 상황에 따라 프로덕션 환경에 상시 테스트 환경을 구축하여 트래픽 증가 및 예기치한 외부 서비스 장애로 인해 발생하는 서비스 장애를 모니터링하여 대응할 수 있다.


정적 테스트 단위 테스트 통합 테스트 E2E 테스트는 모두 고유한 검증 영역이 존재한다. 만약 테스트 자동화 엔지니어가 웹 모바일 E2E 테스트 자동화뿐 아니라 통합과 단위 테스트까지 테스트 전략을 혼합해서 구현하고 소프트웨어 개발수명 주기에서 활용할 수 있다면 단위 테스트가 더 잘하는 테스트 영역과 통합 테스트가 더 잘하는 테스트 영역을 구분하고 최소한의 비용으로 E2E 테스트를 유지할 수 있지 않을까, 한 분야를 깊게 이해하고 활용하는 전문가 수준은 아닐지라도 최소한 프론트와 백엔드의 테스트 레이어 전체 계층에서 테스트 활동이 가능한 수준의 역량을 보유한다면 E2E 테스트 자동화의 가치를 보다 SW 품질의 관점에서 가시적이고 정량적으로 때로는 개발 문화적으로도 정립할 수 있지 않을까. 

테스트 레이어 전체 계층에 대한 이해와 활용은 Low-Level 테스팅에 근접할수록 프론트와 백엔드를 직접 개발해 본 경험이 없다면 추상적이고 모호하게 느껴질 수밖에 없기 때문에 오늘도 내일도 계속해서 가야 할 방향과 목적지에 필요한 스킬셋을 갖추는 것에 집중할 뿐이다. 개발 경험을 통해 테스트 레이어 전체 영역을 다룰 수 있으면서도 최종 사용자 경험과 맞닿아 있는 비즈니스 논리에 대한 확신을 줄 수 있는 E2E 테스트를 잘 운영할 수 있는 QA 엔지니어로 성장하는 것, 어쩌면 가고자 하는 방향이 Test Automation Evangelist는 아닐지 앞으로의 성장과 모습이 어렴풋이 그려지는 요즘이다. 조용하고 묵묵히 흔들리지 않고 앞으로 나아갈 수 있길 바라본다.

매거진의 이전글 Don't reinvent the wheel

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari