Validation of Software under a Signal-Detection Theory Schema

The process of correcting errors in software appears at present to lack a general theoretical schema. Possible reasons for this are: (1) that software errors can be of fundamentally different types (e.g., errors due to incompatibility of source code with a given language-description; errors at run time; errors due to the “wrong output” being given); (2) that errors can have an existence that is ‘mputed’ rather than ‘discovered’; (3) that debugging tends to be seen more as a theory-driven practice than an empiricism-driven one (i.e., centered on mismatch between program performance and program context); and (4) that the theory of software science has yet to accommodate, in a fully satisfactory way, the human-cognitive processes that create, evaluate, and use software. A schema of debugging in respect of one type of error, namely that arising from failure in the program specification itself, i.e., failure in program validity, is put forward. In this schema, different program options are seen (individually) as acting fallibly in respect of different units of input data, and seen also (together) as being applicable within different logical expressions. The latter are referred to as ‘general tests’. A group of programs, serving to analyze the results of arbitrary attempts to tune (validate) a test-program is described. Last, a conjecture is offered as to the possible paradigmatic implications of the approach adopted for a science of information.