As software increasingly permeates the various fields of science, the use of new digital technology gives rise to some serious issues. Although analogue software has its problems with errors, it does not carry with it the same level of risk as digital in terms of the potential bugs in the system which are more complex and variable and can be very tricky to spot.
How Common Are Digital Software Bugs?
A recent study by David A. W. Soergel in the F1000 Research journal points out that software bugs are very common, and that even at a conservative estimate an error rate of at least one per 1000 lines of code is to be expected. Given that software programs typically have several thousand lines of code, it is fairly safe to assume that numerous defects will remain, even after a checking and debugging process.
Bugs in code may or may not have a meaningful impact on the result. There is also the possibility that errors may be spotted by the scientist should an implausible result be created. Soergel has created a formula to attempt to deal with this. The formula takes into account the total lines of code and probability of error within it, the probability that it will have a meaningful impact on the result and the probability that the result appears plausible to the scientist. The estimates are very speculative and vary widely according to the values conjectured; however, his conclusion is that it is conceivable that there may be a high number of errors in results as a consequence of software imperfections. This is obviously of huge concern to the scientific world, where there is very little room for error.
What Can Be Done About Software Errors?
Thorough software testing has an important part to play here. Using an automated software testing provider such as www.mytesters.com will give you your best chance of tracking down bugs. This kind of software testing is carried out by experienced professional testers in the field who are trained to spot as many bugs as possible.
As digital software is increasingly used within the scientific community for ever more complex code, and as researchers write more programs, it would seem critical that further research takes place to look at this issue in greater depth.