목차
1장 테스트 주도 개발
1.1 왜 TDD가 필요한가?
1.2 테스트 주도 개발이란 무엇인가?
1.3 TDD 물리학
1.4 TDD 마이크로 사이클
1.5 TDD의 이득
1.6 임베디드 환경에서의 이득
1부 시작하기
2장 테스트 주도 개발의 도구와 관례들
2.1 단위 테스트 하니스란?
2.2 Unity - C로만 작성된 테스트 하니스
2.3 CppUTest: C++ 단위 테스트 하니스
2.4 단위 테스트는 크래시를 일으킬 수 있다
2.5 네 단계 테스트 패턴
2.6 지금까지 우리는
3장 C 모듈 시작하기
3.1 테스트 가능한 C 모듈의 구성 요소
3.2 LED 드라이버가 하는 일
3.3 테스트 목록 작성하기
3.4 첫 테스트 작성
3.5 먼저 인터페이스를 테스트 주도로 개발하기
3.6 점진적 진행
3.7 테스트 주도 개발의 상태 기계
3.8 테스트 FIRST
3.9 지금까지 우리는
배운 것 적용하기
4장 완료까지 테스트하기
4.1 단순하게 시작해서 솔루션 키워가기
4.2 코드를 깔끔하게 유지하기 - 자주 리팩터링하기
4.3 완료될 때까지 반복하기
4.4 완료 선언 전에 한 걸음 물러서기
4.5 지금까지 우리는
배운 것 적용하기
5장 임베디드 TDD 전략
5.1 타깃 하드웨어 병목
5.2 듀얼 타기팅의 장점
5.3 듀얼 타기팅의 위험 요소들
5.4 임베디드 TDD 사이클
5.5 듀얼 타깃 비호환성
5.6 하드웨어로 테스트하기
5.7 빨리 가기 위해 속도 늦추기
5.8 지금까지 우리는
6장 좋아, 하지만……
6.1 우린 시간이 없어요
6.2 코드 작성 후에 테스트를 작성하면 왜 안 되나?
6.3 테스트를 유지 보수해야 할 것이다
6.4 단위 테스트가 모든 버그를 찾아낼 수는 없다
6.5 빌드가 오래 걸린다
6.6 우리에겐 기존 코드가 있다
6.7 메모리 용량이 제한되어 있다
6.8 우리는 HW와 상호작용해야 한다
6.9 C를 테스트하는데 왜 C++ 테스트 하니스가 필요한
출판사 서평
엄격한 한계와 물리적 제약 조건, 마이크로초, 킬로바이트 같은 진짜 ‘엔지니어’의 세계에 살고 있는 임베디드 개발자들은 TDD가 자바(Java나 루비(Ruby 같은 객체 지향 언어를 사용하고, 자원이 풍?족한 분야에서나 적용할 수 있는 방법이라고 생각한다.
애자일 전문가인 제임스 그레닝은 임베디드 소프트웨어 개발에 테스트 주도 개발을 적용해야 하는 이유와 적용하기 위한 방법을 간결하게 보여준다. TDD를 소개하는 다른 책들과 달리 특별히 펌웨어를 개발하는 개발자를 대상으로, 온전한 C 예제로 만든 상세한 코드로 설명을 전개하...
엄격한 한계와 물리적 제약 조건, 마이크로초, 킬로바이트 같은 진짜 ‘엔지니어’의 세계에 살고 있는 임베디드 개발자들은 TDD가 자바(Java나 루비(Ruby 같은 객체 지향 언어를 사용하고, 자원이 풍족한 분야에서나 적용할 수 있는 방법이라고 생각한다.
애자일 전문가인 제임스 그레닝은 임베디드 소프트웨어 개발에 테스트 주도 개발을 적용해야 하는 이유와 적용하기 위한 방법을 간결하게 보여준다. TDD를 소개하는 다른 책들과 달리 특별히 펌웨어를 개발하는 개발자를 대상으로, 온전한 C 예제로 만든 상세한 코드로 설명을 전개하고 있다.
또한 이 책은 TDD를 얘기하기는 하지만 그보다 훨씬 더 많은 얘기를 한다. 즉, 이 책은 C로 고품질의 임베디드 소프트웨어를 빠르고 안정적으로 개발하기 위한, 훨씬 더 완벽하고 수준 높은 프로페셔널한 방법을 알려 준다.
[ 추천사 ]
순수 임베디드 배경을 가진 나는 TDD에 대해 회의적이었다. 하지만 이 책을 옆에 끼고 난 다음에는 TDD에 뛰어들 자신이 생겼다. 심지어 디바이스 드라이버나 저수준 코드에 대해서도 TDD를 적용할 수 있을 것 같다.
- 마이클 바(Michael Barr, 『Programming Embedded Systems』와 『Embedded C Coding Standard』의 저자
사실 이 책의 제목은 잘못되었다. ‘C 임베디드 시스템 공예(Cra