Пишем тест-кейсы, которые пройдут испытание автоматизацией. Часть 2

12 июля 2018

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

1. Обеспечьте уникальность шагов и проверок

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

Например, у вас есть диалоговое окно, которое содержит кнопку Close. Не нужно каждый раз, когда открывается диалоговое окно, прописывать «Кнопка Close присутствует». Достаточно сделать это в одном тест-кейсе.

Сделать все шаги уникальными, конечно, невозможно. Но если вы хотите улучшить автоматизацию, то объединяйте неуникальные шаги в один шаг без ожидаемого результата.

Пример:

Шаг 1 – Залогиньтесь под админом.

Ожидаемый результат – пользователь залогинен.

Шаг 2 – Перейдите на вкладку «Companies».

Ожидаемый результат – «Companies» открыта.

Так можно написать только в одном тест-кейсе. В остальных уберите ожидаемый результат, потому что там уже нет никакой уникальной проверки.

Итак: не повторяйте проверки в разных тестах и объединяйте неуникальные шаги в один шаг, опуская ожидаемый результат.

В итоге:

  • Тесты будут выполняться быстрее;
  • Меньше времени уйдет на автоматизацию и поддержку;
  • Баг не помешает выполнению нескольких автотестов.

2. Пишите подробные предусловия (Preconditions)

Preconditions – список действий, которые приводят тест-кейс к состоянию пригодному для проведения основной проверки. Или это может быть список условий, выполнение которых говорит о том, что система находится в пригодном для проведения основного теста состояния.

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

Рассмотрим пример.

Допустим, у нас есть тест-кейс на редактирование пользователя “Edit User”.

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

Решение: прежде чем редактировать пользователя, автотест должен его создать!

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

Поэтому, записываем в preconditions “Пользователь создан”. Если для теста важны какие-то параметры пользователя, указываем и их.

Автотест вероятно создаст этого пользователя, но сделает это перед началом теста. Важно понимать, добавление таких данных не является самим тестом, это просто вспомогательные действия.

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

3. Оптимизируйте размер тест-кейса

Какого размера должен быть тест кейс для автоматизации? Однозначного ответа нет.

Рекомендуем придерживаться следующего подхода:

1) Один тест – одна значимая проверка.

Например, проверить что пользователь может быть отредактирован.

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

3) Если есть неделимая последовательность шагов – прописать их в одном тест-кейсе.

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

4. Используйте кратчайший маршрут выполнения тест-кейса

Ведите тест кейс по максимально короткому пути. Что это значит?

Автотест использует то же самое приложение, что и вы, и он точно так же должен ждать пока страница загрузится. Любой переход по страницам, вкладкам, нажатие на кнопку, открытие или закрытие диалогов – все это занимает время. Минимизируйте эти действия по возможности.

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

Следуя всем этим нехитрым правилам, вы научитесь создавать тест-кейсы, которые будут легко использоваться автоматизаторами.

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