A DART test consists of several key pieces: (1) a set of files to install on each node, (2) an optional preeecution script, (3) scripts that run at specific times on subsets of nodes (e.g., a big "run" script that runs on all nodes), (4) a postexecution script and (5) a reset script (which cleans out a node and allows Emulab experiments to be reused). In addition, each test allow requires a unique name, the name of your Emulab project, a unique Emulab experiment name, and several other details. We'll work through an example below to make this clearer. Also, while this may sound like a lot of work, a significant fraction of the above is usually common to multiple tests. Thus, writing a new test often requires just writing the "diff".