실용주의 프로그래머 Topic 51

Topic 51 실용주의 시작 도구

데이비드 토머스, 앤드류 헌트

Alt text

느낌표 ! (인상 깊은 문장 | 문맥)

버그 찾기는 그물 낚시와 비슷하다. 잔챙이를 잡기 위해 촘촘한 그물(단위 테스트)을 쓰기도 하고, 식인 상어를 잡기 위해 크고 성긴 그물(통합 테스트)을 쓰기도 한다. 때때로 고기가 용케 도망가기도 한다. 그렇게 되면 프로젝트 웅덩이에서 헤엄쳐 다니는 미끌미끌한 결함들을 더 많이 잡기 위해 구멍난 곳을 있는 대로 찾아다니며 막아야 한다

p.394

지금까지 본 테스트 케이스의 설명 중에서 재미있으면서 가장 와닿는 표현이다. 단위 테스트는 촘촘하게 작성하지만 케이스가 더 많고 테스트를 위해서는 단위 테스트에 비해서 다양한 도구를 이용해야 하기 때문에 비유가 와닿았다. 또한 가끔 테스트 케이스를 피해서 버그가 발생하기도 하는데 그물 사이를 지나간 비유가 와닿았다.

읽고보니 테스트 케이스는 고기 잡기와 매우 유사한 것 같다.

한번 인간 테스터가 버그를 찾았다면 더는 인간 테스터가 그 버그를 만나서는 안 된다. 그 순간 이후로는 무조건, 매번, 예외 없이, 아무리 사소해도, 개발자가 “그런 상황은 절대 또 일어날 리 없습니다”.라고 불평을 하더라도, 해당 버그를 확인할 수 있게 자동화 테스트를 수정해야 한다.

p.399

간혹 테스트 케이스를 실행하건 개발하다가 중간에 실행하다보니 에러가 발생하였는데 재실행하니 문제가 없이 돌아가 넘어간 적이 있다. 생각해보면 오히려 그 상황인 경우에 더 예민하게 반응을 했어야했다. 이 때 해당 버그를 파악하고 테스트 케이스를 추가하는 것이 바람직하겠다.

버전 관리, 가차 없는 테스트, 전체 자동화라는 세 기둥이 있다면 여러분의 프로젝트에 필수적인 견고한 기반이 생긴 것이다. 이제 여러분은 어려운 부분에 집중할 수 있다. 바로 사용자를 기쁘게 하는 것이다.

p.401

버전 관리, 테스트 케이스, 자동화의 경우 개발자의 편의 향상이다. 그렇지만 개발자의 편의 향상은 사용자의 편의 향상으로 이어진다. 그러기에 에너지를 엄한 곳에 쏟는 것이 아니라 필요한 부분에 사용할 수 있는 환경이 필요하겠다.

Topic 51 느낌

Topic 51 에서는 개발자에게 반드시 필요한 3요소(버전 관리, 테스트 케이스, 자동화)에 대해서 다루고 있다.


실용주의 프로그래머 Topic 50

Topic 50 코코넛만으로는 부족하다

실용주의 프로그래머 Topic 52

Topic 52 사용자를 기쁘게 하라

NCloud LB & SourcePipeline 구축하기
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지