CDashSummary

From NAMIC

Description

CDash is a dashboard testing server distributed along with CMake. CDash is an open source, web-based software testing server. CDash aggregates, analyzes and displays the results of software testing processes submitted from clients located around the world. Developers depend on CDash to convey the state of a software system, and to continually improve its quality. CDash is a part of a larger software process that integrates Kitware's CMake, CTest, and CPack tools, as well as other external packages used to design, manage and maintain large-scale software systems.

CDash is the latest in a distinguished line of dashboard servers (i.e., DART and DART2) that extends the lessons learned from these systems. In particular, CDash is designed for scalability and is a response to the community's request for a PHP-based server that uses newer web tools such as Ajax.

CTest and CDash 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, CDash aggregates the results of testing processed control by the CTest testing client. Results aggregated by CDash 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 NA-MIC 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 causality between code check-in and software faults.