Анатомия фреймворка автоматического тестирования

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

Зачем автоматизировать ваши тесты?

Многие компании выполняют регрессионные тесты вручную. Возникает вопрос: Когда имеет смысл начать автоматизацию ваших регрессионных тестов? Смысл появляется тогда, когда вы уже не в состоянии выполнить тесты для каждой сборки. Например, когда у вас делается ежедневная или еженедельная сборка и вы не можете быстро выполнить ваши регрессионные тесты для каждой сборки, то это самое время подумать об автоматизации. Автоматизация тестов имеет следующие преимущества:

  • Быстрые релизы - Имея автоматически выполняемые регрессионные тесты, ваша команда тестировщиков может сконцентрироваться на тестировании новой функциональности и тратить меньше времени на регресионное тестирование существующий функциональности
  • Лучшее качество - Функциональность будут иметь меньше дефектов и требовать меньше поддержки, т.к качество будет значительно выше
  • Довольные клиенты - Клиенты и/или заказчики будут более довольны, тем самым вы получите хорошую запись в портфолио

 

Что такое фреймворк автоматического тестирования?

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

Анатомия Успешного фреймворка автоматического тестирования

Когда вы проектируете фреймворк, обращайте внимание на следующие функции, так как они могут значительно улучшить его и уменьшить риск провала автоматизации:

1. Keyword Driven подход

Если ваши тестировщики не являются экспертами скриптовых языков, подумайте о том, чтобы заменить скрипты тестами на основи ключевых слов (keyword-driven). Этот подход позволяет тестировщику (равро как и эксперту автоматизации) создавать автоматические тесты просто описывая каждый шаг теста. Например, вы автоматизируете процесс авторизации, где пользователь должен запустить приложение, ввсести свое имя пользователя и пароль, а затем нажать кнопку входа. Традиционно тестировщики написали бы VB скрипт, который бы запустил приложения, распознал каждый объект на экране (поля ввода имени, пароля, кнопку входа), далее вводил имя пользователя, пароль и нажимал бы кнопку входа. При использовании подхода Keyword Driven, тестировщику не обязательно понимать скриптовый язык для того чтобы создать такой тест, ему нужно просто описать эти события (запуск приложения, ввод имени пользоватиля "abc", ввод пароля "ххх", нажатие кнопки "вход"). Как вы можете себе представить, этот подход автоматизации гораздо проще, чем написание только скриптов.

2. Итерации наборов данных

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

3. Распределенный запуск на нескольких компьютерах

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

4. Автоматический запуск по времени

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

5. Отчеты результатов запуска

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

2 лайка