ITVDN: курсы программирования
Видеокурсы по
программированию

Доступ более чем к 7700 видеоурокам от $19.99

Подписка
ITVDN logo
Видеокурсы по
программированию

Доступ более чем к 7700 видеоурокам от $19.99

Подписка
Так как 2017 год совсем недавно остался позади, наша команда решила сделать небольшой новогодний подарок в виде разбора лучших сред автоматического тестирования, обладающих, помимо прочего, открытым исходным кодом.
 
1. Robot Framework
Robot Framework – это фреймворк для приемного тестирования (Acceptance Testing) и, помимо прочего, так называемого ATDD (Acceptance Test-Driven Development). Среда написана на языке Python, но также может быть развернута в рамках Jython (Java) и IronPython (.NET). По сей причине считается кроссплатформенной, ибо поддерживает Windows, Linux и MacOS соответственно.
 
Достоинства:
  1. Упрощает автоматическое тестирование благодаря использованию подхода keyword-driven тестирования, в значительной мере помогая тестерам в создании читабельных, легко производимых тестов. 
  1. Простота в использовании «тестового синтаксиса».
  1. Имеет в наличии отменную среду, включающую в себя богатый набор различных инструментов и библиотек, выполненных в виде отдельных проектов.
  1. Огромное количество различных API делает систему очень гибкой.
  1. Хотя и не в виде встроенной функции, однако Robot Framework позволяет проводить параллельные тесты при использовании библиотеки pabot или Selenium Grid.
 
Недостатки:
  1. Трудно настроить структуру html-отчетов.
 
Примечание: эта среда будет очень полезной, если Вы нацеливаетесь на Keyword-Driven тестирование – и обширная база библиотек и расширений вряд ли заставит Вас в этом усомниться. Однако, чтобы добавить новые ключевые слова (RF test library API) базовые познания Java/Python/C программирования обязательны.
 
2. JUnit
JUnit – это среда для проведения юнит-тестов для приложений, написанных на языке Java.
 
Достоинства:
  1. Тесты пишутся при помощи чистейшего Java – одного из лидирующих языков программирования современности.
  1. Поддерживает TTD.
  1. Позволяет создать свой собственный пакет для юнит-тестирования.
  1. Прекрасно интегрируется в различные инструменты разработчика (к примеру – Maven) или среды разработки (к примеру, IntelliJ).
  1. Благодаря достаточно высокой популярности поиск документации не составляет труда.
 
Недостатки:
  1. Если необходимо использовать возможности mock-объектов, пользователь вынужден прибегать к помощи сторонних библиотек (Mockito или другие).
  1. Чтение тестов у людей без технического образования может вызвать затруднения, так как, к примеру, имена методов в JUnit ограничены условностями языка Java.
 
Примечание: для тех разработчиков, которые желают писать юнит-тесты для собственных Java-приложений JUnit, пожалуй, лучшее из того, что можно бы пожелать. Однако, в случае если речь идет о функциональном тестировании программ, написанных на других языках, вероятно, Вам стоит выбрать другую среду.
 
3. Spock
Spock – это среда тестирования и спецификации для приложений, написанных на языках Java или Groovy. За основу взята среда JUnit.
 
Достоинства:
  1. Позволяет создавать читабельные тесты с поддержкой чисто английских предложений, без необходимости следовать ограничениям языков программирования.
  1. Предоставляет информативный контекст возникнувшей проблемы. Плюс, дает легко понять, что необходимо сделать, дабы исправить обнаруженный недостаток.
  1. Имеет встроенную поддержку mock и stab объектов.
  1. Поддерживает DDT (Data-Driven Tests).
 
Недостатки:
  1. Требует базовых знаний языка программирования Groovy.
 
Примечание: идеально подойдет, если Ваше приложение базируется на JVM, плюс, Вы нацеливаетесь на BDD автоматическое тестирование с DSL.
 
4. NUnit
NUnit – среда для юнит-тестирования языков .NET виртуальной машины. Имевшей однажды огромное влияние JUnit, среда NUnit была полностью написана на C#. Помимо прочего, в арсенале так же имеется целый спектр новых возможностей, позволяющих использовать все преимущества языков .NET.
 
Достоинства:
  1. Быстрая инициализация и выполнение теста.
  1. Использует методы типа Assert с поддержкой аннотаций.
  1. Позволяет проводить параллельное тестирование.
  1. Поддерживает TDD.
 
Недостатки:
  1. Так как использует только языки .NET стандарта, не является кроссплатформенным.
  1. Интеграция в среду Visual Studio не представляется возможной. Использование NUnit означает больше расходов на сопровождение проекта.
 
Примечание: прекрасный фреймворк юнит-тестирования для C# с открытым исходным кодом, долгой историей и проверенной репутацией. Однако, в случае, если вы уже активно работаете с .NET языками, обратите свое внимание на MSTest.
 
5. TestNG
TestNG – сервис автоматического тестирования для Java. По сути, это те же JUnit и NUnit, но с улучшениями и новым функционалом (ибо NG читается как «новое поколение» - Next Generation). Среда была разработка для покрытия всех видов тестирования, которые только могут понадобится. А именно: юнит-тестирование, функциональное тестирование, тестирование интеграции и прочее.
 
Достоинства:
  1. Прост во внедрении в проект.
  1. Позволяет разработчику писать гибкие и всеобъемлющие тесты.
  1. Поддерживает DDT.
  1. Простые в понимании аннотации.
  1. Простота в группировании тестовых кейсов.
  1. Позволяет создавать параллельные тесты.
 
Недостатки:
  1. Так как поддерживает только Java, Вы должны иметь хотя бы базовые познания этого языка.
  1. Установка и калибровка среды тестирования занимает время.
 
Примечание: если вы работаете с Java, ищите инструмент для мульти задачного тестирования и можете уделить некоторое время на установку программы – TestNG определенно для Вас.
 
6. Jasmine
Jasmine – среда для юнит-тестирования JavaScript. Так же известен как Behavior Driven Development (BDD) подход JavaScript тестирования. Идеально подходит для веб-сайтов, проектов Node.js и вообще для всего, где JavaScript может найти свое применение. В основном используется в связке с AngularJS.
 
Достоинства:
  1. Кроме JavaScript, так же может быть применен по отношению к Python или Ruby. Чрезвычайно полезен, если Вам нужен один сервис тестирования как для клиентской разработки, так и для серверной.
  1. Поддерживается множеством CI (Codeship, Travic и прочее).
  1. Имеет встроенный Assert-синтаксис.
 
Недостатки:
  1. В большинстве сценариях требует прогонщика тестов (такого как Karma).
  1. В случае с асинхронным тестированием возникают трудности.
 
Примечание: Jasmine может оказаться прекрасным решением, если Вы нуждаетесь в унифицированном (клиент-серверном) сервисе юнит-тестирования.
 
7. Mocha
Mocha – это еще один сервис JavaScript юнит-тестирования с занятным для русскоязычного сектора названием и отнюдь не банальным функционалом. Используется на NodeJs, в основном часто применяется в связке с ReactJS.
 
Достоинства:
  1. Обладает встроенным тестовым прогонщиком.
  1. Поддерживает асинхронное тестирование.
  1. Позволяет большую гибкость, так как Вы спокойно можете использовать любую Assert-библиотеку (Chai, expect.js, Must.js прочие), которая будет отвечать Вашим требованиям (как замена стандартной NodeJs функции «assert»).
 
Недостатки:
  1. Относительно новый сервис (появился в 2012 году), что означает он в активном развитии и некоторые аспекты технологии могут быть не до конца задокументированными.
  1. Предоставляет только базовую структуру тестов, плюс требует дополнительную ручную установку и конфигурацию (для кого-то может быть плюсом).
 
Примечание: если Вы ищите независимую среду юнит-тестирования для JavaScript, Mocha – Ваше все!
А какую среду автоматического тестирования используете Вы? Что хорошего и что не очень Вы могли бы о ней сказать? Пожалуйста, приобщайтесь к дискуссии в комментариях! 😊

Автор перевода: Евгений Лукашук
 
 
СТАТЬИ ПО СХОЖЕЙ ТЕМАТИКЕ
ВИДЕО КУРСЫ ПО СХОЖЕЙ ТЕМАТИКЕ
КОМЕНТАРИИ И ОБСУЖДЕНИЯ

ПОДПИСКА НА ITVDN ВЫГОДА ДО 29.95$ НА ОБУЧЕНИЕ ПРЕСТИЖНЫМ ПРОФЕССИЯМ!

1 месяц19.99$
подписка

легкий старт в обучении

3 месяца49.99$
подписка

выгода от подписки до9.98$

6 месяцев89.99$
подписка

выгода от подписки до29.95$