Description and Documentation
CTest is a testing tool distributed as part of CMake. It serves as a client to the DART test server (see also the [http://public.kitware.com/Dart/HTML/Index.shtml DART web page). CTest's role is to control the execution of tests and push the results to DART. DART then displays the results of these tests on the testing dashboard. Projects that are configured with CMake are easily tested with CTest.
CTest and DART form the core of the NAMIC test-driven development (TDD) process. This process facilitates agile programming by supporting a continuous feedback look between user, developers and test results. As the this figure shows, CTest is used to test code found in a source code repository (i.e., CVS or SVN), push the results to DART, where the results are viewed by developers possibly distributed around the world. Developers then make corrections to code or necessary modifications to insure that the dashboard stays "green" and the code quality stays high.
A rigorous testing process such as that practiced by NAMIC is critical to the stability and robustness of software systems. Without continuous testing, changes introduced into the system can easily introduce unanticpated side effects and/or bugs. Over time this can produce brittle code resulting in frustrated users. Worse yet, complex algorithms may behave differently, possibly producing inaccurate or even incorrect results. Another advantage of continuous testing is that bugs are easily discovered and repaired when changes to the source code occur. Waiting to fix bugs at the point of software release can be a difficult endeavor due to the loss of causility between code check-in and software fauls.
Additional usage details for it can be found here.