7 Характеристик Хороших Тестов

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

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

Мы поработали над несколькими миллионами автоматизированных тестов (вот как это работает) и пришли к выводу, что есть 7 характеристик хорошо написанных тестов:

  1. Тест полностью автоматизирован (очевидно)
  2. Повторяем тест: тест не ломается, если приложение не менялось
  3. Тест заканчивается проверкой
  4. Тест достаточно стабилен для использования в CI/CD.
  5. Тест очень легко читается.

  6. Тест требует минимальной поддержки
  7. Тест выполняется параллельно с другими тестами и не прерывается.

Позвольте мне объяснить, что я имею в виду.



Тест полностью автоматизирован

Иногда встречаются тесты, которые не полностью автоматизированы.

Самые распространенные причины: либо очень сложно (как в случае с медленной работой), либо просто невозможно (как проверить, что касса открылась?).

В данной статье мы не рассматриваем такие неполные тесты.



Повторяем тест: тест не ломается, если приложение не менялось

Это относится к основам генерации уникальных данных.

Например, мы тестируем регистрацию.

Очевидно, что если вы не сгенерируете уникальное письмо, то такой тест, скорее всего, не пройдет в продакшене.



Тест заканчивается проверкой

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

Это помогает гарантировать, что последнее действие было успешным.



Тест достаточно стабилен для использования в CI/CD.

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

Тест очень легко читается.

Обычно мы не пишем тесты в одиночку.

Часто это команда людей, и наши коллеги также должны поддерживать наши тесты.

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

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



Тест требует минимальной поддержки

Суть очевидна, но не всегда соблюдается.

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



Тест выполняется параллельно с другими тестами и не прерывается.

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

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

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

Оригинал здесь .

Теги: #Тестирование мобильных приложений #Тестирование ИТ-систем #автоматизация тестирования

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.