[102호] 팀을 넘어서 전사적 협업 환경 구축하기

💡 By 정광섭 Atlassian
한국의 작은 우주 스타트업 CONTEC 에서 글로벌 우주 지상국 서비스를 개발하고 있습니다. 프로젝트를 매니지먼트하며 하드웨어 API 서버들과 연동하는 백엔드 개발을 맡고 있습니다. 오늘도 ‘나와 팀과 제품 그리고 고객이 함께 성장하기’ 라는 목표를 가지고 좌충우돌 스타트업 이야기를 써내려 가고 있습니다.
최근에 입사한 지 1년 된 프런트엔드 동료와 함께 제품 개발을 했습니다. 그에게 신규 기능 구현 업무를 할당했는데, 기본적인 기능이 동작하지 않는 결과물을 공유해 주었습니다. 테스트에 신경 써달라고 부탁했지만 비슷한 일이 반복되어 그에게 어떻게 테스트하는지 과정을 보여달라고 했습니다. 그의 테스트 과정을 본 후 그가 잘 몰라서 그랬던 것이고 내 말을 무시했거나 불성실한 게 아니란 걸 깨달았습니다. 그날 이후 저는 그가 알고 있을 거라고 가정했던 기본적인 것들을 설명해 주어야겠다고 생각했습니다. 그래서 그에게 알려주고 싶은 테스트에 대한 기본적인 개념과 테스트 과정에서 집중해야 할 요소들에 대해 정리해 보게 되었습니다. 이 발표가 테스트에 어려움을 겪는 주니어 개발자들에게 도움이 되길 바랍니다.

Q. 발표 주제는 무엇인가?

  • 발표자는 10년차 백엔드 개발자였고 1년차 프론트엔드 개발자와 협업하면서 경험했던 이슈를 공유하고자 한다

Q. 무엇이 이슈였나?

  • 불이 켜지고 꺼지는 스위치 프로그램을 개발하는 것이었다.
  • 발표자는 API를 개발하여 완료하였고, 1년차 프론트엔드 개발자에게 API 연동을 요청하였다
  • 1년차 개발자는 불 켜기 API를 연동했다고 전달하였고, 발표자는 테스트 해보았는데 API가 동작하지 않았다..
  • API 주소가 잘못 되었던 것이 었다
  • 발표자는 처음이라 실수라고 생각해서 이해했다.
  • 그리고 불 끄기 API 연동 완료되었다고 메신저가 왔다
  • 불 킨 다음 불 끄기를 테스트해보았는데 불은 꺼지지 않았다…
  • 확인해보니 불끄기 액션에도 불 켜기 API를 붙인것이었다..

Q. 처음에 느낀 생각은 무엇이었나?

  • 이 친구는 성실하지 않은건가?
  • 아니면 나를 무시하는건가..?
  • 부정적인 생각이 들었다..

Q. 이야기를 해보니 어떤 부분이 문제였나?

  • 발표자는 주니어 개발자에게 어떻게 확인했냐고 물어봤다..
  • 그랬더니 API를 연동하고 200 OK가 있어서 완료되었다고 생각하였다고 한다
  • 생각해보니 한번도 어떻게 테스트 하는지에 대해서 가르쳐 주지 못한것 같았다..
  • 내가 알고 있는것을 이 친구도 당연히 알고 있을거라 생각하였다..

Q. 테스트할 때 기억해야 할 7가지

  • 기본적인 세가지
    1. 1.
      테스트 케이스 정의를 명확하게 정의하자
  1. 2.
    제품 요구사항을 먼저 파악하자
  2. 3.
    외부 인터페이스를 파악하자
  • 더 나아가면 좋은 세가지
    1. 1.
      소프트웨어 라이프사이클
      • 요구사항 정의(분석) → 설계 → 구현 → 테스트 → 배포
    2. 2.

      요구사항은 분석할때 정의된다

    3. 3.

      사용자 관점에서 생각하라

  • 가장 기본적인 한가지
    1. 1.
      테스트를 꼭 수행하자

Q. 최근에 감동받은 적이 있나?

  • 우리는 큰 이벤트보다는 일상생활에서 사소한 것으로 감동을 더 많이 받는다
  • 발표자도 아내분이 매일 아침 먹는 커피를 3층 선반에서 힘들게 꺼내서 먹고 있었는데 아침에 커피 먹기 편하라고 1층 선반 보이는곳에 두었다고 한다
  • 이처럼 우리가 제품의 요구사항을 명확히 파악하고 사용자 관점에서 테스트코드를 작성하여 퀄리티 높은 상품을 제공할 수 있다면 이런 사소한 기능에 있어서 사용자도 감동받을 수 있다