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

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

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

  1. Тест полностью автоматизирован (очевидно)

  2. Тест повторяем. Тест не ломается если приложение не поменялось

  3. Тест заканчивается валидацией

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

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

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

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

Давайте поясню что имеется в виду:

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

Бывают иногда тесты когда какие-то части автоматизированы а какие-то нет. Потому что либо это очень сложно (как в случае с медленными джобами) или невозможно (как проверить что касса таки открылась?). Мы не рассматривает такие неполные тесты в этом эссе

Тест повторяем. Тест не ломается если приложение не поменялось

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

Тест заканчивается валидацией

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

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

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

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

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

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

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

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

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

Оригинально отсюда.

Источник: https://habr.com/ru/post/599507/


Интересные статьи

Интересные статьи

В мире информационных технологий много всего интересного — как среди аппаратного обеспечения, то есть «железа», так и программного. Одна из таких интересных вещей — Unix-подобная операционная систем...
Если у вас есть интернет-магазин и вы принимаете платежи через Интернет, то с 01 июля 2017 года у вас есть онлайн-касса.
Несмотря на то, что “в коробке” с Битриксом уже идут модули как для SOAP (модуль “Веб сервисы” в редакции “Бизнес” и старше), так и для REST (модуль “Rest API” во всех редакциях, начиная с...
Больше года назад стало известно о планах мессенджера Telegram выпустить собственную децентрализованную сеть Telegram Open Network. Тогда стал доступен объемный технический документ, который, пре...
Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использова...