Показатели корректности тестирования структуры программных модулей
Считаем, что программа представлена в виде графа. Сложность теста равна числу дуг, входящих в i -ый маршрут, при исполнении этого теста. Пусть - число условий в i -ом маршруте, Каждое условие определяет выбор j-ой дуги к вершине . Тогда = , где Тогда - полная сложность тестов. - число маршрутов по критерию. Пусть - вероятность обнаружения ошибки в j-ой дуге на i-ом маршруте. Тогда вероятность получения правильного результата на i-ом маршруте
Реализация выбора j-ой дуги в i-ом маршруте зависит от конкретных входных данных. Пусть - вероятность такой реализации. Тогда - вероятность реализации i-ого маршрута. Тогда -вероятность отсутствия проявления ошибки на i-ом маршруте. Предположим, что правильность исполнения программы не зависит от предыдущих исполнений ее и равна . Тогда - полная вероятность правильного функционирования программы, она же показатель корректности программы. (1) – вероятность появления ошибки. - может существенно меняться в зависимости от выбранного критерия . Оценка вероятности правильной работы программы при выделении маршрутов по критерию есть . Представляет интерес оценка изменения в зависимости от затрат на тестирование, которые характеризуются суммарным объемом тестов для критерия выделения маршрутов, число которых : . При увеличении жесткости критериев выделения маршрутов увеличивается их число и замедляется рост корректности программ при возрастании сложности тестирования. Если величина мала, то корректность программ увеличивается медленно, и эффективность дальнейшего тестирования этим методом может оказаться сомнительной. Полное тестирование при некотором -ом критерии выделения маршрутов может соответствовать некоторой вероятности обнаружения ошибки при выделении маршрутов по более жесткому
критерию. Разность - может использоваться для оценки целесообразности продолжения тестирования с переходом на более жесткий критерий выделения маршрутов. Вероятность правильного функционирования программы зависит от значений , которые определяются прежде всего тем, насколько тщательно протестированы ветви программы к текущему моменту отладки. Об этих значениях можно сделать следующие предположения: Гипотеза : При исполнении программы по нетестировавшемуся маршруту возможно получение на дуге ошибки, несмотря на то, что эта дуга уже проверялась в составе других маршрутов. Т.е. = 0, после полного тестирования всех маршрутов через j -ую дугу, = в противном случае. Эта гипотеза позволяет получить пессимистические оценки вероятности правильности исполнения программы после проведения тестирования части маршрутов. Гипотеза : При завершении тестирования программы по некоторому маршруту вероятность сохранения ошибок в дугах этого маршрута убывает пропорционально относительному числу протестированных маршрутов. Т.е. = до начала тестирования, 0 – после тестирования всех маршрутов, в противном случае, где - относительное число протестированных маршрутов, проходящих через j -ю дугу. Эту гипотезу трудно использовать при анализе из-за необходимости учета для каждой дуги программы соотношения числа маршрутов, протестированных и еще не проверенных. Гипотеза : Любая дуга программы, проверенная хотя бы в одном маршруте тестирования, проверена полностью и не содержит ошибок, которые могли бы появиться при других маршрутах исполнения программы. Т.е. = 0, если дуга проверялась хотя бы один раз, - в противном случае. Эта гипотеза соответствует оптимистическим оценкам вероятности правильного исполнения программы.
Вероятность выбора j -ой дуги при ветвлении в вершине графа программы в общем случае зависит от начальной части i-ого маршрута исполнения программы, по которому достигнута эта дуга. Для получения обобщенных результатов целесообразно предположить, что вероятность ветвления не зависит от предшествующей части маршрута исполнения программы. Если вероятности ветвления в графе программы не известны, то можно предположить, что ветвления происходят равновероятно: =0,5. Подставляя значения и в формулу (1) можно оценить вероятность возникновения ошибки при первой или третьей гипотезах. В книге [12, c.143] приведены результаты исследования зависимости Q от для 3 типов графов управления абстрактных ациклических программных модулей. Полученные зависимости можно использовать для оценки эффективности тестирования реальных программных модулей.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|