Отладка и тестирование приложений в среде Visual Studio 2005. Евсеева О.Н - 70 стр.

UptoLike

Составители: 

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 – «входные» узлы
графа. Эта модификация ГМП приводит к получению нового графаграфа вы-