№37 (Надежность программного обеспечения) (1006294), страница 4
Текст из файла (страница 4)
Для генерирования случайных исходных данных, соответствующих по своим значениям оценкам
Rij, может быть использована модификация метода Дж. Неймана, заключающаяся в следующем. Сперва генерируются в области допустимых значений исходных данных некоторые случайные значения
, распределенные по равномерному закону или по дискретному равномерному закону, если эти данные могут приобретать только дискретные значения. Затем проводится проверка соответствия генерированных значений требуемым значениям моментов по (6.23), (6.24), (6.25), В случае несоответствия отбрасываются некоторые генерированные значения и взамен их генерируются новые и снова проверяется соответствие оценочных моментов требуемым значениям и т. д., пока не будет генерирована совокупность случайных исходных данных, статистически соответствующих встречаемым в процессе эксплуатации данным. Соответствие моментов генерированных случайных величин и случайных величин, зафиксированных экспериментально, оценивается но критерию перекрытия доверительных интервалов на те и другие величины.
Вторым существенным составляющим стохастического функционального тестирования является проверка правильности результатов вычислений по генерированным случайным исходным данным.
Проверка правильности может осуществляться путем проверки соответствия эталону; принадлежности области; по времени выполнения; сравнения с другими (соседними) значениями; через достижения цели (в замкнутом контуре управления).
Наиболее просто проверка правильности осуществляется через сравнение с эталоном. Эталоном могут являться вычисления, выполняемые по другой, эквивалентной программе или другому алгоритму. Например, если разработан улучшенный по быстродействию вариант программы, то эталоном может быть исходная программа. Результаты, рассчитанные вручную или содержащиеся в задании (спецификации) к программе, очевидно, слишком немногочисленные для статистический оценок. Если программа составлена на языке не самого высокого уровня, то в качестве эталона может быть использована аналогичная программа, написанная на языке более высокого уровня. Составление такой программы менее трудоемко, а большая ее длина не существенна, поскольку она используется только при тестировании.
Удобным критерием оценки правильности результата вычислений является критерий принадлежности eso некоторой области. Как правило, для каждого результата или даже комбинации результата и, вычисляемых тестируемой программой, может быть указана область допустимых значений, либо исходя из смыслового, физического» содержания результата, либо из его математических свойств Например, если результат - вес предмета, то он не может быть отрицательным числом: если результат — количество каких-либо предметов, оно выражается как целое положительное число, и т. д. Недостаток метода и том, что проверка получается неполная и обнаруживает далеко не все ошибочные результаты.
Эффективный способ проверки — проверка по времени выполнения программы. На основании структуры программы, условий переключения и времени выполнения операции на данной ЭВМ можно подсчитать время выполнения программы для каждого набора исходных данных. Отклонение фактического времени выполнения программы от расчетного говорит о наличии ошибок в программе Недостаток метода — сложность расчетов по подсчету времени выполнения.
Если по программе выполняется гладкая функция, хорошие результаты при обнаружении некоторых ошибок может дать сравнение результата со значением, полученным методом интерполяции. Метод, однако, пригоден только для обнаружения случайных ошибок, поскольку систематические ошибки не приводят к нарушению гладкости функции
Последним этапом функционального тестирования является оценка безошибочности программы, производимая на основе результатов тестирования как статистического эксперимента таким же методом, как оценка безотказности аппаратуры.
Отказы программ проявляются как случайные, однако носят детерминированный характер для заданного набора исходных данных (положение, аналогичное с любыми испытаниями по контролю качества объектов). При выборочном контроле качества некоторый объект выбирается случайно, но после того, как он был выбран, его качество уже детерминировано. Поэтому при стохастическом тестировании программ применимы математические методы выборочного контроля качества, если допустить, иго проявление ошибки при одном тесте не зависит от проявления ошибки при другом тесте.
Поскольку обнаруженные ошибки в программе следует исправлять, опенку надежности программы при стохастическом функциональном тестировании целесообразно производить на основании заключительной серии стохастических тестов, когда отказы программы отсутствуют. Тогда для оценки вероятности безотказной работы программы может быть использована формула
г
де рн — нижняя доверительная граница вероятности безотказной работы программы при однократном прохождении;
- доверительная вероятности, п — количество прохождений программы при тестировании.
Сделанное
выше допущение относительно независимости результатов отдельных стохастических тестов программы не вполне обосновано, так как наличие ошибки в программе обнаруживается, вероятно, большим количеством тестов, чем это можно ожидать, исходя из независимости их результатов. Поэтому представляет интерес другой подход, где программа рассматривается как сообщение, состоящее N символов. Пусть каждый стохастический тест проверяет в среднем r символов из N и пусть один из N элементов содержит ошибку.
Тогда вероятность того, что при одном тесте ошибка не будет обнаружена, оценивается как
1-г/N, Вероятность того, что при п независимых тестах ошибка не будет обнаружена, равна
. Если ошибочных символов в программе больше, чем один, то вероятность их обнаружения одним тестом будет еще больше, так что оценка является оценкой сверху.
Настолько
высокая оценка вероятности обнаружения ошибок получается благодаря тому, что в соответствии с данной моделью каждый символ программы проверяется в среднем многократно и вероятность тою, что некоторый символ ни в одном тесте не проверяется, весьма мала.
13















