ВУЗ:
Составители:
Рубрика:
70
мые и используемые другими группами программ при взаимодействии с тести-
руемой группой. Каждая переменная межмодульного интерфейса проверяется
на тождественность описаний во взаимодействующих модулях, а также на со-
ответствие исходным программным спецификациям. Состав и структура ин-
формационных связей реализованной группы модулей проверяются на соответ-
ствие спецификации требований этой группы. Все реализованные связи долж-
ны быть установлены, упорядочены и обобщены.
При сборке модулей в единый программный комплекс появляется два ва-
рианта построения графовой модели проекта:
плоская или иерархическая модель проекта;
граф вызовов.
Если программа P состоит из p модулей, то при интеграции модулей в
комплекс фактически получается громоздкая плоская (
Рис. 12), или более про-
стая – иерархическая (
Рис. 13
) – модель программного проекта. В качестве кри-
терия тестирования на интеграционном уровне обычно используется критерий
покрытия ветвей C1. Введем также следующие обозначения:
n – число узлов в графе;
e – число дуг в графе;
q – число бинарных выборов из условий ветвления в графе;
k
in
– число входов в граф;
k
out
– число выходов из графа;
k
ext
– число точек входа, которые могут быть вызваны извне.
Тогда сложность интеграционного тестирования всей программы P по
критерию C1 может быть выражена формулой:
V(P,C1) =∑V(Mod
i
, C1) – k
in
+k
ext
= e – n – k
ext
+ k
out
= q + k
ext
, (∀Mod
i
∈P)
Однако при подобном подходе к построению ГМП разработчик тестового
набора неизбежно сталкивается с неприемлемо высокой сложностью тестиро-
вания V(P,C) для проектов среднего и большого объема (размером в 10
5
– 10
7
строк) [14], что следует из роста топологической сложности управляющего
графа по МакКейбу. Таким образом, используя плоскую или иерархическую
модель, трудно дать оценку тестированности TV(P,C,T) для всего проекта и
оценку зависимости тестированности проекта от тестированности отдельного
модуля TV(Mod
i
,C), включенного в этот проект.
Рассмотрим вторую модель сборки модулей в процедурном программи-
ровании – граф вызовов. В этой модели в случае интеграционного тестирования
учитываются только вызовы модулей в программе. Поэтому из множества
M(Mod
i
,C) тестируемых элементов можно исключить те элементы, которые не
подвержены влиянию интеграции, т. е. узлы и дуги, не соединенные с вызовами
модулей: M(Mod
i
,C') = E' ∪ Nin, где E' = {(ni, nj)∈E | ni или nj содержит вызовы
модулей}, т.е. E' – подмножество ребер графа модуля, а Nin – «входные» узлы
графа. Эта модификация ГМП приводит к получению нового графа – графа вы-
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »