Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.06 Mб
Скачать

1.2. Виды и методы тестирования.

Детерминированное тестирование (ДТ)– это наиболее эффективный метод тестирования, при котором задаются конкретные совокупности исходных данных, которым соответствуют также конкретные значения эталонных результатов. Этот метод позволят не только обнаружить ошибку, но и в ряде случаев локализовать её.

ДТ основывается на двух подходах:

  • Структурное тестирование, или тестирование программы как «белого ящика» (стратегия тестирования, управляемого логикой программы). Подбираются такие тесты, которые позволяют обеспечить выполнение максимально возможные количества маршрутов, логических ветвлений, циклов и т.п.

  • Функциональное тестирование, или тестирование как «чёрного ящика» (тестирование по входу - выходу). Абстрагируясь от логики программы, проверяют только входные и выходные функциональные спецификации.

1.3. Структурное тестирование. Критерии структурного подхода

1.3.1. Тестирование на основе потока управления

Тестирование по принципу «белого ящика» характеризуется степенью, в какой тесты выполняют или покрывают логику программы (исходный текст). Элементами, которые должны быть покрыты при прохождения тестов, являются вершины, дуги или подпути управляющего графа программы (УГП), условие, комбинации условий и т. п.

С0 – критерий покрытия операторов, заключается в выполнении каждого оператора хотя бы один раз. Это очень слабый критерий и не является достаточным.

С1 - критерий покрытия решений, заключается в том, что хотя бы по одному разу должны быть выполнены каждый возможный результат всех решений и передача управления при вызове программы или подпрограммы каждой точке входа. С точки зрения УГП, покрытие решений заключается в том, чтобы каждая его дуга и входная вершина содержались по крайней мере в одном из путей тестирования.

Критерий С1 также не может гарантировать выявления всех ошибок в программе.

С2 - критерий покрытия всех путей в УГП .

Например, рассмотрим фрагмент программы на С,С++,ADA:

If (cond1 && ( cond2 || func1()))

statment1;

else statment2;

Покрытие решений (ветвей) может быть достигнуто без вызова func1().

Условия cond1 и cond2, принимая значение true, как бы закрывают вызов функции func1(), что при условии cond1=false может привести к ошибкам в непокрытой тестами части программы.

Исходя из важности проверки всех возможных вариантов значений в булевских выражениях , вводиться критерий покрытия всех условий (булевских).

Критерий покрытия условий/решений совмещаеткритерий С1 и критерий покрытия условий.

1.3.2. Тестирование на основе потока данных

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

Наиболее практичным является критерий СР (покрытие пар достижимых дуг). Этот критерий заключается в том, что покрываются все такие пары дуг V и W, что из дуги V достижима дуга W. То есть , фактически, кроме вершины , в которой определена переменная , тестируются и входящие в неё дуги.