DART is an open-source, distributed, software quality system. DART allows software projects to be tested at multiple sites in multiple configurations (hardware, operating systems, compilers, etc.). Results from a build/test sequence are transmitted to a central server (i.e., the DART server) using standard internet protocols. The server produces concise dashboards, summarizing the current state of a software system. The dashboards link to detailed reports on inter- and intra- configuration results. Testing results are tracked over time, allowing developers to trace the history of development. Good examples of a DART dashboard are the ITK quality dashboard and the VTK quality dashboard.
DART consists of a server and several client sites. DART clients build and test a software project and submit build logs and test results to the DART server. (Note: DART includes both a server and client; CTest is another popular DART client.) DART clients encode build logs and test results in XML and transmit these reports to the DART server over the internet. The DART server summarizes the information from the clients and produces dashboards and reports.
The Dart dashboard (also known as a dartboard) server runs on a 24 hour clock, where each day a new dashboard is opened and closed. While a dashboard is open, DART accepts submission of nightly, continuous and experimental builds. Nightly builds are timestamped to a source code repository at a time specified by the project (the default is 11pm EST). Since the nightly builds are locked to a timestamp, they can actually be performed at any time during which that day's dashboard is open for submissions. Continuous builds are used to reflect the status of the code in the repository triggered whenever something in the repository changes. Experimental builds represent any other build/test sequence that is not locked to repository status. Experimental builds are used to report on a user's locally modified verion of the software.
The DART client can be controlled by CMake or Tcl. Therefore the DART client can execute on any platform supporting CMake or Tcl.
Setting up a DART server is difficult at the current time (see DART2 Project is addressing these difficulties and advancing the DART testing process.
Documentation, Tutorials and Examples
DART documentation is rather sparse at this time. Refer to the [DART web pages]. The book Mastering CMake has some information about DART and CMake, a DART client.
The DART copyright is held by the Insight Software Consortium. This copyright is an open-source, Berkely-style license. It allows unrestricted use, including use in commercial products. (The only exceptions are software modules found in the patented software directory.)
A new version of Dart is under development. The new version is a complete redesign of the Dart server. The new version is a single jar file which includes an embedded servlet engine and an embedded database. Communication to the Dart2 server is performed via xmlrpc. For more information, see Dart2Summary