Testing Setup

Testing plays a vital role in the ITK development process. The CDash testing system is used to run tests and post results on the ITK quality dashboard. The dashboard is important to developers and users alike. Developers use the dashboard to ensure that code contributions function correctly across multiple hardware and software platforms, and to ensure that contributions are consistent with the existing code base. Users can view the dashboard to determine the state of the system at a particular point in time, possibly deferring a decision to update the software until the code stabilizes.

dashboardThe testing dashboard is divided into several parts. The nightly builds reflect the state of the system at a particular point in time during the previous night (i.e., 9:00pm EST). The continuous builds run periodically in response to developer check-ins and show the status of the code almost instantaneously. If errors occur during the continuous build, an email is sent to the offending developer(s). Experimental builds may be submitted by anyone from any site and are used to evaluate local changes to the software. Coverage refers to the percentage of the code that is actually executed. Valgrind is a memory-checking facility.

There are dozens of links corresponding to Git check ins (called updates), previous days' results, build warnings and errors, and the test resultss. These links can be followed to determine problems with the system and to communicate with other developers and users.

As part of the refactoring of ITKv4, a new testing workflow was added to ITK to enable the testing of patches submitted by the community to the code review system Gerrit. This new system of testing patches works in a distributed way and it is referred to as 'cdash@home'.