Двойной тест - Википедия - Test double
В компьютерное программирование и Информатика, программисты и Разработчики использовать технику, называемую автоматическое модульное тестирование для повышения качества программного обеспечения. Часто окончательная версия программного обеспечения состоит из сложного набора объекты или же процедуры взаимодействуя вместе, чтобы создать окончательный результат. В автоматизированном модульном тестировании может возникнуть необходимость использовать объекты или процедуры, которые выглядят и ведут себя так же, как их аналоги, предназначенные для выпуска, но на самом деле являются упрощенными версиями, которые снижают сложность и облегчают тестирование. А тестовый двойник - это общий (мета) термин, используемый для этих объектов или процедур.
Виды тестовых пар
Жерар Месарош[1] определил несколько разных терминов для того, что он называет «тестовые пары». Используя его словарь, можно выделить как минимум пять типов двойных тестов:
- Заглушка теста (используется для обеспечения тестируемого кода «косвенным вводом»)
- Макет объекта (используется для проверки «косвенного вывода» тестируемого кода, сначала определяя ожидания перед выполнением тестируемого кода)
- Тестовый шпион (используется для проверки «косвенного вывода» тестируемого кода, путем утверждения ожиданий впоследствии, без определения ожиданий перед выполнением тестируемого кода. Помогает в записи информации о созданном косвенном объекте)
- Поддельный объект (используется как более простая реализация, например, с использованием базы данных в памяти в тестах вместо реального доступа к базе данных)
- Фиктивный объект (используется, когда параметр необходим для тестируемого метода, но без фактического использования параметра)
Как для ручного, так и для автоматического тестирование черного ящика из Сервис-Ориентированная Архитектура системы или же микросервисы разработчики программного обеспечения и тестеры использовать тестовые двойники, которые общаются с тестируемая система по сетевому протоколу.[2][3] Эти тестовые двойники называются по-разному в зависимости от производителя инструмента. Обычно используется термин виртуализация услуг. Другие используемые имена включают Моделирование API, Макет API,[4] HTTP-заглушка, HTTP-макет, двойной тест по сети[5].[6]
Еще одна форма тестового дублера - это проверенная подделка. Поддельный объект поведение которого было проверено на соответствие реальному объекту с помощью набора тестов, которые выполняются как с проверенной подделкой, так и с реальной реализацией.[7]
Пока нет открытый стандарт для тестового двойника и различных типов есть импульс для продолжения использования этих терминов таким образом. Мартин Фаулер использовал эти термины в своей статье, Моки - это не заглушки[8] ссылаясь на книгу Месароша. Microsoft также использовала те же термины и определения в статье под названием Изучение континуума тестовых двойников.[9]
Смотрите также
- Макет объекта
- Тестирование программного обеспечения
- Виртуализация услуг
- Сравнение инструментов моделирования API
- Список фреймворков модульного тестирования
- Объектно-ориентированного программирования
- Разработка через тестирование
Рекомендации
- ^ Месарош, Жерар (2007). Тестовые шаблоны xUnit: рефакторинг тестового кода. Эддисон-Уэсли. ISBN 978-0-13-149505-0.
- ^ Клемсон, Тоби «Стратегии тестирования в микросервисной архитектуре», martinfowler.com, 18 ноября 2014. Проверено 7 декабря 2017.
- ^ Байрс, Брэндон. «Тестирование микросервисов с Mountebank», Публикации Мэннинга, MEAP началось в марте 2017 года. ISBN 9781617294778. Проверено 7 декабря, 2017.
- ^ Брайант, Дэниел «Выпущен инструмент API Mocking Tool WireMock v2 с улучшенным сопоставлением запросов и управлением заглушками», InfoQ, 16 августа 2016. Проверено 7 декабря 2017.
- ^ ThoughtWorks "Технологический радар, инструменты: Mountebank", ThoughtWorks, Ноябрь 2015. Проверено 7 декабря, 2017.
- ^ Булаты, Войцех «Различия в заглушках, имитации и виртуализации сервисов для команд тестирования и разработки», InfoQ, 19 февраля 2016. Проверено 7 декабря 2017.
- ^ Тернер-Трэуринг, Итамар (2019). "Быстрые тесты для медленных сервисов: зачем использовать проверенные фейки". Получено 2019-01-21.
- ^ Фаулер, Мартин (2007). "Моки - это не заглушки". Получено 2010-12-29.
- ^ Зееманн, Марк (2007). "Изучение континуума тестовых двойников". Получено 2010-12-29.
внешняя ссылка
Жерар Месарош:
Мартин Фаулер:
- TestDouble, 17 января 2006 г.
Открытый исходный код:
- Эльф шпион - Фейки и шпионы на C ++
- Притворяться - Моки, фейки и шпионы на C ++
- Google Mock - Мокинг в C ++
- jMock - Разработка через тестирование с использованием макетов
- Mockito - Mocking Framework для Java
- unittest.mock - Насмешка с Python