This isn't a pure TDD question. It isn't practical or
probably even possible to write the test code before
the regular code (you'll see why as you read). However
I'm looking for approaches that are as TDD as
practical and absolutely want an agile and test
intensive approach to the problem.
Given the expertise of these forums, someone here
probably has relevant experience or ideas.
A development team I'm working with is using a UML 2.0
tool called Rhapsody for development of real time C++.
As is common in the real time world, development is on
a different platform from the final deployment
platform. The application itself is very state based
and not data centric, sort of like telecommunications
applications. The application has a sizable existing
code base. The major point of the current development
is a migration to a new architecture.
Rhapsody seems to have achieved (or is close to
achieving) the computer science goal of executable
models. As most of us no longer care about our
compilers generated assembly language or machine code,
Rhapsody users care little about the generated C++
code.
Unlike some UML tools I've used (e.g. Rational Rose),
Rhapsody seems to generates pretty complete code (not
just headers). Rhapsody generated code handles lots of
complex state transitions with only a minor amounts of
tweaking (at least it looks like it does). Once the
code is generated (and possibly tweaked), it can be
run. The running behavior of the code feeds back into
the tool and is seen visually as dynamic changes in
the model. Rhapsody has some testing capabilities.
Tools like CPPunit obviously don't work testing
models.
So my question is: how does one test a model? How does
one ensure they are good and complete tests?
To complicate matters, my role is technical oversight
and I'm about a 5 hour drive from the development
team. I expect to see the team about once or twice a
month. Were I co-located, I could experiment until I
found something that worked with their existing tools
and process and coach the team hands on. We learn
together with active feedback as we improved the
testing process with iteration. As it is, I won't get
those opportunities and I need to be pretty close to
the mark, first time I introduce a testing approach.
Any ideas would be really appreciated,
Camille
__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo