Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Testirovanie_programmnogo_obespechenia.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.08 Mб
Скачать

If_then case

IF_THEN_ELSE DO_WHILE REPEAT_UNTIL

По построенным графам для отдельного модуля можно посчитать цикломатическое число, которое определяет сложность написанной программы.

Цикломатическое число графа (метрический показатель сложности программы): G=R(ребра) – V(вершины) + 2

Формула справедлива для замкнутого графа (существуют начальный и конечный узлы). Цикломатическое число отражает сложность графа. G>=15 недопустимо (необходимо дробить модуль).

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

Проход – путь по графу от первого до последнего узла.

Выбор проходов для тестирования (если общее количество проходов больше цикломатического числа) осуществляется по следующим стратегиям:

    1. длительность исполнения прохода и число операторов в проходе

    2. количество условных переходов (рассматриваются проходы, которые участвуют в формировании условий)

Характерна для логических программ.

10. Интеграционное тестирование.

Для проверки взаимодействия модулей можно применить 2 способа:

    • монолитное тестирование

    • пошаговое тестирование

Монолитное тестирование заключается в том, что каждый модуль тестируется отдельно. Для каждого модуля пишется 1 модуль-драйвер, который передает тестируемому модулю управление, а также пишется 1 или несколько модулей-заглушек.

Когда все модули протестируются по отдельности, их собирают вместе и тестят систему в целом.

Недостатки

    • требуется много дополнительных действий: написание драйверов и заглушек;

    • поздно обнаруживается ошибка в междумодульных взаимодействиях;

    • Труднее и дольше отлаживать программу.

Преимущества:

    • экономия машинного времени

    • возможность параллельной организации работы на начальной фазе тестирования.

Например для B нужно 2 заглушки, кот. будут имитировать работу модулей E и F.

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

Существует 2 стратегии выполнения пошагового тестирования: Нисходящее и восходящее.

Нисходящее тестирование.

Заключается в том, что тестирование начинается с головного модуля (a). Тогда возникает проблема передачи данных в головной модуль. Решение проблемы:

    • написать несколько вариантов заглушек модуля B для различных тестов;

    • написать заглушку модуля B таким образом, чтобы она читала тестовые данные из внешнего файла.

Можно использовать одну из следующих стратегий подключения:

  1. Подключить наиболее важные модули сточки зрения тестирования;

  2. Подключить модули, осуществляющие операцию вв/выв для того, чтобы обеспечить тестовыми данными внутренние модули.

Недостатки – написание заглушек.

Наприм.: модули I и J уже подключены и на следующем шаге тестирования заглушка модуля Н меняется на реальный модуль Н. Как тогда передать тестовые данные в модуль Н? Т.к. между модулями J и имеются промежуточные модули и может оказаться невозможным передать тестовые данные, соответствующие разработанным тестам. К тому же достаточно сложно интерпретировать результаты тестирования модуля Н, т.к. между Н и I также существуют промежуточные модули.

Восходящее тестирование.

Восходящее тестирование начинается с не вызывающих другие модули (терминальных) модулей.

Стратегия подключения новых модулей также должна основываться на степени критичности данного модуля в программе.

Недостаток заключается в том, что рабочая программа не существует до тех пор, пока не будет подключен последний главный модуль (А).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]