3 Gordon Drive, P.O.Box 1347 Rockland, Maine 04841 U.S.A.
Find Tools for Your Chip


 

© 2004 Avocet Systems, Inc.
Call Us Today at 207-596-7766 ("Picton Press")
Avocet Systems, Inc. : The Complete Solution for Embedded Systems Development Tools
Embedded Update
Testing

There is no single short term goal more important to a firmware developer than completing a module.

Completing means writing, testing and documenting the code.

Writing means producing a body of code that accomplishes its design goals, and that follows the lessons of modern software design. Cutting through all of the hype around OOP, one critical lesson we all need to follow now, is to totally encapsulate our code and data into each function. The days of global variables should be long gone.

Documenting means different things to different people, depending on contractual requirements and corporate standards. Surely, though, any code whose operation isn't clear from the comments is not documented.

Testing means a complete functional test. When you are done, that module works - FOR SURE. Testing is where nearly every firmware project breaks down.

Testing has neither the glamour nor the intellectual challenge of creating new code, yet is at least as important.

Testing avoids embarrassment. When you pass that function off to a colleague, you'll know that it really works over the entire domain of input conditions.

Testing gives you confidence. God knows we've all created mountains of poorly tested code. Adding another function is like adding to a house of cards. We know, deep in our souls, that the foundation is unstable and will create no end of problems... in the very near future. Sufficient testing creates trust in the code.

Though Demming and other quality gurus tell us we cannot test quality into a product, surely the software world has taught us that inadequate testing is a clear path to failure.

The three most important things to consider in selecting real estate are location, location, location. In firmware development it's testing, testing, testing.