A very important part of software design is software quality assurance. This is a process to make sure a program works and doesn't have any glaring bugs. This is a part of software development that many open-source projects neglect; one prominent open source program has, in its FAQ, a point-blank declaration that the writer of the program finds SQA boring, so the program hasn't had any SQA testing.
Indeed, the number of bugs I have experienced with Ubuntu shows that there appears to be a lack of SQA testing all around. It doesn't help that Debian and Ubuntu have policies and bureaucracy that result in many packages being outdated versions of programs with bugs long-since fixed.
SQA testing is important. It gives a program that professional polish that makes commercial software more pleasant to use than a lot of open-source software.
I am now in the process of building a number of SQA tests for Deadwood. Back in 2007, I made a few basic tests then stopped working on them; now that Deadwood has months of real-world testing behind it and looks pretty stable, I've gone back to some more formal testing.
These tests need MaraDNS to run; MaraDNS is used as an authoritative server to have Deadwood get responses from upstream authoritative servers. To run the tests, I put the deadwood-Q-date files in the MaraDNS directory for the latest MaraDNS snapshot.
I have revamped the basic test to work with current versions of Deadwood; this test and the basic TCP test work fine.
My plan this week is to go through the other tests and make sure they work and are stand alone. One test I looked at, for example, assumes that MaraDNS is running; I will update this test to start MaraDNS itself with appropriate authoritative data.
Once I do that, I will make tests for all of the Deadwood parameters where it's feasible to make a stand-alone test.
A snapshot showing this work is available at this link