Test-Driven Development for Embedded C
by: James W. Grenning
Published | 2011-04-06 |
---|---|
Internal code | jgade |
Print status | In Print |
Pages | 354 |
User level | Intermediate |
Keywords | tdd, agile, c, embedded, testing, qa, test-driven, test driven development, test first design, agile methods, debugging, bugs, programmer, programming |
Related titles | • Practices of an Agile Developer + 978-0974514086 |
ISBN | 9781934356623 |
Other ISBN |
Channel epub: 9781680504880 Channel PDF: 9781680504897 Kindle: 9781680501155 Safari: 9781941222997 Kindle: 9781680501155 |
BISACs | COM051060 COMPUTERS / Programming Languages / CCOM051230 COMPUTERS / Software Development & Engineering / GeneralCOM051230 COMPUTERS / Software Development & Engineering / General |
Highlight
Still chasing bugs and watching your code deteriorate? Think TDD is only for desktop or web apps? It’s not: TDD is for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.
Description
TDD is a modern programming practice that all C developers need to know. It’s a different way to program—unit tests are written in a tight feedback loop with the production code. You get valuable feedback every few minutes. You find mistakes before they become bugs. You get early warning of design problems. You get immediate notification of side-effect defects. You get to spend more time adding valuable features to your product.
James is one of the few experts in applying TDD to embedded C. With his years of training, coaching, and practicing TDD in C, == C++, == Java, and C# he will lead you from being a novice in TDD to using the techniques that few have mastered.
This book is full of code written for embedded C programmers. You don’t just see the end product, you see how code and tests evolve. James leads you through the thought process and decisions made each step of the way. You’ll learn techniques for test-driving code right next to the hardware, and you’ll learn design principles and how to apply them to C to keep your code clean and flexible.
To run the examples in this book, you will need a C/== C++ == development environment on your machine, and the GNU GCC tool chain or Microsoft Visual Studio for == C++. ==
Contents and Extracts
- Test Driven Development
- Getting Started
- Test Driving Tools and Conventions
- Starting a C Module
- Testing Your Way to Done
- Embedded TDD Strategy excerpt
- Yeah but…
- Testing Modules with Collaborators
- Introducing Test Doubles
- Spying on the Production Code excerpt
- Runtime-Bound Test Doubles
- The Mock Object
- Design and Continuous Improvement
- SOLID, Flexible, and Testable Designs
- Refactoring
- Adding Tests to Legacy Code
- Test Patterns and Antipatterns
- Closing Thoughts
- Appendixes
- Development System Test Environment
- Unity Quick Reference
- CppUTest Quick Reference
- LedDriver After Getting Started
- Example OS Isolation Layer