Смекни!
smekni.com

Тестирование информационных систем (стр. 6 из 9)

· True-ветвь;

· False-ветвь.

Другая методика – тестирование области определения в ней для выражения отношения требуется генерация 3-4 тестов. Выражение вида

Е1<оператор отношения>Е2

проверяется тремя тестами, которые формируют значение Е1 большим, чем Е2, равным Е2 и меньшим, чем Е2.

Если оператор отношения неправилен, а Е1 и Е2 корректны, то эти три теста гарантируют обнаружение ошибки оператора отношения.

Для определения ошибок в Е1 и Е2 тест должен сформировать значение Е1 большим или меньшим, чем Е2, причем обеспечить как можно меньшую разницу между этими значениями.

Способ тестирования потоков данных.

В предыдущих способах тесты строились на основе анализа управляющей структуры программы. В данном способе анализу подвергается информационная структура программы.

Работу любой программы можно рассматривать как обработку потока данных, передаваемых от входа в программу к ее выходу.

Пусть имеется потоковый граф программы с управляющими и информационными связями.

Под определением данных понимают действия, изменяющие элемент данных.

Использование данных – это применение элемента в выражении, где происходит обращение к элементу данных, но не изменение элемента.

Назовем DU-цепочкой (цепочкой определения-использования) конструкцию [x, i, j], где i, j – имена вершин; x определена в i-й вершине и используется в j-й вершине.

Способ DU-тестирования требует охвата всех DU-цепочек программы. Таким образом, разработка тестов здесь проводится на основе анализа жизни всех данных программы.

Очевидно, что для подготовки тестов требуется выделение маршрутов – путей выполнения программы на управляющем графе. Критерий выбора пути – покрытие максимального количества DU-цепочек.

Шаги способа DU-тестирования:

· построение управляющего графа программы;

· построение информационного графа;

· формирование полного набора DU-цепочек;

· формирование полного набора отрезков путей в управляющем графе;

· построение маршрутов – полных путей на управляющем графе, покрывающих набор отрезков путей управляющего графа;

· подготовка тестовых вариантов.

Достоинства DU-тестирования:

· простота необходимого анализа операционно-управляющей структуры программы;

· простота автоматизации.

Недостаток DU-тестирования: трудности в выборе минимального количества максимально эффективных тестов.

Область использования DU-тестирования: программы со вложенными условными операторами и операторами цикла.

Тестирование циклов.

Цикл – наиболее распространенная конструкция алгоритмов, используемых в ПО. Тестирование циклов производится по принципу «белого ящика», при проверке циклов основное внимание обращается на правильность конструкций циклов.

Различают 4 типа циклов: простые, вложенные, объединенные, неструктурированные.

Простые циклы.

Для проверки циклов с количеством повторений n может использоваться один из следующих наборов тестов:

· прогон всего цикла;

· только один проход цикла;

· два прохода цикла;

· m проходов циклов, где m<n;

· n-1, n, n+1 проходов цикла.

Вложенные циклы.

С увеличением уровня вложенности циклов количество возможных путей резко возрастает. Это приводит к нереализуемому количеству тестов. Для сокращения количества тестов применяется специальная методика, в которой используются такие понятия, как объемлющий и вложенные циклы.

Шаги тестирования:

· Выбирается самый внутренний цикл. Устанавливаются минимальные значения параметров всех остальных циклов.

· Для внутреннего цикла проводятся тесты простого цикла. Добавляются тесты для исключенных значений и значений, выходящих за пределы рабочего диапазона.

· Переходят в следующий по порядку объемлющий цикл. Выполняют его тестирование. При этом сохраняются минимальные значения параметров для всех внешних (объемлющих) циклов и типовые значения для всех вложенных циклов.

· Работа продолжается до тех пор, пока не будут протестированы все циклы.

Объединенные циклы.

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

Неструктурированные циклы.

Неструктурированные циклы тестированию не подлежат. Этот тип циклов должен быть переделан с помощью структурированных программных конструкций.

2.2. Тестирование «черного ящика»

Известны: функции программы.

Исследуется: работа каждой функции на всей области определения.

Основное место приложения тестов «черного ящика» - интерфейс ПО.


Эти тесты демонстрируют:

· Как выполняются функции программы.

· Как принимаются исходные данные.

· Как вырабатываются результаты.

· Как сохраняется целостность внешней информации.

При тестировании «черного ящика» рассматриваются системные характеристики программ, игнорируется их внутренняя логическая структура. Исчерпывающее тестирования, как правило, невозможно. Например, если в программе 10 входных величин и каждая принимает по 10 значений, то потребуется 1010 тестовых вариантов. Тестирование «черного ящика» не реагирует на многие особенности программных ошибок.

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

· Набор, образуемый такими входными данными, которые приводят к аномалиям в поведении программы (назовем его IT);

· Набор, образуемый такими входными данными, которые демонстрируют дефекты программы (назовем его OT).

Любой способ тестирования «черного ящика» должен:

· Выявить такие входные данные, которые с высокой вероятностью принадлежат набору IT;

· Сформулировать такие ожидаемые результаты, которые с высокой вероятностью являются элементами набора OT.

Во многих случаях определение таких тестовых вариантов основывается

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

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

Тестирование «черного ящика» обеспечивает поиск следующих категорий ошибок:

· Некорректных или отсутствующих функций;

· Ошибок интерфейса;

· Ошибок во внешних структурах данных или в доступе к внешней базе данных;

· Ошибок характеристик (необходимая емкость памяти и т.д.);

· Ошибок инициализации и завершения.

Подобные категории ошибок способами «белого ящика» не выявляются.

В отличие от тестирования «белого ящика», которое выполняется на ранней стадии процесса тестирования, тестирование «черного ящика» применяют на поздних стадиях тестирования. При тестировании «черного ящика» пренебрегают управляющей структурой программы. Здесь внимание концентрируется на информационной области определения программной системы.

Техника «черного ящика» ориентирована на решение следующих задач:

· Сокращение необходимого количества тестовых вариантов (из-за проверки не статистических, а динамических аспектов системы);

· Выявление классов ошибок, а не отдельных ошибок.

Способ разбиения по эквивалентности.

Разбиение по эквивалентности – самый популярный способ тестирования «черного ящика».

В этом способе входная область данных программы делится на классы эквивалентности. Для каждого класса эквивалентности разрабатывается один тестовый вариант.

Класс эквивалентности – набор данных с общими свойствами. Обрабатывая разные элементы класса, программа должна вести себя одинаково. Иначе говоря, при обработке любого набора из класса эквивалентности в программе задействуется один и тот же набор операторов (и связей между ними).

Классы эквивалентности могут быть определены по спецификации на программу.

Класс эквивалентности включает множество значений данных, допустимых или недопустимых по условиям ввода.

Условие ввода может задавать;

· Определенное значение.

· Диапазон значений.

· Множество конкретных величин.

· Булево условие.

Сформулируем правила формирования классов эквивалентности.

1. если условие ввода задает диапазон n…m, то определяется один допустимый и два недопустимых класса эквивалентности.

2. если условие ввода задает конкретное значение a, то определяется один допустимый и два недопустимых класса эквивалентности.

3. если условие ввода задает множество значений {a,b,c}, то определяется один допустимый и один недопустимый класс эквивалентности.

4. если условие ввода задает булево значение, например true,то определяется один допустимый и один недопустимый класс эквивалентности.

После построения классов эквивалентности разрабатываются тестовые варианты.

Тестовый вариант выбирается так, чтобы проверить сразу наибольшее количество свойств класса эквивалентности.