Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

26.04.2023

Неочевидні переваги інтеграційних тестів

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

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

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

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

Тому дуже радий, що ще один аспект продукту тепер перетворився з загадкового “треба буде перевірити на продакшені” в зрозумілий “ось як воно все працює”.