In general, software qualification, as discussed below, requires vigorous testing along with its associated hardware. This testing needs to include the actual operation of the field instruments (valves, etc.), as well as the recording and storage of the data generated.7 Any changes in the contents of the systems (including the wires that connect the field instruments to the computer) need to be included in the change control program (see chapter: The Validation Life Cycle and Change Control).
Software qualification is usually separated into two distinct activities; the structural testing and the functional testing. The structural testing includes the vendor audit, review of the code, and checks on the integrity of the code, for example, so that there is no dead code (ie, nonoperational code that may cause a “crash” or data error). The functional testing is just as the name implies, testing the functionality of the operation of each part or software function.
Basic CSV8—Black Box—Gray Box—White Box Testing
There are three methods of testing computer control or automated systems. These are referred to as “White box,” “Gray Box,” and “Black Box” testing. The difference between “white” and “black” box testing is in the level of functional testing of the software. Black box testing is primarily functional testing only. When carrying out black box testing the operation of each portion of the software is tested. White box testing includes complete structural testing ie, review of the source code (of the software program) as well as the means of code development. In addition, the testing establishes that each function is necessary for the correct operation of the unit(s). Typically, the black box testing grows exponentially with the amount of I/O while the white box testing grows linearly.
A middle approach is “gray box” testing. As the name implies this is between the full white box and black box testing programs. Some structural tests will be performed yet the emphasis is on functional testing. Most equipment that contains a PLC or other controller is usually tested using gray box or black box testing while the higher-level control systems usually undergo more white box testing and more functional testing.