Эффективное использование TestNG и JUnit

Фреймворки семейства xUnit -- это основа основ автоматизированного тестирования.

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

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

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

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

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

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

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

Формат курса

Онлайн-тренинг продолжительностью 4 занятия по 1,5 часа с еженедельными онлайн-консультациями и практическими домашними заданиями.

Обучение происходит следующим образом:

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

Теоретическую информацию можно посмотреть в любое удобное время.

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

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

Все выпускники, успешно сдавшие домашние задания, получают сертификат.

TestNG, Level 1

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

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

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

3. Assert и Assertion

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

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

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

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

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

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

  1. TestNG, Level 2

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

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

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

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

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

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

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

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

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

3. Assert и Assume

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

  1. группировка тестов в категории (Categories)
  2. параметризация тестов (Parametrized)
  3. 5. @Rule, замена @BeforeX и @AfterX правилами JUnit, Level 2

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

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

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

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

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

14.06.2016