A different approach might be to look at a tool like Tvec with does model driven test generation (google on software test vector generator). I have not heard of Tvec working with rhapsody, but it does have a bridge to MatrixX and Simulink. Besides Tvec, tools such as SCADE do test generation based on models. Both these tools are out of the aircraft/avionics controls world and I've heard about similar tools in the automotive world, though I know less about them. Basically the idea is to automatically generate tests directly from the models, so if the models change, you just regenerate and rerun your tests. These tools aren't free, but I have seen groups using them with some success. They are good at verification (does model match code and can you trace to requirements) and testing certain properties (coverage, MCDC, data boundary, etc), but leave validation to other activities.
-----Original Message-----I have seen rhapsody but not used it. So I may be a bit off base, but what
From: James Grenning [mailto:grenning@...]
Sent: Tuesday, January 25, 2005 11:57 AM
To: AgileEmbedded@yahoogroups.com; testdrivendevelopment@yahoogroups.com
Subject: RE: [AgileEmbedded] Has anyone ever tested executable models?
I saw of their testing capabilities is that an engineer could walk the
system through its paces and record the interactions, and later replay them
to make sure things still work. Interactions were in the form of sequence
charts. This approach has the same kind of problem that a GUI based test
tool has. As minor changes to the presentation occur, may tests break. I
suspect Rhapsody's test approach may have the same problem. Minor changes
would invalidate the recorded sequence diagrams.
Can you access an API on your application? Could you drive tests in through
that API? You could potentially use Fitnesse to drive the high level tests.
I worked with a team using Rational. It seemed to slow them down. To speed
things up on the team they started adding tests. They used CppUnitLite to
test the generate code. If you can access the state machine APIs you could
test the state machines with CppUnitLite or Fitnesse.
> -----Original Message-----
> From: Camille Bell [mailto:cpbell1@...]
> Sent: Tuesday, January 25, 2005 12:02 PM
> To: testdrivendevelopment@yahoogroups.com; AgileEmbedded@yahoogroups.com
> Subject: [AgileEmbedded] Has anyone ever tested executable models?
>
>
> 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
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>