반응형





단위테스트란 무엇인가?

단위 테스트는 테스트 대상이 되는 코드 기능의 아죽은 특정 영역을 실행해 보는, 개발자가 작성한 코드 조각이다. 대개 단위 테스트는 특정 상황에서 특정 메서드를 시험해본다. 예를 들어, 어떤 정렬된 리스트에 큰 값을 넣고 이 값이 리스트 끝에 들어 있는지 확인해 볼 수 있다. 또 어떤 문자열에서 문자 패턴을 하나 지우고 그것이 없어졌는지 확인할 수도 있다.
 단위 테스트는 어떤 코드 조각이 개발자가 생각한 대로 동작하는지 증명하기 위해 수행하는 것이다.
 그 동작이 고객이나 최종 사용자가 바라는 것인지 아닌지는 해결되지 않은 채로 남는다. 이 부분은 인수 테스트의 목표다. 우리는 아직은 공식적인 유효성 검증과 확인이나 정확성에 크게 신경 쓰지 않는다. 이 시점에서는 성능 테스트에 조차 관심을 두지 않는다. 우리가 할 일은 단지 코드가 의도대로 동작하는지 확인하는 것이고, 따라서 코드의 기능 중에 아주 작고 고립된 부분만 테스트하기를 원한다. 개개의 부분들이 생각한 대로 동작한다는 확신을 쌓아 나감으로써, 비로소 그것들을 조립하여 전체 동작 시스템을 테스트하는 단계로 나아갈 수 있다.
 어쨌든, 만약 코드가 생각대로 동작한다고 확신할 수 없다면 어떤 형태의 테스트라 해도 그저 시간 낭비일 뿐이다. 여전히 다른 형태의 테스트도 필요할 테고, 환경에 따라서는 훨씬 많은 공식 테스트도 필요할 것이다. 하지만 자선과 마찬가지로 테스트는 기본에서 시작한다.


왜 귀찮게 단위 테스트를 해야 하는가?

무엇보다 시간은 금이다라는 말과 같이 단위테스트는 프로그래머의 삶은 편하게 해준다. 디버깅에 낭비하던 시간을 극적으로 줄여 준다.
 누군가 코드를 짤때 코드가 제데로 동작한다고 가정하고 개발을 하면, 그 이후에 코드가 제데로 동작하는지 확인 못한채 짜는 코드들은 문제는 늘어만 가게 된다. 어떤 코드 또한 돌아가지 않게 될 수도 있다. 처음에 짠 낮은 레벨의 코드가 문제가 생기면 그부분만 고친다고 해서 문제가 해결되는 것은 아니다. 이런 문제가 잇을 경우엔, 코드에 대한 확신을 얻어야 한다. 코드에게 무슨일을 하고 잇는지 물어봐야 하고 그 결과가 기대한 바와 같은지 확인해야 할 것이다. 이 간단한 개념이, 좀 더 나은 코딩을 위한, 가장 확실하고 가장 효과적인 기법인 단위 테스트의 핵심이다.

반응형

+ Recent posts