7th testfest를 다녀와서

지난 주 런던에서 열렸던 testfest에 대한 얘기를 해볼까 합니다.
원래는 codefest였지만, 성격상 testfest가 맞았습니다.

Compliance 그룹(of BONDI) 의 의장이신 리스께서 아래와 같은 Agenda로 미팅을 주관해 주셨습니다.

  • Testfest에 대한 소개 및 목적
  • BONDI Test Framework 소개 및 Test 작성방법
  • 그리고, Test 작성하는 간단한 샘플
  • 둘째날 부터는 계속 test code를 넣고, 서로 리뷰를 하였습니다.

날짜별로 좀 더 자세히 얘기하자면 아래와 같다.
(일련의 모든 사항을 적기보다는 느낌을 중심으로 작성했습니다.)

Day 1

먼저 리스가 의장이 된 이유를 (아무도 나서는 이가 없어서 어쩔 수 없이 이렇게 되었다고 말함) 꺼내면서 미팅이 시작되었다. (60정도 되어보이는 백발 개발자의 겸손함과 지혜를 엿볼 수 있었음.)

그리고, Test code가 실제 BONDI 페이지에 연결된 svn에 바로 commit 되는 것이라 놀라지 않을 수 가 없었다. WebVM 담당자인 카이(Kai) 말로는 실제로 어떤 이가 파일 자체를 날려서, 일일이 복구하는 일도 생겼었다고-_-;

참가한 사람이 그렇게 많지 않아서(10명정도), 2~3명이 한팀이 되어서 주요 모듈을 맡아서 Test 작성이 시작이 되었다. 물론 나랑 같이 간 Denny와 같은 팀이였으며, 우리가 맡은 모듈은 Contact 이었다. (사실 이 때까지만 해도 BONDI test framework 에 대한 동작방식은 이해할 필요가 없어서, 깊이 있게 보지는 않았었다. 바로 이게 우리가 좀더 잘 할 수 있었는데 부족했던 부분이 아닌가 한다.)

Day 2

우리는 스펙의 문장 하나하나를 면밀히 분석하여, assertion 들을 리스트업 하였다.  예를들어 If any argument is wrong the ErrorCallback will be invoked with a DeviceAPIError INVALID_ARGUMENT_ERROR 이 있으면, 실제로 인자가 잘 못 들어갔을 경우 ErrorCallBack을 리턴하는 지와 그때 Error 코드가  INVALID_ARGUMENT_ERROR 인지를 체크해야한다.

실제 Contact의 경우에는 다른 모듈에 비해서 작업이 너무나 안되어 있었다. 그래서 우리는 대부분의 코드를 처음부터 다시 작성해야 했으며, 많은 삽질을 하는 계기가 되었다. ㅠㅠ.

또한 우리는 Browser based 뿐 아니라 Widget에 대해서도 돌아갈 수 있도록 호텔에 와서도 열심히 삽질을 하였다. (RI가 너무 구현이 안되어있어서, 실제로 테스트 해볼 수 있는 것은 거의 없었다.)

Day 3

계속되는 코딩… (중략)

그러나, 이 날은 저녁에 한국 식당에 가서 소주한잔을 할 수 있는 여유가 있었다. 사실 한국에 1년간 산 적이 있는 카이가 가자고 제안했으며, 브라이언도 기꺼이 동행해서 4명이서 즐거운 저녁시간을 보냈다.

Day 4

… (중략) 마치며,

If no filter is passed all the contacts will be returned 의 경우 실제로 제대로 돌아가는 지 확인할 Test assertion을 찾을 수 가 없었다.

혹, 관심있는 분은 어떻게 하면 이 것을 검증할 수 있는지 생각해보길 바랍니다.

p.s) 제가 다니는 회사와 관련된 정보나 아직 확정되지 않은 것에 대해서는 일부러 언급하지 않았습니다.
그리고, 다음 Codefest는 7월에 열릴 예정인데, 그때는 좀더 나은 모습을 보일 수 있도록 미리 노력을 많이 하도록 하겠습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: