Реклама:

; исчерпывающее тестированиепри 'критерии ^возможно толь» Но по реалнвуемым'маршрутам; Поэтому при расчете вероятности проявления -ошибки целесообразно проводить предвари-„ тельную оценку числа* нереализуемых маршрутов к^ксфрёктировать иёполъауемое значение М%(см .рис. 3.2). "$^Л*а"'^ не?овме<^йМые услоВйя, исключающие возможность их исполнения, в целом разделены рядом точек ветвления, в которых используются другие предикаты при определении направления ..движения оО Маршруту; Дяя нереализуемости маїкірута достаточно двух несов--^і-Щ^нм^х условий, которые встречаются; я ьд«$ріадда<' Ьнйфіі '%^хШЬютеталь- выражения, стределяющйе явно условия ветвления, которые анализируются на формально выделяемом маршруте при противоположных значениях условий движения по этому маршруту; ■ • 1 ..Л ■ .'■

^выражения с одними и теми же переменными, но с разными мк значениями; определяющими «пересекающиеся области ус-• щф&яегщшня;--•••>>*ц ''^.г:-'."4'-'' ••.«/.. ..-\../\.

выражения с разяинтыми переменными, связанные неярко Логикой реінаемойї Задачи; і которая формалист отражена V данной программе.

Для выявления нереализуемых маршрутов п формально построенном графе программы каждый из них должен быть проанализирован на наличие подобных пар несовместимых условий. Такой анализ относительно просто выполнить для условий первого вида, которые однако не так часто встречаются. Наиболее важный вид неявных несовместимых условий формально проанализировать невозможно без привлечения описаний всех корреляционных связей между переменными. Построение таких описаний громоздко и трудоемко, что затрудняет их применение для селекции нереализуемых маршрутов. Выделение непересекающихся областей значений переменных при формировании условий образования маршрутов трудно реализовать из-за часто встречающихся областей со сложной конфигурацией. Дополнительные трудности может представлять селекция условий с точными и неточными неравенствами на границах областей, когда граничные значения по-разному используются в анализируемых условиях маршрута (см. рис. 3.12).

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

Доля нереализуемых маршрутов сильно различается для разных модулей. Достаточно часто встречаются модули, в которых все маршруты являются реализуемыми и отсутствуют несовместимые условия при ветвлениях. В ряде программ несовместимые условия приводят к сокращению числа маршрутов в несколько раз. Анализ некоторых логических программ [1091 показал, что доля нереализуемых маршрутов из их общего числа может быть весьма велика и достигает в отдельных случаях 90—95%. При этом доля нереализуемых маршрутов в среднем быстро возрастает при увеличении числа ветвлений в программе. Это обусловлено тем, что вероятность нереализуемости маршрута зависит от его длины, точнее, от числа ветвлений. На коротких маршрутах с небольшим числом ветвлений, естественно, менее вероятно наличие одинаковых предикатов, определяющих ветвления, и вероятность нереализуемости низка. В пределе маршруты содним-двумя ветвлениями всегда'являются реализуемыми.


⇐ Предыдущая страница| |Следующая страница ⇒