ABSTRACT

In order to carry out any form of failure analysis, whether Markovian, fault tree analysis, or failure mode, effects and criticality analysis, it is necessary to have an estimate of the failure rates of the components. International Electrotechnical Commission 61508 makes the assumption that, whereas hardware failures can occur at random, software failures are all systematic, representing problems with the design, rather than problems with the implementation. Large hardware companies keep a detailed history of return rates, and smaller companies use some of the publicly available table. With the possible exception of startups with no corporate history, all software companies have similar databases for their software. Even if people accept that software failure in a tested and shipped product is normally caused by Heisenbugs and that, by definition, those failures are statistical, they have the problem of assessing the failure rate of a particular software module.