Deep Agile Embedded Brain Storm

Let’s say you were an embedded systems developer, and you were planning on attending a conference like the Deep Agile Embedded.

What questions would you hope you could get answers for at the conference?

What if you already knew it all but were sending your boss, co-worker, or CEO who needed to learn more, what would you want them to hear about?

Would you want to do some hands on Test Driven Development?

Here are some of the questions we have so far:
Continue reading

No time for proactive tests

Every now and then I get a new automatic update. I usually just press install. Today I browsed the release notes for the Adium IM client update (below). There are six new features, denoted with a “*”. The rest (about 30 of them) are fixes, meaning something was broken. These guys must be too busy to proactively test Adium. Test Driven Development probably would not work for them :-)
Continue reading

TDD Stepping Stones

Imagine you are trying to cross a mountain stream. You could make a running leap and get to the other side. Sometimes that works, other times you get wet. When there are rocks sticking out of the rushing water, you can step from rock to rock and get across the stream without getting wet. Sure there are some streams you can jump across, go ahead and jump. Other streams require a more careful approach.
Continue reading

Learning Tests are Free!

My son is studying computer science at U of I in Chicago. He is taking an operating systems class and has to do some projects in C. (Some things change, some things stay the same.) He had an internship over the last 8-9 months and was doing TDD in Java. So he might be in the early stages of a test infection.

He has not done much C so he’s got some learning to do. I thought I better show him CppUTest. He could use it for a play ground to learn some of the subtleties of C, as well as use TDD.
Continue reading

Crashing Your Way to Great Legacy C Tests

Adding tests to legacy C or C++ code can be a challenge. Code not designed to be tested won’t naturally be testable. Dependencies will be unmanaged and invisible. Getting that first test written will hurt, a lot. Don’t despair! The first test is the hardest, but subsequent tests are much easier.

Knowing what to do and what to expect, when you start adding tests to your legacy code, can ease the journey. This article will give you an idea of what to expect when getting that first bit of C or C++ into the test harness.
Continue reading

TDD and the Big Framework Part II

In
TDD next to the Big Framework
we looked at a design that helps to isolate your code from the BigFramework. That article only showed half the story. Lot’s of times the big framework has the attitude “don’t call us, we’ll call you” built right in. Your code has to register somehow with the framework, then when you ask it to do things, it calls you back, asynchronously, with the result.
Continue reading

TDD next to the Big Framework

TDD next to the Big Framework

We’re trying to create a new executable process that plugs into a pretty big services framework for a telecom system. Our code and framework are in C++. We’re test driving our design. Within a few tests, we were confronted with having to inherit from a framework class. No big deal, or so we thought. Soon the dependency chains became evident. Kind of like this picture, but worse. Continue reading

Bug Fixes and TDD

Code has bugs. Finding a bug’s hiding place is a challenge. And, you know that killing a bug often breaks code in unexpected ways, hatching more bugs to discover, hunt down, and kill.

If you created your whole code base using TDD, you could prevent many of these new bugs. But you have legacy code; code without tests. How should the professional software Orkinman apply DDT, I mean TDD, to bugs in existing code. (Orkin (r), do i have to do this in a blog?)
Continue reading