Программа считается правильной, если она не содержит ошибок. Отсюда представление о том, что число ошибок в программе является наиболее естественной мерой ее надежности. Другой взгляд на надежность ПО исходит из утверждения, что количество ошибок в программе не имеет никакого отношения к ее надежности:
1) Число ошибок в программе – величина «ненаблюдаемая», наблюдаются не сами ошибки, а результат их проявления.
2) Неверное срабатывание программы может быть следствием не одной, а сразу нескольких ошибок.
3) Ошибки могут компенсировать друг друга, так что после исправления какой-то одной ошибки программа может начать «работать хуже».
4) Надежность характеризует частота проявления ошибок, а не их количество; в то же время хорошо известно, что ошибки проявляются с разной частотой: некоторые ошибки остаются невыявленными после многих месяцев и даже лет эксплуатации, с другой стороны, может быть так, что одна единственная ошибка приводит к неверному срабатыванию программы при любых исходных данных.
Следует также отметить, что если число ошибок рассматривать как меру надежности, то в терминологии теории вероятностей это число есть случайная величина, однако самый главный вопрос – на каком пространстве элементарных событий она задана – нигде не затрагивался.
Наконец, важно подчеркнуть, что, с точки зрения надежности, в результате исправления ошибки или любой другой коррекции получается новая программа с другим, чем до коррекции, показателем надежности.
Таким образом, число ошибок в программе характеризует, скорее, не программу, а ее изготовителей и используемый инструментарий.