I tend to like Boost.Test more. The only advantage (or disadvantage) of CppUnit is that it is a JUnit port. Hence if you know JUnit already learning CppUnit is easier. But then again, either of them are not hard to learn. I prefer Boost.Test because: 1. It is more flexible in terms of test case arrangements, you can use free functions, classes, whatever. 2. BOOST_CHECK and BOOST_REQUIRE (CppUnit does not provide anything similiar to BOOST_CHECK) 3. Boost framework correclty reports all non C++ exceptions (memory violations, division by zero etc.) while in CppUnit you get very helpful "Unknown exception" message. 4. Boost tools (CHECK, REQUIRE etc) more robust and provide better reporting capabilities (for instance you can check if two containers are equual) 5. CppUnit is no longer evolves, and it certainly misses some functionality, and has some bugs. I am sure this is not a full list, I just switched from CppUnit to Boost.Test and my Boost.Test knowledge is not thorough enough. Amoung things I am missing in boost.test -- ability to call test suites by name. Well to be fair, CppUnit does not provide such functionality out of the box either. Also it is planned for next version of the Boost.Test. --Kirill