Pull to refresh

Нужны ли тесты именно вашему проекту?

Reading time3 min
Views4K

Нужны ли тесты именно вашему проекту?


Всем привет! Меня зовут АйТи Синяк!


Изображение приветствующего персонажа с синей кожей

В последнее время в моем окружении часто возникает вопрос о важности/нужности тестов. И я решил попробовать опубликовать мое текущее видение ситуации (надеюсь это будет череда статей/видео), чтобы можно было отвечать коллегам ссылкой на всеми любимый Хабр.


Начну, пожалуй, с воспоминаний.


Стою я как-то перед Лидом, совсем зеленый еще, и спрашиваю его:


Изображение молодого синяка разговаривающего с Лидом

A зачем нам нужны тесты?


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


а я не унимаюсь с вопросами:


А у нас то сайт по аренде квартир, пользователей очень мало, нам то зачем?


Лид понял, что покодить он не сможет и решил объяснить как обстоят дела:


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


Иллюстрация процесса CI

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


Пример сравнения поиска

Точно! — воскликнул молодой Синяк. — Я помню, как ребята команды тестирования радовались этому, я тогда не понимал всей важности момента… И-и-и … Последнее что я не могу понять, это зачем для тестирования понадобился StoryBook, как это вообще связано?
Тут все просто, у нас есть календарь для выбора дат, он бывает разным, для выбора просто даты или даты и времени или выбора промежутка дат. Точно такой же набор календарей с другим дизайном используется в админке. Если сюда еще добавить темную тему, то у нас уже почти 10 видов одного календаря.


Разные виды выбора календаря, для светлой и темной темы

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

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


StoryBook со вставленными в него вариантами выбора дат

Звучит как нанотехнология, сравнивать две картинки, пойду скорей смотреть как это работает! — восторженно пропищал молодой Синяк.




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


Просто подумайте об этом, если вдруг youtube перестанет выдавать интересные именно Вам видео или Yandex Radio начнет вместо хип-хоп выдавать рок музыку, а в ленте Instagram появятся абсолютно незнакомые вам люди. Все это можно покрыть тестами и быть спокойными при каждом релизе.

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 21: ↑4 and ↓17-11
Comments23

Articles