Opening the question: Radiance test suite

As the development of Radiance continues, and we contemplate major changes in the code base, as well as cross-platform operation, it seems more and more necessary to have a test suite, so that, at least, obvious problems are caught before release.

In broad outline, it seems to me that unit tests--tests of particular software modules--and system tests--tests of whole programs, and program groups--are needed. I personally would also choose to do usability testing for user interface development, as well.

Some of these can be completely automated, but it is going to be very hard to automate those tests that involve user interaction; a scripted test will often not provide the behavioral variability of a human operator.

Going by source directory, Radiance can be broadly broken down like this:


Dir. Component
cal Function definition language
common Common library routines
cv Special-purpose object generators--ies2rad, for instance
gen Modelling language tools: gen*
hd The holodeck
meta Plotting language and tools
ot Octree generation and manipulation tools
px Conversion, post-processing, and viewing tools
rt Rendering core--rview and rpict.
util Rendering scripting utilities

I've been using the cabin scene in the objects directory as rough system tests for some of the scripting utilities, the rendering core, and the holodeck. Running it, I am assured that, at least, I have not introduced any outright crashes in my work on the Radiance core, but it really is not enough. I think a test scene that contains all possible object types is called for, as well as tests for individual objects. But there's a lot more to do--probably test plans and designs for test utilities are needed for each component. Then, of course, tests must be written and, finally, they must be run before each major release on each supported platform. There's a lot of grunt work in this, and I don't want to do it all--I don't want to spend that much time, and I would end up hating Radiance.


For some introductory information on testing practices, I refer anyone interested to the FAQ, <>.