임베디드에 적용된 TDD에 대해 좀 더 공부하기 위해 책을 하나 읽고 있다.
http://www.yes24.com/Product/Goods/8117533
임베디드 C를 위한 TDD - YES24
애자일 전문가인 제임스 그레닝은 임베디드 소프트웨어 개발에 테스트 주도 개발을 적용해야 하는 이유와 적용하기 위한 방법을 간결하게 보여준다. TDD를 소개하는 다른 책들과 달리 특별히 펌
www.yes24.com
TDD를 설명하는 다른 책들에서는 java, python 등을 이용해 TDD 예제를 보여주고 있었는데,
이 책에서는 C언어를 이용하여 예제를 보여주고 있다.
또한 임베디드 C에 적합한 개발을 할 수 있도록 설명을 상세하게 써놔서 임베디드 개발자이고 TDD를 도입하고 싶다면 이 책을 읽어보는 것을 추천한다.
이 책의 일부를 요약해보고자 한다.
TDD의 시작은 C 모듈이다.
모듈은 잘 정의된 인터페이스를 가지며 시스템을 구성하는 독립적인 일부분을 의미한다.
테스트 가능한 코드를 만들기 위해서는 모듈화가 필요하며 TDD의 결과물로서 모듈화된 설계를 얻을 수 있다.
TDD를 시작하기 위해 다음의 단계를 거치면 될 것 같다.
1. 요구사항 리스트 작성
2. 테스트 목록을 작성
- 요구사항에서 테스트 목록을 뽑아내도록 한다.
- 목록을 작성하는데 많은 시간을 쓰지 말 것.
- 테스트 목록의 목적은 무언가 잊어버리지는 않았는지 확인하는데 도움을 주기 위함.
3. 첫 테스트 작성
당연히 첫 테스트는 초기화가 올바른지를 테스트 하는 것으로 한다.
테스트를 위한 파일 추가 후 실패하는 것을 확인하면서 모든 것이 제 위치에 있음을 알게 된다.
일부러 실패하는 테스트 코드 작성 후 실패하는 것을 확인하면 그 다음으로 넘어가도록 하자.
테스트에 앞서 코드를 작성하지 마라.
"코드보다 테스트 먼저" 이 원칙을 고수함으로써 포괄적인 테스트와 철저히 테스트된 제품 코드를 얻을 수 있을 것이다.
TDD의 3 법칙. (by 밥 마틴)
http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd 참고
- 실패하는 단위 테스트를 통과시키기 위한 경우에만 제품 코드를 작성하라
- 실패하는 단 하나의 단위 테스트만 작성하라. 빌드 실패도 실패다.
- 실패하는 단 하나의 단위 테스트를 통과시킬 만큼만 제품 코드를 작성하라.