The matches obtained with forensic software usually have far reaching implications, whether it is for humanitarian or criminal cases. It is therefore of utmost importance that the results are reliable. We have employed several mechanisms to ensure this, both during and after development.
During development, the results of Bonaparte′s computing engine were constantly cross checked with the results of the same computations performed by independent researchers using the mathematical software programs Matlab and Mathematica. This way we made sure that the computed results are in agreement with the theory.
Smaller parts of Bonaparte—such as subroutines for example— were verified during development using the so-called unit tests. After each modification of the source code these parts were tested to verify that they still executed as intended.
The cross checking and unit tests of course only tests parts of the system, and not the system as a whole. In order to verify that Bonaparte functions according to the specifications, a set of validation tests was developed. The aim of this was to test all aspects of the system (handling of pedigrees, dealing with failed alleles, dealing with population statistics, inbreeding etc) in such a way that any deviation from the specifications would be detected. The scenarios that were used for this system validation are documented and published in Forensic Science International: Genetics.