모든 테스트를 자동화할 필요는 없습니다
요약
모든 테스트를 무조건 자동화할 필요는 없으며, 반복 실행 가치가 있는 테스트에 집중해야 합니다. 중요한 것은 단순히 테스트 실패 여부를 아는 것을 넘어, 실패가 발생한 주변 맥락(브라우저 동작, 네트워크 활동 등)을 라이브 비디오와 로그로 분석하는 것입니다.
핵심 포인트
- 모든 테스트 자동화보다 반복 가치 판단이 중요합니다.
- 테스트 실패 시 단순 빨간 표시 대신 맥락 파악이 핵심입니다.
- 실패 원인은 제품 버그 외에 환경이나 테스트 자체 문제일 수 있습니다.
- 자동화의 목표는 '무슨 일이 일어났는지' 이해하는 것입니다.
테스트 자동화에 대해 배우기 시작했을 때, 저는 '자동화할 수 있다면 왜 안 되는가?'라고 생각하곤 했습니다.
하지만 실제 자동화 프로젝트들을 많이 살펴보면서, 모든 테스트를 자동화할 필요는 없다는 생각이 들었습니다.
모든 릴리스마다 반복해서 실행하는 테스트는 자동화하는 것이 합리적입니다. 하지만 자주 변경되거나, 한 번만 사용되거나, 탐색적인 사고(exploratory thinking)가 필요한 테스트는 자동화로 유지할 가치가 없을 수도 있습니다.
그래서 질문은 다음과 같이 바뀝니다: 이것을 자동화할 수 있는가?
그리고 또한: 이 자동화가 우리에게 유용한 피드백을 제공해 줄 것인가?
X360 AI Tech에서 일하면서 우리가 집중하는 한 가지는 자동화된 테스트가 실행된 '후'에 무슨 일이 일어나는지입니다.
테스트가 실패했을 때, 우리는 그 결과가 단순히 빨간 표시로 멈추기를 원하지 않습니다. 대신 실제 실행 과정에서 무엇이 발생했는지—브라우저 동작(browser actions), 단언(assertions), 네트워크 활동—를 라이브 실행 비디오, 로그 및 실행 이력과 함께 살펴볼 수 있습니다. 이는 실패한 상태만을 보는 것이 아니라 실패 주변의 맥락을 제공합니다.
그러면 이 실패 분석 부분이 우리가 해당 실행을 조사하고 무엇에 주의를 기울여야 하는지 이해하는 데 도움을 줍니다.
예를 들어, 결제(checkout) 테스트가 실패했다고 가정해 봅시다. 중요한 질문은 단순히 '테스트가 실패했는가?'가 아닙니다.
우리는 어디서 실패했는지, 실패하기 전에 무엇이 일어났는지, 그리고 실행 증거가 우리에게 무엇을 말해주고 있는지 살펴보고 싶습니다.
이러한 구분이 중요합니다. 왜냐하면 테스트 실패가 곧바로 제품 버그를 의미하지 않기 때문입니다.
이는 변경된 애플리케이션 동작일 수도 있고, 테스트 자체의 문제일 수도 있으며, 실행 환경의 다른 무언가 때문일 수도 있습니다.
이것이 자동화에 대한 저의 생각을 바꾼 부분입니다.
목표는 모든 테스트를 자동화하는 것이 아닙니다.
반복할 가치가 있는 테스트를 자동화하고, 무언가 실패했을 때 실제로 무슨 일이 일어났는지 이해하기에 충분한 맥락을 갖추는 것입니다.
이것이야말로 자동화가 훨씬 더 유용해진다고 생각합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기