views:

396

answers:

3

I am using the Rhapsody modeling tool to design multi-threaded C++ embedded applications. What unit testing approaches and tools are currently being employed for unit and functional test? Is anybody using the companion unit testing tool for Rhapsody (Test Conductor)?

A: 

I have chosen to not use the Test Conductor tool due to problems with false positives on tests and test execution efficiency.

I am currently using a combination of CppUnit and some Rhapsody specific extensions to test our codebase. gcov and lcov are being used to verify code coverage, and Rhapsody is generating all of the tests as well as the code under test.

This seems to be a very good match for unit testing as well as functional tests, and since the tests are in the model, it is easy to get requirements traceability.

Jeremy Mayhew
A: 

There is an integration of Cantata++ and Rhapsody and it is possible carry out the tests by this product. Cantata++ is a very powerful tool but depending on the complexity of your model, using Cantata++ may be tedious.

alisami
Any eperience with using Cantata++ in a production environment?
Jeremy Mayhew
+1  A: 

Our team attempted to use VectorCAST with Rhapsody with little success. Given the complexity and newness of Rhapsody, tackling another complex tool was not worth our while.

Also, from what I can tell, VectorCAST for C++ works analyzes units through their source files, so if any C++ magic happens in any of your header files (templates, macros, aliases, implementations in headers, etc.), you'll be in for a lot of headaches. It is possible to write workaround code in the tool to circumvent most issues, but for sufficiently complicated units, you're better off writing your own test cases the old fashioned way (by hand).

For our acceptance tests, we ended up creating an in-house Java application that runs our acceptance test cases.

thebretness
Interesting... right now we are moving along very well with a Rhapsodifed CppUnit framework to drive our tests and now using gcov to do the coverage analysis (with some special magic sprinkled in to deal with template coverage and branch analysis...) Free seems to be the way to go.
Jeremy Mayhew