Главная страница  Анализ эмпирических данных 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [ 85 ] 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

таком множестве обычно достаточно мало, что делает реальным их выявление, например, с помоняыо испьь тательных средств типа РАСЕ и последующего тестирования.

Поскольку каждая ветвь соответствует некоторому подмножеству сегментов, то подмножество сегментов, отвечающее, например, ветви L/, должно содерг жаться в некотором подмножестве С/ характерных ветвей из множества С. При этом тестирование всех ветвей из С,- должно обеспечить проверку всех сегментов, составляющих L,-. Следовательно, если в ходе тестирования будет осуществлен прогон всех ветвей из множества С, то тем самым будет проверено выполнение всех ветвей исходной программы в том смысле, что будут опробованы все входящие в эти ветви сегменты.

Каждое ветвление программы связано с некоторой упорядоченной парой сегментов. Поскольку лищь небольшая часть множества всевозможных пар сегментов соответствует ветвлениям программы, то число ветвлений существенно меньше т{т-1)/2 - числа, определяющего максимальное количество пар сегментов. Таким образом, вполне реально выявить (с помощью средств типа РАСЕ) и испытать все разветвления программы. В силу самого определения ветви проход по всем ветвям программы гарантирует и прохождение всех ее сегментов. Таким образом, тест, при котором проверяются все ветви, должен обеспечивать проверку всех сегментов, равно как и всех пар сегментов, встречающиеся в ветвях программы. При таком испытании должно оказаться проверенным и сравнительно большое число последовательностей сег-лентов более высокого порядка (т. е. последовательностей, имеющих длину, большую двух). Данное обстоятельство объясняет, почему программы, испытанные с применением средств, обеспечивающих проверку всех ветвей программы, оказываются в эксплуатации высоконадежными (в них редко возникают отказы).

Программа А для Проекта 5 (разд. 6.2.1) имеет 10 сегментов (6 сегментов, составленных из операторов присваивания, и 4 оператора перехода), КЗ пар сегментов и 4 ветви. В данном случае множество



характерных ветвей совпадает со множеством всех ветвей программы, и потому минимальное число контрольных примеров, необходимое для апробации всех ее сегментов, одновременно обеспечивает проверку всех пар сегментов и всех ветвей программы.

Программа В для Проекта 5 включает 17 сегментов, 24 пары сегментов и 9 ветвей. Все сегменты программы, содержатся в пяти ветвях, а сегментные пары - в 6 ветвях. Таким образом, для проверки всех сегментов требуется 5, для проверки всех сегментных пар - 6, а для проверки всех ветвей - 9 контрольных примеров.

6.6. Оценка надежности програмрного обеспечения по данным испытаний

Метод измерения надежности программы, описанный в гл. 5, включает определение ее функционального разреза pi и выполнение п прогонов на входных наборах данных, выбранных случайным образом в соответствии с распределением вероятностей р,-. В разд. 6.2 были описаны другие методы измерения, основанные на использовании разнообразных выборок. Поскольку проверка программы предполагает осуществление серии прогонов и анализ их результатов с целью выявления факта отсутствия или наличия отказа программы, то уместно поставить следующий вопрос: можно ли использовать информацию, получаемую в ходе проверки, для выработки оценки надежности программы, что, вообще говоря, и является целью проверки?

Следует заметить, что реальные условия испытаний программ всегда существенно отличаются от тех, которые требуются для представительного измерения надежности программного обеспечения. Так, например, тестовые прогоны выполняются на входных наборах данных, выбранных не случайным, а вполне определенным образом: обычно соответствующий выбор производится так, чтобы найти ошибку быстро. При этом выбор основывается на опыте и интуиции испы-



тателей либо осуществляется с учетом функциональных возможностей, которые должна обеспечивать программа, или возможности использования методик проверки типа РАСЕ. Таким образом, контрольные примеры, как правило, не являются представительными с точки зрения моделирования реальных условий работы программы. Кроме того, после возникновения какого-либо отказа программы его причина выявляется и устраняется, что приводит к изменению надежности программы в процессе ее проверки.

На основе принципов, развитых в предшествующих разделах, была разработана процедура грубой оценки величины R, предусматривающая использование результатов испытаний и включающая следующие шаги:

- определение множества Е входных массивов данных;

- выделение в Е подмножеств G/, связанных с отдельными ветвями программы;

- определение для каждого Gy в предполагаемых условиях функционирования значений вероятности Р/;

- определение подмножества G,- для каждого входного набора данных, используемого в контрольных примерах;

- выявление проверенных и непроверенных в ходе испытаний сегментов и пар сегментов;

- определение для каждого / величины Рй/Р/, где а; определяется в соответствии со следующими правилами:

uj - 0,99, если подмножество Gy включает более одного контрольного примера;

ау = 0,95, если подмножество Gy включает ровно один контрольный пример;

ау - 0,90, если подмножество Gy не включает ни одного контрольного примера, но в процессе проверки программы были пройдены все сегменты и все сегментные пары ветви Ly;

ау = 0,80, если в ходе испытаний были опробованы все сегменты, но не все сегментные пары;

ау г= 0,80 - 0,20 т, если т- сегментов (I m < 4) ветви Ly не были опробованы в ходе испытаний; . . -<



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 [ 85 ] 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.