Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Преимущества и недостатки комбинирования нисходящего и восходящего тестирования



Метод комбинирования нисходящего и восходящего тестирования называют также методом сандвича..

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

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

Применение метода сандвича - это разумный подход к интеграции больших программ, таких, как операционная система или пакет прикладных программ.

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

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

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

 

25. Понятие тестовых дублёров (TestDoubles). Виды тестовых дублёров.

ДжерардМесзарос предложил термин «тестовый дублер» - TestDouble - (по аналогии с дублером в кино), как общее имя для объектов, используемых для замены настоящих серверов компонентов в целях тестирования. Тестовый дублер – общий термин, для конкретных же реализаций используются специальные имена, для каждого вида тестовых дублеров. Существуют 2 категории тестовых дублеров:

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

2) Имитация (mock) - используется для имитации работы некоторого класса или модуля.

Виды заглушек:

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

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

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

Виды имитаций:

- Тестовый шпион (TestSpy). Тестовый шпион подобен заглушке, но помимо выдачи клиенту экземпляра, для вызова элементов, шпион также записывает, какие элементы вызывались, так что модульные тесты могут удостоверяться, что элементы вызывались в соответствии с ожиданиями.

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



Просмотров 1001

Эта страница нарушает авторские права




allrefrs.ru - 2023 год. Все права принадлежат их авторам!