Основы тестирования программного обеспечения


Интеграционное тестирование - часть 2


В инкрементальном методе выделяют две стратегии добавления модулей:
  • "Сверху вниз" и соответствующее ему восходящее тестирование.
  • "Снизу вверх" и соответственно нисходящее тестирование.

Особенности монолитного тестирования заключаются в следующем: для замены неразработанных к моменту тестирования модулей, кроме самого верхнего (К на Рис. 5.1), необходимо дополнительно разрабатывать драйверы (test driver) и/или заглушки (stub) [9], замещающие отсутствующие на момент сеанса тестирования модули нижних уровней.

Сравнение монолитного и интегрального подхода дает следующее:

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

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

Например, порядок тестирования комплекса K (Рис. 5.1) при нисходящем тестировании может быть таким, как показано в примере 5.3, где тестовый набор, разработанный для модуля Mi, обозначен как XYi = (X, Y)i

1) K->XYK 2) M1->XY1 3) M11->XY11 4) M2->XY2 5) M22->XY22 6) M21->XY21 7) M12->XY12 Пример 5.3. Возможный порядок тестов при нисходящем тестировании

Недостатки нисходящего тестирования:

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

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

Например, порядок тестирования комплекса K (Рис. 5.1) при восходящем тестировании может быть следующим (пример. 5.4).

1) M11->XY11 2) M12->XY12 3) M1->XY1 4) M21->XY21 5) M2(M21, Stub(M22))->XY2 6) K(M1, M2(M21, Stub(M22)) ->XYK 7) M22->XY22 8) M2->XY2 9) K->XYK Пример 5.4. Возможный порядок тестов при восходящем тестировании

Недостатки восходящего тестирования:

  • Запаздывание проверки концептуальных особенностей тестируемого комплекса
  • Необходимость в разработке и использовании драйверов



- Начало -  - Назад -  - Вперед -



Книжный магазин