달력

122021  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  

테스트 코드의 전후

java 2008. 8. 14. 13:02

진도를 마쳤습니다. 시험봐야죠. 다른 말로 테스트.
생활 속에서 이러한 이유로 테스트라는 단어는 항상 실체의 뒤에 위치합니다.

TDD, Test Driven Development. 흔히 테스트 주도 개발이라고 얘기하는 것입니다.
학원 안 다니고 주행에 도전했다가 몇 번 씩 탈락한 뒤에 합격해서 받은 운전 면허가 TDD로 받은 운전면허증일까요. ㅋㅋ. 이 경우는 테스트가 학습을 유발했다고도 볼 수 있죠. 영어로 Heuristic 이라고 얘기하는 학습법이요.

이와는 반대로 건드리기 전에 테스트를 해야하는 경우도 있습니다.

사용자 삽입 이미지

image from: http://www.esfi.org/workplace/test-before-you-touch.html 

전기 회로를 손대기 전에 전류가 흐르는지 아닌지 확인을 하는 경우처럼 말이죠.

리팩토링의 관점에서는 테스트 코드의 존재가 이와 같다고 생각합니다. 레거시 코드를 고치기 전에 소스의 특성을 알아내는 것이죠. 그 다음 테스트 코드가 신뢰할 만큼 누적되면 좀 더 안전하게 코드를 수정할 수 있겠지요. 변경으로 인한 사이드 이펙트를 금방 인지할 수 있으니까요.
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. jeany4u  댓글주소 수정/삭제 댓글쓰기 2008.08.14 13:47

    항상 느끼는 건데.. 아티클에 맞는 이미지 참 잘도 찾아 내시는 거 같아여.. ㅋㅋ

  2. 달룟  댓글주소 수정/삭제 댓글쓰기 2008.08.14 23:18

    코드가 잘게 쪼개져있지 않을 경우, 테스트 작성이 쉽지는 않을 것 같아요.