반응형
근래 TDD에 관심을 갖게 되었다. 꾀 효율적인 개발 기법인데 안타까운 점은 이러한 것을 쓰는 회사나 팀이 많지 않을것 같아서, 개인적으로 공부하지 않는한 배울 기회가 별로 없을 것 같다. 나는 단위테스트에 대해 공부하다가 알게 되었는데 꾀 좋다. 단순한 테스트 기법이 아닌 좋은 분석기법이자 설계기법이다.
기존에 프로그래머는 개발을 먼저 하고 그것을 테스트하는 코드를 만들게 됀다.
회사에서 역시 잘 돌아가나 확인하고 잘 돼네?라고 끝나기도 한다.
지금 생각해보면 정말 체계적이지 못한 방법이다. 나도 아직 이 테스트주도개발이 익숙하지 않지만 숙달시켜보려고 한다. 안타까운 점은 체계적이고 정도를 지키는 회사의 부서가 아니라면 이 방식을 계속 쓰기가 힘들것 같다.
1. 무엇을 테스트할 것인가 생각한다.
※ TDD 책에서..
※ 책
1. 테스트주도개발
TDD의 창시자가 썼다는 책입니다. 2005년도에 나왔군요. 중간중간 파이썬으로 예제코드가 나와있습니다.
[1] TDD 방법 (http://blog.naver.com/kimig82?Redirect=Log&logNo=80121320519)
[2] 꽃녀의 도전, TDD방법 및 AsUnit, FlexUnit 소개 (http://2rang.tistory.com/51)
[3] 나는 개발자, 테스트 주도 개발 (http://soupim.tistory.com/44)
기존에 프로그래머는 개발을 먼저 하고 그것을 테스트하는 코드를 만들게 됀다.
회사에서 역시 잘 돌아가나 확인하고 잘 돼네?라고 끝나기도 한다.
지금 생각해보면 정말 체계적이지 못한 방법이다. 나도 아직 이 테스트주도개발이 익숙하지 않지만 숙달시켜보려고 한다. 안타까운 점은 체계적이고 정도를 지키는 회사의 부서가 아니라면 이 방식을 계속 쓰기가 힘들것 같다.
※ 테스트 주도 개발(Test Driven Development)
- TDD는 테스트 기술이 아님
- TDD는 분석 기술이며, 설계 기술
- 개발의 모든 활동을 구조화하는 기술
- 자동화된 테스트로 개발을 이끌어 가는 개발 방식
※ TDD 방식
1. 작성해야 하는 프로그램에 대한 테스트를 먼저 작성
2. 테스트를 통과할 수 있도록 실제 프로그램 코드를 작성.
※ TDD 방식 순서
1. 무엇을 테스트할 것인가 생각한다.
2. 테스트를 작성한다.
3. 테스트가 실패하게 만든다.
4. 테스트를 통과하는 코드를 작성한다.
5. 코드를 리펙토링한다. (리펙토링 과정에서 물론 테스트를 계속 통과해야만 한다.)
6. 테스트코드 또한 리펙토링한다.
7. 구현해야 할 것이 있을 때까지 위의 작업을 반복한다.
※ Why TDD ?
1. 검증받은 코드, 자신있는 코드가 되기 때문
2. Simple한 코드를 만들기 위한 가장 효과적인 방법
※ TDD 책에서..
* 세 항목만으로 동일한 설계와 구현을 이끌어낼 수 있다면 굳이 항목을 열 개나 나열할 필요는 없다.[3]
* 확실히 하지 말아야 할 일이 있는데, 그것은 코드 전체를 위한 테스트를 한꺼번에 다 만들고, 코드 전체를 한 번에 리팩토링하는 일이다.[3]
※ 책
1. 테스트주도개발
TDD의 창시자가 썼다는 책입니다. 2005년도에 나왔군요. 중간중간 파이썬으로 예제코드가 나와있습니다.
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788991268043&orderClick=LAG)
2. 테스트 주도 개발 TDD 실천법과 도구
국내분이 쓰셨고 2010년도에 나온 책이네요. 좋은지 아닌지는 모르겠지만, 어쨌든 책은 창시자가 쓴 책의 번역본과 이 책 뿐인것 같네요.
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788979147261&orderClick=LAG)
※ 기타
TDD말고 행위주도개발(Behavior-Driven Development)[4]이라는 방법도 있네요. 어쨌든, TDD는 참 좋은 방법이긴 하지만 활용한다는 것은 쉬운건 아니겠죠, 특히나 국내처럼 촉박한 개발시간에 쫓기다보면 방법이고 뭐고간에 빨리 끝내고 퇴근할 생각밖에는 없게 되겠죠. TDD와 같은 체계적인 방법을 사용할 수 있는 성장된 국내 IT회사들의 모습을 희망해봅니다.
Reference2. 테스트 주도 개발 TDD 실천법과 도구
국내분이 쓰셨고 2010년도에 나온 책이네요. 좋은지 아닌지는 모르겠지만, 어쨌든 책은 창시자가 쓴 책의 번역본과 이 책 뿐인것 같네요.
(http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788979147261&orderClick=LAG)
※ 기타
TDD말고 행위주도개발(Behavior-Driven Development)[4]이라는 방법도 있네요. 어쨌든, TDD는 참 좋은 방법이긴 하지만 활용한다는 것은 쉬운건 아니겠죠, 특히나 국내처럼 촉박한 개발시간에 쫓기다보면 방법이고 뭐고간에 빨리 끝내고 퇴근할 생각밖에는 없게 되겠죠. TDD와 같은 체계적인 방법을 사용할 수 있는 성장된 국내 IT회사들의 모습을 희망해봅니다.
[1] TDD 방법 (http://blog.naver.com/kimig82?Redirect=Log&logNo=80121320519)
[2] 꽃녀의 도전, TDD방법 및 AsUnit, FlexUnit 소개 (http://2rang.tistory.com/51)
[3] 나는 개발자, 테스트 주도 개발 (http://soupim.tistory.com/44)
[4] UMC와 함께 하는 닷넷 플랫폼 이야기 (http://blog.powerumc.kr/221)
[5] 행복한 아빠, 테스트 주도 개발 -> 테스트 우선 개발 (http://greatkim91.tistory.com/157)
[5] 행복한 아빠, 테스트 주도 개발 -> 테스트 우선 개발 (http://greatkim91.tistory.com/157)
반응형
'Devlopment > Unit Test' 카테고리의 다른 글
[PowerMock] Class.class mock 처리하기 (0) | 2017.11.27 |
---|---|
PowerMock 테스트, 객체 생성시 예외 발생 (0) | 2017.11.19 |
java Reflection을 이용한 테스트 (0) | 2017.11.19 |
JUnit – 파라미터 테스트 (Parameterized Test) (0) | 2017.11.18 |
Powermock maven 설정 (0) | 2017.11.07 |
단위테스트. JUnit (0) | 2011.05.20 |