Двойной тест


Из Википедии, бесплатной энциклопедии
  (Перенаправлено из Test Double )
Перейти к навигации Перейти к поиску

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

Виды тестовых пар

Джерард Месарос [1] определил несколько различных терминов для того, что он называет «тестовые пары». Судя по его словарю, существует как минимум пять типов тестовых пар:

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

Для ручного и автоматизированного тестирования черного ящика на сервис - ориентированной архитектуры систем или microservices , разработчиков программного обеспечения и тестеров используют тест двойников , которые взаимодействуют с тестируемой системой через сетевой протокол. [2] [3] Эти тестовые двойники называются по-разному в зависимости от производителя инструмента. Часто используемый термин - виртуализация услуг . Другие используемые имена включают моделирование API, макет API, [4] HTTP-заглушку, HTTP-макет, двойной тест через провод [5] . [6]

Другой формой тестового двойника является проверенная подделка, поддельный объект , поведение которого было проверено на соответствие поведению реального объекта с помощью набора тестов, которые выполняются как против проверенной подделки, так и против реальной реализации. [7]

Хотя открытого стандарта для тестовых двойников и различных типов нет, есть импульс для продолжения использования этих терминов таким образом. Мартин Фаулер использовал эти термины в своей статье Mocks Aren't Stubs [8], ссылаясь на книгу Месароша . Microsoft также использовала те же термины и определения в статье под названием Exploring The Continuum Of Test Doubles . [9]

Смотрите также

использованная литература

  1. ^ Meszaros, Gerard (2007). Шаблоны тестов xUnit: рефакторинг тестового кода . Эддисон-Уэсли. ISBN 978-0-13-149505-0.
  2. ^ Клемсон, Тоби «Стратегии тестирования в микросервисной архитектуре» , martinfowler.com , 18 ноября 2014 г. Проверено 7 декабря 2017 г.
  3. ^ Байрс, Брэндон. «Тестирование микросервисов с помощью Mountebank», Manning Publications , MEAP началось в марте 2017 г. ISBN 9781617294778 . Проверено 7 декабря, 2017. 
  4. ^ Брайант, Дэниел «Инструмент API Mocking Tool WireMock v2, выпущенный с улучшенным сопоставлением запросов и управлением заглушками» , InfoQ , 16 августа 2016 г. Проверено 7 декабря 2017 г.
  5. ^ ThoughtWorks "Технология Radar, инструменты: шут" , ThoughtWorks , ноябрь 2015. Проверено 07 декабря 2017 года.
  6. ^ Bulaty, Wojciech «Различия в использовании заглушек, имитации и виртуализации сервисов для команд тестирования и разработки» , InfoQ , 19 февраля 2016 г. Проверено 7 декабря 2017 г.
  7. ^ Turner-Trauring, Итамар (2019). « Быстрые тесты для медленных сервисов: зачем использовать проверенные фейки » . Проверено 21 января 2019 .
  8. ^ Фаулер, Мартин (2007). « Моки - это не заглушки » . Проверено 29 декабря 2010 .
  9. ^ Seemann, Марк (2007). « Изучение континуума тестовых двойников » . Проверено 29 декабря 2010 .

внешние ссылки

Жерар Месарош:

  • Двойной тест
  • Тестирование двойных шаблонов
  • Моки, подделки, заглушки и манекены

Мартин Фаулер:

  • TestDouble , 17 января 2006 г.

Открытый исходный код:

  • ELF Spy - фейки и шпионы на C ++
  • FakeIt - Моки, фейки и шпионы на C ++
  • Google Mock - Mocking в C ++
  • jMock - Разработка через тестирование с использованием Mocks
  • Mockito - Mocking Framework для Java
  • unittest.mock - Мокинг с Python
Источник « https://en.wikipedia.org/w/index.php?title=Test_double&oldid=1018727203 »