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.
A Brief History of CDash
CDash has grown from the practical need to create simple, low-overhead software process tools that scale gracefully to a large size. These tools have emerged to support the development of several open source projects including VTK (The Visualization Toolkit), ITK (The Insight Segmentation and Registration Toolkit), ParaView (the Parallel Visualization Application), Slicer (a 3D medical image analysis tool), and BatchMake (a scriptable, distributed batch processing tool).
The beginnings of the Practical Software Process (PSP) epitomized by CDash were in the early 1990's with the development of VTK. As this system was created, it became clear that a regression testing system was needed to maintain the quality of the software. Ken Martin, one of the principle authors of VTK, established a rudimentary system that was run manually to periodically evaluate the state of the software. While this process enabled the rapid development of VTK, it was only run sporadically, typically in preparation for a release of the software. Although this approach worked well to identify software faults, it was often difficult to pinpoint exactly what software change had introduced a fault (due to the elapsed time between testing runs). Thus, some of the early lessons learned were that testing must occur frequently and on a regular basis.
The original VTK authors initially developed the software on their own time, with the permission from GE, while employees of GE Corporate R&D. Soon after the development of the initial regression testing process, a GE corporate program known as the Six-Sigma Process was introduced throughout the company. This quality initiative motivated the VTK authors, who were also members of the Computer Graphics and Systems Program at GE, to extend the software testing process in a variety of ways including:
Since that time, the PSP has continued its evolution toward becoming a comprehensive software process. In 1999, Dr. Terry Yoo at the National Library of Medicine established the ITK program, and had the foresight to fund the development of software tools as well as medical image analysis algorithms; from this work Kitware developed the cross-platform build tool CMake, and eventually CTest, a software testing client. While at GE, Bill Lorensen, Jim Miller and others developed DART, one of the earliest dashboard servers. Later DART2 was developed by Jim and Dan Blezek to address the installation and configuration issues of DART using Java-based web technologies. DART2, as well as the cross-platform packaging tool CPack, were developed as part of the NA-MIC (National Alliance of Medical Image Computing) initiative. CDash, the latest in this distinguished line of dashboard servers and extends the lessons learned from DART and DART2. CDash is also a response to the community's request for a PHP-based server that uses newer web tools such as Ajax. The CDash development was spearheaded by Julien Jomier of Kitware, with contributions from many others including Bill Hoffman and Ken Martin also of Kitware. In addition to receiving support from NA-MIC and ITK, CDash has also benefitted from the generosity of Sandia National Labs, who use Kitware's VTK and ParaView tools extensively in their own work.
Kitware's Practical Software Process
Kitware's Practical Software Process has grown organically over more than a decade of developing large-scale, scientific software systems such as VTK and ITK. It is a low-overhead, streamlined process that results in high-quality software systems. Rooted in the concepts of extreme programming and test-driven development, the PSP has benefited from the contributions of many dozens of individuals scattered around the globe. Besides the GE, Kitware, VTK and ITK communities and sponsors like NA-MIC and Sandia National Labs, many individuals like Alexander Neundorf (assisted with the CMake/KDE port) and Andrew Maclean (systems evaluator and tester) at the University of Sydney have and continue to contribute to the development of the PSP.In recent years the PSP has grown to consist of several tools developed by Kitware and its partners, as well as external tools that have been adopted into the software process. These tools include: