This software runs a suite of arbitrary software tests spanning various software languages and types of tests (unit level, system level, or file comparison tests). The dtest utility can be set to automate periodic testing of large suites of software, as well as running individual tests. It supports distributing multiple tests over multiple CPU cores, if available.
The dtest tool is a utility program (written in Python) that scans through a directory (and its subdirectories) and finds all directories that match a certain pattern (directory name starts with “test_” or “test-”) and then executes any tests in that directory as described in simple configuration files. The tests are completely arbitrary and are not tied to any specific programming language. A variety of tests is available to support comparing test output files with pre-validated versions. Dtest can be used in an automated testing environment or by an individual software developer to manually create or maintain individual tests. Dtest accumulates test results in data files that can be used for reporting test results by email or on a Web site.
At the time of creation, only unit-level testing utilities such as Junit, CppUnit, etc. existed that focused on tests for a specific language. The dtest utility generalizes these capabilities to arbitrary types of tests.
This work was done by Abhinandan Jain, Jonathan M. Cameron, and Steven Myint of Caltech for NASA’s Jet Propulsion Laboratory.