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.



The 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 responsible 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 results. 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 ITKv5, a new testing workflow was added to ITK to enable the testing of pull requests (PRs) submitted by the community to GitHub. This new system of testing patches mostly executes in the “cloud” provided by Azure.

To set up a nightly build on your own machine, instructions are available on the Wiki.