Испытания программ на надежность и испытания изделий на надежность их программного обеспечения – обязательные этапы при проверке надежности систем.
Испытания с целью проверки надежности программ осуществляются с помощью специальных программ (тестирование) и специальных (имитационных) стендов. Проверяется при этом степень отработанности программы и ее соответствие заданным требованиям.
Испытания с целью проверки надежности изделий, работающих под управлением программ, осуществляются при совместной работе программы и изделия. Проверяются при этом и степень отработанности программы в соответствии с заданными требованиями, и корректность этих требований, и согласованность взаимодействий программы и аппаратуры.
Степень отработанности программы может проверяться различными методами. Чем выше требование к достоверности проверки, тем более сложен метод проверки.
Рассмотрим один из наиболее простых методов. В процессе проверки «корректности» программы (с помощью наблюдений за работой либо изделия, либо имитирующего устройства, либо на специальном стенде с помощью тестов) фиксируются времена обнаружения ошибок в программе. Результаты проверки обрабатываются при следующих предположениях:
1) ошибки программы независимы. Каждый раз после обнаружения они устраняются и в дальнейшем не проявляются;
2) интенсивность ошибок уменьшается по мере их обнаружения и устранения ступенчато (рис. 3.12).
Рисунок 3.12 – График изменения интенсивности ошибок
Статистическая интенсивность программных ошибок определяется так же как интенсивность аппаратных отказов по формуле
,
где - число идентичных программ, не отказавших к моменту времени ;
- число отказавших идентичных программ на интервале .
Выявление и устранение ошибок производится до тех пор, пока значение будет меньше допустимого (заданного) значения . Допустимое значение назначается с учетом требований к надежности изделия. Ориетировочно можно исходить из того, что интенсивность программных ошибок, приводящих к отказу, на этапе отладочных испытаний должна быть не больше интенсивности аппаратурных отказов.
Положение о том, что при создании программного обеспечения больших систем возможно возникновение ошибок и что выявление программных ошибок - чрезвычайно трудная задача, не только не должно обезоруживать разработчиков систем, а наоборот, должно ориентировать их на максимальное сосредоточение сил для ликвидации программных отказов.