Налаштування Chromatic для автоматичного візуального тестування

Інтерфейс змінюється швидше, ніж команда встигає його перевіряти: ручні обходи сторінок не виявляють розбіжностей у верстці. Ми налаштовуємо автоматичне візуальне тестування під ключ — від розбору макетів до готових схем і регламентів. Порівняння збірок скорочує час перевірок і прибирає хибні розбіжності.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування Chromatic для автоматичного візуального тестування
Простий
від 1 дня до 3 днів
Часті запитання

Чому візуальне тестування впирається в ручні перевірки

Правка в загальному компоненті — кнопці, полі введення, картці товару — вирушає в реліз і розсипає верстку на десятках сторінок одразу. Розробник перевіряє три-чотири екрани, де компонент лежить на виду, а ламається він там, де його рік тому вставили з нестандартним відступом. Такий регрес верстки спливає вже після викочування, і першими його бачать користувачі.

Розбіжності інтерфейсу майже ніколи не видно на «середньому» екрані — вони ховаються у вузькому наборі станів: порожній список, довга назва, помилка валідації, переповнення таблиці.

Пройти ці стани вручну за всіма роздільними здатностями й ролями неможливо, тому ручні перевірки верстки закривають лише малу частину реальних поєднань.

Далі підключається приймання релізу: дизайнер та аналітик відкривають макети й посторінково звіряють відступи, кольори й перенесення тексту очима. Перевірка макетів перед релізом розтягується на дні, спірні місця розбираються поза чергою — і реліз переноситься.

Це вузьке місце в прийманні релізу, а не разова накладка: чим більше сторінок, тим менше шансів, що очима встигнуть подивитися все.

Розбираємо, як це закривається: знімок кожної сторінки й кожного стану на кожній зміні, автоматичне порівняння з еталоном і звіт лише за реально зміненими ділянками інтерфейсу.

Такий процес — наприклад, на Chromatic — знімає з приймання ручний перегляд і залишає людині рішення щодо спірних розбіжностей.

Що дає регулярне порівняння збірок інтерфейсу

Порівняння кожної збірки з базовим знімком інтерфейсу дає три вимірювані ефекти: раннє виявлення розбіжностей, передбачуваний час приймання релізу й менше навантаження на підтримку інтерфейсу.

Усі вони — наслідок одного механізму: відхилення від еталона фіксується на конкретній правці, а не в момент, коли сторінку вже відкрив клієнт.

Скільки розбіжностей ловиться до релізу

За налаштованих допусків і масок для динамічних зон — дат, лічильників, аватарів, рекламних вставок — шум порівняння падає в рази, а реальні зміщення залишаються помітними.

До релізу вдається зловити близько дев'яти розбіжностей із десяти: зсув сітки на вузьких екранах, обрізаний текст у локалізації, «поїхавший» блок після правки загального компонента.

Решта — рідкісні стани на кшталт порожньої видачі або довгих імен, їх закривають окремими сценаріями. Клас відмов верстки переходить із випуску в історію збірки, де в кожного відхилення видно автора зміни й дату.

Час приймання і зриви термінів випуску

Коли перевірка розбіжностей стоїть у конвеєрі збірки, приймання релізу скорочується з кількох днів до годин: замість суцільного проходу сторінками команда дивиться короткий список відхилень із підсвічуванням різниці.

Терміни випуску перестають зриватися через знахідки в останній день — спірні місця спливають на етапі правки, коли їх правлять за хвилини.

Навантаження на підтримку інтерфейсу при цьому падає: звернення на кшталт «на телефоні кнопка наїхала на текст» перестають приходити пачками після кожного оновлення.

Загалом регулярне порівняння збірок змінює саму економіку випуску: менше ручної перевірки, коротший цикл приймання, передбачувана підтримка інтерфейсу.

Порівняння підходів до візуального тестування

Вибір підходу зводиться до того, де ловиться розбіжність і скільки ручної роботи залишається команді. Автоматизація будується на порівнянні знімків інтерфейсу, і Chromatic закриває зв'язку «збірка — еталон — звіт». Нижче — чотири альтернативи, між якими обирають.

Варіант Коли підходить Обмеження
Знімки на етапі збірки Стабільна верстка, часті релізи Потребує підтримки еталонів і чистих динамічних даних
Перевірка в різних браузерних середовищах Широка аудиторія, складна верстка Прогін довший, частина розбіжностей — артефакти відмальовування
Ручний перегляд за списком Нові екрани, анімації, стани без макета Не масштабується: пропуски на периферійних сторінках
Змішаний режим Зрілий продукт із критичними сценаріями Потрібна дисципліна: пороги, пріоритети, розбір черги

Де проходить межа порогових значень

Поріг задає частку відмінних точок, нижче якої знімок вважається збіжним. Для текстових блоків його тримають мінімальним, для карток із зображеннями — вищим, інакше прогін шумить на згладжуванні.

Перевірка на різних роздільних здатностях потребує окремого набору еталонів: те, що непомітно на широкому екрані, ламає розкладку на вузькому.

Оновлення еталонів без зупинки релізів

Режим підтвердження еталонів вмикають адресно: новий знімок приймають як еталон після розбору причини розбіжності. Оновлення йде окремою зміною і не вимикає перевірку цілком — інакше контроль зникає там, де у верстку внесли правки.

Порядок впровадження: від розбору макетів до передачі команді

Впровадження візуального тестування — це не підключення сервісу, а вибудовування процесу: без еталонів і правил їх оновлення перевірки швидко перетворюються на потік хибних розбіжностей, який команда перестає читати. Працюємо етапами — до передачі залишається працюючий регламент, а не разові налаштування.

Підготовка еталонів та інвентаризація станів

  1. Інвентаризація сторінок і станів: збираємо список маршрутів, роздільних здатностей екрана й варіантів інтерфейсу — модальні вікна, помилки валідації, порожні списки, гостьовий і авторизований вигляд. Покриття фіксуємо таблицею, щоб нові екрани не залишалися поза перевірками.
  2. Еталонні знімки робимо з перевіреної збірки на фіксованих даних, а не з поточного стенда: інакше в базу порівняння потрапляють чужі правки й випадковий контент.
  3. Запуск перевірок у збірці: порівняння через Chromatic вбудовуємо в конвеєр так, щоб воно йшло на кожну зміну у гілці й блокувало злиття при розбіжності, а звіт із підсвічуванням відмінностей відкривався прямо із завдання.

Відсікання хибних спрацювань

  • Хибні розбіжності розбираємо за причинами: анімації, підвантаження шрифтів, дати, випадкові дані, відкладене завантаження зображень. Нестабільні блоки маскуємо, час і анімації фіксуємо, динаміку підмінюємо передбачуваними даними.
  • Регламент оновлення еталонів: хто має право оновити знімок, коли це усвідомлена правка верстки, а не придушення помилки, і як причина фіксується в історії.
  • Навчання команди: розробники й тестувальники самі читають звіт і відрізняють хибну розбіжність від реального дефекту.

Підсумок — перевірки йдуть на кожну зміну, частка хибних спрацювань падає до одиниць, а еталони оновлюються за правилом, а не за домовленістю в листуванні.

Артефакти в репозиторії: конфігурації, схеми, регламенти

Впровадження закінчується не звітом про роботи, а набором файлів у репозиторії, за якими команда продовжує перевіряти інтерфейс без нас. Усе лежить поряд із кодом і версіонується разом із ним — при переїзді або зміні підрядника нічого не потрібно відновлювати з листування.

  • Файл конфігурації перевірок: які збірки порівнюються, з яким допуском і за яких умов розбіжність блокує злиття змін.
  • Карта покриття сторінок і станів — таблиця, де для кожного маршруту позначено, які роздільні здатності екрана, теми й варіанти даних потрапляють у порівняння.
  • Набір еталонних знімків із прив'язкою до гілки й тегу релізу: відкат до попередньої версії не потребує перезнімання.
  • Інструкція з оновлення еталонів — хто і в якому порядку підтверджує новий стан інтерфейсу.
  • Регламент розбору розбіжностей: як відділяти справжню поломку верстки від шуму анімацій, шрифтів і підвантаження даних.
  • Схема прав: кому доступний перегляд звітів, кому — підтвердження еталонів.
  • Чек-лист підключення нового розділу: що додати в карту покриття, щоб сторінка не залишилася без перевірок.

Політики доступу до звітів та еталонів

Перегляд звітів відкритий усій команді — розбіжність бачить і розробник, і тестувальник. Підтверджувати еталони можуть лише відповідальні за інтерфейс, інакше спірний стан мовчки закріпиться як норма.

Права видаємо через наявні групи в системі контролю версій, а не окремими обліковими записами: при виході людини доступ закривається автоматично.

Регламент оновлення еталонів

Еталони змінюються в тій самій зміні коду, де змінюється інтерфейс, — інакше перевірка ламається на наступному злитті. Спірну розбіжність не підтверджують на бігу, а розбирають за чек-листом вище; масове оновлення оформлюється окремою зміною з поясненням причини.

Кейс: прибрали хибні розбіжності після зміни верстки

Що було до: ручний перегляд і пропущені дефекти

Проєкт — інтернет-магазин із каталогом, кошиком і особистим кабінетом: 40 ключових екранів і по кілька станів на кожному.

Перед випуском двоє інженерів проходили їх очима за чек-листом — це займало 3-4 години й залишало сліпі зони: поведінка після помилки валідації, довгі назви товарів, порожній кошик.

За квартал у випуск пішло шість дефектів верстки: зламана сітка карток на вузьких екранах, кнопка, що наїхала на текст при локалізованих підписах, обрізаний блок ціни. Ручний перегляд не масштабувався — чим більше екранів додавали, тим менше часу залишалося на кожен.

Що стало після: покриття й час приймання

Ми підключили Chromatic до збірки: кожен коміт збирає знімки компонентів і сторінок в ізольованому середовищі, розбіжності приходять у рев'ю з накладенням «до/після».

Покриття зросло з двох десятків станів, які встигала перевірити людина, до 180 знімків — включно зі станами завантаження, помилок і різними ширинами екрана.

Окрема робота — хибні спрацювання. Перші тижні знімки «дрижали» на анімаціях і підвантаженні шрифтів; ми вимкнули анімації на час знімка, зафіксували шрифти й замаскували динамічні блоки на кшталт лічильника товарів у кошику.

Частка хибних спрацювань залишилася нижчою за 5% — інженер відкриває розбіжність і відразу бачить, дефект це чи шум.

Час приймання релізу скоротився з 3-4 годин до 40 хвилин, а пропущені дефекти верстки у випуску — з шести за квартал до нуля в останніх трьох релізах. Якщо розбіжностей немає, реліз виходить без ручного обходу.

Що робити, якщо перевірки інтерфейсу вже налаштовані

Частково налаштовані перевірки — часта ситуація: візуальне тестування запускається, але покриває один сервіс або кілька ключових екранів, а еталони збирали вручну. Частина знімків застаріла, поріг спрацювання розмитий, результат читають «на око».

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

Шлях Коли підходить Обмеження й ціна переходу
Розширення покриття Базові сценарії вже зелені, потрібні стани: модальні вікна, порожні й переповнені списки, помилки валідації Зростає кількість знімків — потрібні групування за компонентами й правила допуску відмінностей
Перенесення перевірок у збірку Перевірки запускають вручну або окремим завданням після випуску Потрібно стабілізувати середовище й вимкнути анімації, еталони доведеться прийняти заново
Перебудова з нуля Еталони застаріли, відмінностей більше, ніж збігів, довіри до результатів немає Повний прохід екранами й станами, зате знімається борг хибних спрацювань

Міграція еталонів — найважча частина будь-якого зі шляхів: знімки, зроблені за іншого середовища, розміру вікна чи шрифтів, дають розбіжності на рівному місці.

У Chromatic знімки прив'язані до збірки, тому при зміні режиму відмальовування еталони приймають заново — робота разова, але її потрібно запланувати.

Починаємо з інвентаризації: які екрани й стани покриті, які відмінності позначені допустимими, де вимкнені пороги. За нею обираємо шлях і фіксуємо точки, на яких перевірка стає обов'язковою для випуску.

Технічні сумніви: шум, стабільність, підтримка

Візуальне тестування ламається не на першому прогоні, а на десятому: знімки починають падати через дати й слайдери, і команда перестає їм довіряти. Нижче — п'ять сумнівів, які спливають до впровадження, і те, як ми їх закриваємо.

Динамічний контент дає шум — як із ним бути?

Блоки з датами, лічильниками, слайдерами й аватарами маскуються — порівняння йде за рештою макета. Анімації й каруселі на момент знімка вимикаються, дані підставляються фіксовані.

Оформлення оновлюється часто — еталони переписувати вручну?

Ні. Нові знімки приймаються як нова версія еталона й потрапляють на перевірку разом із кодом — видно, які правки оформлення прийняті усвідомлено, а які проскочили випадково.

Чи потрібен окремий стенд під прогони?

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

Де зберігаються еталони й що з ними при гілкуванні?

Еталони лежать у репозиторії поряд із кодом і прив'язані до коміту, тому відкат гілки повертає й знімки. Історія версій залишається прозорою: видно, хто й коли прийняв зміну.

Хто супроводжує це після передачі?

Передаємо конфігурацію, конвенції іменування й розбір типових збоїв, навчаємо команду. Далі прогони ведуть ваші інженери самостійно — або ми залишаємося на підтримці.

Обговоримо задачу й повернемося з оцінкою та планом

Опишіть задачу — повернемося з оцінкою та планом. Щоб оцінка обсягу робіт була предметною, а не «за відчуттями», достатньо надіслати доступ до репозиторію, опис середовищ і перелік критичних сторінок; решту уточнимо в розмові.

  • доступ до репозиторію в режимі читання й команду збірки — цього достатньо, щоб зрозуміти, як запускаються перевірки;
  • опис середовищ: де розгортаються гілки, який стенд вважається релізним і як у них потрапляють дані;
  • перелік критичних сторінок і станів: авторизація, порожні й переповнені списки, помилки форми, модальні вікна, довгі тексти;
  • поточні правила приймання: хто підтверджує правки інтерфейсу й на що дивиться перед викладкою;
  • відомі болючі точки: де верстка розходиться між браузерами й що найчастіше ламається при оновленнях;
  • побажання щодо звітів: куди надсилати розбіжності й хто розбирає їх першим.

У відповідь надсилаємо склад покриття — які екрани й стани закриє візуальне тестування, а які залишаться за ручною перевіркою, — схему етапів впровадження перевірок і план робіт із порядком приймання результату.

Перевірки ставимо на Chromatic і вмикаємо спочатку на одному сервісі: знімаємо шум від динамічних блоків, домовляємося про поріг розбіжностей, і лише потім розширюємо охоплення. Так перший результат помітний швидко, а правила приймання не доводиться переписувати по ходу.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060