Ближайшая дата тренинга

Автор и ведущий тренинга –- Алексей Баранцев:

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

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

В этом тренинге рассматриваются два наиболее популярных тестовых фреймворка для языка программирования Java -- JUnit и TestNG.

Начать работать с этими фреймворками несложно. Однако опыт показывает, что большинство автоматизаторов использует лишь незначительную часть возможностей, которые предоставляют тестовые фреймворки.

Но может быть эти “продвинутые” возможности просто не нужны, поэтому и не используются?

Увы, часто тестировщики-автоматизаторы строят сложные конструкции из “костылей” и изобретают самодельные велосипеды, не подозревая о том, что нужная функциональность может быть реализована гораздо более простым способом.

Из тренинга вы узнаете, как организовывать тесты в группы, как их запускать в нужном порядке, как правильно описывать зависимости между тестами, как реализовать “мягкие” и “жесткие” проверки, как сделать тесты параметризованными, как реализовать загрузку данных из разных источников и применять подход DDT (data-driven testing), как автоматически перезапустить упавшие тесты и ещё многое другое.

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

TestNG, Level 1

1. Подготовка к использованию

  • интеграция со средами разработки
  • интеграция со сборщиками Maven, Ant, Gradle

2. Формирование тестового набора, основные аннотации @Test, @BeforeX, @AfterX

3. Assert и Assertion

4. Конфигурационный файл

5. Зависимости между тестами, порядок выполнения

6. Группы тестов

7. Параметризация тестов

  • через конфигурационный файл
  • через @DataProvider

8. Параллельное выполнение тестов

TestNG, Level 2

1. Фабрики тестов @TestFactory

  • параметризация провайдеров данных
  • конфигурационное тестирование
  • построение сложных сценариев из простых блоков

2. Использование Listeners

  • IMethodInterceptor (пример: упорядочивание тестов)
  • IHookable (пример: немедленное повторение “упавших” тестов)
  • IAnnotationTransformer2 (пример: игнорирование тестов, помеченных специальной аннотацией)

3. Инъекция информации о тестах и результатах в @BeforeX, @AfterX, @Test и @DataProvider

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

JUnit, Level 1

1. Подготовка к использованию

  • интеграция со средами разработки
  • интеграция со сборщиками Maven, Ant, Gradle

2. Формирование тестового набора, основные аннотации @Test, @Suite, @BeforeX, @AfterX

3. Assert и Assume

4. Стандартные “расширенные” запускатели тестов

  • группировка тестов в категории (Categories)
  • параметризация тестов (Parametrized)

5. @Rule, замена @BeforeX и @AfterX правилами

JUnit, Level 2

1. Более сложные правила

  • параметризация тестов, в том числе загрузка данных из файлов
  • немедленное повторение “упавших” тестов
  • автоматическое снятие скриншотов, видеозапись хода выполнения тестов
  • дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией, перезапуск браузера перед определёнными тестами)

2. @RunsWith -- самодельные запускатели тестов

  • конфигурационное тестирование
  • порядок выполнения тестов
  • дополнительные аннотации (пример: игнорирование тестов, помеченных специальной аннотацией, перезапуск браузера перед определёнными тестами)

3. @Theories -- почти тестирование на основе моделей

Go to top