“이 코드, QA도 리뷰해야 하나요?” 품질을 높이는 ‘코드 리뷰’ 속 QA의 역할

개발자가 코드 작성을 마친 후, GitHub에서 ‘Pull Request(PR)’를 생성합니다.

그러면 다른 개발자들이 이 코드를 함께 검토하고, “이 부분은 더 좋은 방법이 있을 것 같아요” 와 같이 피드백을 주는 활동.

바로 ‘코드 리뷰’입니다.

많은 사람들이 코드 리뷰는 개발자들만의 영역이라고 생각합니다.

하지만 현대 애자일 팀에서는 QA 역시 이 ‘코드 리뷰’ 과정에 적극적으로 참여하며, 품질을 한 단계 더 끌어올리는 중요한 역할을 합니다.

Q. ‘코드 리뷰’, 정확히 무엇인가요?

‘코드 리뷰’는 한 개발자가 작성한 소스 코드를 다른 동료들이 함께 검토하는 체계적인 동료 검토(Peer Review) 과정입니다.

단순히 오타를 찾는 것을 넘어, 잠재적인 버그, 설계상의 문제점, 더 효율적인 코드 작성법 등을 논의하며 코드의 전체적인 품질을 높이는 것을 목표로 합니다.

GitHub나 GitLab과 같은 도구에서는 보통 ‘Pull Request(PR)’ 또는 ‘Merge Request(MR)’ 단위로 진행됩니다.

Q. QA가 ‘애플리케이션 코드 리뷰’에 참여하면 무엇이 좋은가요?

QA가 개발자의 실제 제품 코드를 직접 리뷰하면, 테스트를 ‘왼쪽으로 옮기는(Shift Left)’ 효과를 극대화할 수 있습니다.

  • 1. 버그를 가장 먼저 발견:
    • 코드가 테스트 환경에 배포되어 실행되기 전에, 즉 버그가 탄생하는 바로 그 순간에 논리적인 오류나 예외 케이스 누락을 미리 발견할 수 있습니다.
    • 이는 가장 비용이 적게 드는 버그 수정 방법입니다.
  • 2. 테스트 용이성(Testability) 확보:
    • QA는 ‘테스트하기 좋은 코드’의 관점에서 리뷰를 할 수 있습니다.
    • “이 코드는 외부 라이브러리에 너무 의존적이어서 테스트하기 어려운 구조인데요, 이 부분을 분리해주시면 테스트 자동화가 훨씬 쉬워질 것 같아요” 와 같이 제안할 수 있습니다.
  • 3. 시스템 이해도 급증:
    • 코드의 변경 사항을 직접 눈으로 보며, 시스템이 어떻게 변하고 있는지 가장 빠르고 정확하게 파악할 수 있습니다.
    • 이는 더 깊이 있고 날카로운 테스트 케이스를 설계하는 데 큰 도움이 됩니다.

Q. QA의 핵심, ‘테스트 코드 리뷰’는 어떻게 해야 하나요?

‘테스트 코드 리뷰’는 우리가 작성한 자동화 테스트 코드의 품질을 높이는 필수적인 과정입니다.

‘제품 코드’만큼이나 ‘테스트 코드’의 품질도 중요하기 때문입니다.

QA 리드나 동료 QA는 다음과 같은 사항들을 중점적으로 확인하며 ‘테스트 코드 리뷰’를 진행해야 합니다.

  • ‘테스트 코드 리뷰’ 핵심 체크리스트:
    • 명확성:
      • 테스트 코드의 의도가 명확한가?
      • 변수나 함수의 이름만 봐도 어떤 것을 테스트하는지 쉽게 이해할 수 있는가?
    • 신뢰성:
      • ‘플레이키 테스트’가 될 만한 요소는 없는가?
      • 예: sleep()과 같은 하드코딩된 대기 시간, 테스트 간의 데이터 의존성 등
    • 유지보수성:
      • ‘페이지 객체 모델(POM)’과 같은 디자인 패턴을 잘 적용하였는가?
      • 나중에 UI가 바뀌었을 때, 최소한의 수정으로 쉽게 유지보수할 수 있는 구조인가?
    • 커버리지:
      • 해당 기능의 긍정적인 케이스(Happy Path)뿐만 아니라, 중요한 부정적/예외 케이스도 잘 커버하고 있는가?

결론: 함께 책임지는 코드 품질

‘코드 리뷰’는 더 이상 개발자만의 전유물이 아닙니다.

QA가 애플리케이션 ‘코드 리뷰’에 참여하는 것은, 품질을 사전에 확보하는 가장 효과적인 방법 중 하나입니다.

또한, ‘테스트 코드 리뷰’를 통해 자동화 코드의 품질을 높이는 것은, 장기적으로 안정적인 테스트 자산을 구축하는 핵심 활동입니다.

성공적인 팀에서는, 개발자와 QA가 서로의 코드를 리뷰해주며 함께 ‘코드 품질’을 책임지는 문화를 만들어나갑니다.

댓글 남기기