Программа сложной структуры с использованием меню
Страница: [1] [2] [3] [4] [5] [6] [7] [8]
2) выбор способа комбинирования (сборки) модулей при создании трестируемого варианта программы.
СТРУКТУРНОЕ ТЕСТИРОВАНИЕ
Поскольку исчерпывающее структурное тестирование невозможно, необходимо выбрать такие критерии его полноты, которые допускали бы их простую проверку и облегчали бы целенаправленный подбор тестов.
Наиболее слабым из критериев полноты структурного тестирования является требование хотя бы однократного выполнения (покрытия) каждого оператора программы.
Более сильным критерием является так называемый критерий С1: каждая ветвь алгоритма (каждый переход) должна быть пройдена (выполнена) хотя бы один раз. Для большинства языков программирования покрытие переходов обеспечивает и покрытие операторов, но, например, для программ на языке ПЛ / 1 дополнительно к покрытию всех ветвей требуется всех дополнительных точек входа в процедуру (задаваемых операторами ENTRY) и всех ON - единиц.
Использование критерия покрытия условий может вызвать подбор тестов, обеспечивающих переход в программе, который пропускается при использовании критерия С1 (например, в программе на языке Паскаль, использующей конструкцию цикла WHILE х AND y DO ..., применение критерия покрытия условий требует проверки обоих вариантов выхода из цикла: NOT x и NOT у).
С другой стороны покрытие условий может не обеспечивать покрытие всех переходов. Например, конструкция IF А AND В THEN ... требует по критерию покрытия условий двух тестов (например, А = true, В = false и А = false, В = true), при которых может не выполняться оператор, расположенный в then - ветви оператора if.
Практически единственным средством, предоставляемым современными системами программирования, является возможность определения частоты выполнения различных операторов программы (ее профилизации). Но с помощью этого инструмента поддержки тестирования можно проверить выполнение только слабейшего из критериев полноты - покрытие всех операторов.
Правда, с помощью этого же инструмента можно проверить и выполнение критерия С1. Но для этого предварительно текст программы должен быть преобразован таким образом, чтобы все конструкции условного выбора (IF и CASE
10
или SWITCH) содержали ветви ELSE или DEFAULT, хотя бы и пустые. В этом случае все ветви алгоритма, не выполнялись на данном тесте будут "видимы" из таблицы частоты выполнения операторов преобразованной программы.
Актуальной остается задача создания инструментальных средств, позволяющих:
1) накапливать информации о покрытых и непокрытых ветвях для всех использованных тестов;
2) выделять разработчику еще не покрытые при тестировании участки программы, облегчая выбор следующих тестов;
3) поддерживать более мощные критерии полноты структурного тестирования.
† † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † † x0D20
СОВМЕСТНОЕ ТЕСТИРОВАНИЕ МОДУЛЕЙ.
Известны два подхода к совместному тестированию модулей: пошаговое и монолитное тестирование.
При монолитном тестировании сначала по отдельности тестируются все модули программного комплекса, а затем все они объединяются в рабочую программу для комплексного тестирования.
При пошаговом тестировании каждый модуль для своего тестирования подключается к набору уже проверенных модулей.
В первом случае для автономного тестирования каждого модуля требуется модуль - драйвер (то есть вспомогательный модуль, имитирующий вызов тестируемого модуля) и один или несколько модулей - заглушек (то есть вспомогательных модулей, имитирующих работу модулей, вызываемых из тестируемого) . При пошаговом тестировании модули проверяются не изолированно друг от друга, поэтому требуются либо только драйверы, либо только заглушки.
А
BCD
EF
рис. 1
При сравнении пошагового и монолитного тестирования можно отметить следующие преимущества первого подхода:
1) меньшая трудоемкость (для примера на рис.1 при монолитном тестировании требуются 5 драйверов и 5 заглушек; при пошаговом тестировании требуются или только 5 драйверов - если модули подключаются "снизу вверх", - или только 5 заглушек - если модули подключаются "сверху вниз ");
2) более раннее обнаружение ошибок в интерфейсах между модулями (их сборка начинается раньше, чем при монолитном тестировании);
3) легче отладка, то есть локализация ошибок (они в основном связаны с последним из подключенных модулей);
Страница: [1] [2] [3] [4] [5] [6] [7] [8]
версия для печати
Читайте также:
— Категории диалектики и обще-научные понятия
— Общие и суммарные показатели содержания природных и антропогенных компонентов, применяемых в программах наблюдения за загрязнением и состоянием водных систем
— Иуда Искариот
— Экономическая власть
— Профессиональные комунiкативнi связи в педагогические деятельности как научная проблема
|
|