В 2022 году конференция PHP Russia пройдёт в рамках HighLoad++ 2022

Тестирование на бэкенде. Пирамида, моки, покрытие.

PHP Russia: Реальный опыт

Доклад принят в программу конференции

Тезисы

Все мы знаем насколько важны тесты. Также все мы хоть раз в какой-нибудь статье, презентации или книжке видели пирамиду тестирования, где в качестве уровней выступают различные виды тестов, такие как функциональные, интеграционные и unit-тесты. Везде описаны бенефиты, которые можно получить, правильно выстроив пирамиду тестирования. Однако на практике, зачастую, трудно разобраться, чем отличается один вид тестов от другого, в каком случае стоит написать unit, а в каком интеграционный или может вообще функциональный? А сколько тестов стоит написать на одну фичу? А нужно ли 100% покрытие кода? В этом всем еще предстоит разобраться…

В ходе доклада рассмотрим следующее:
- Что из себя представляет пирамида тестирования на бэкенде
- Почему важно задействовать все виды тестов
- Расскажу и покажу на примерах как разделять границы и сформировать пирамиду тестирования на примерах юнит, интеграционных, функциональных тестов
- Как правильно формировать тест-кейсы
- Что стоит покрывать тестами, а что можно оставить без покрытия
- Что нужно мокать в тестах, а что нет
- Как можно переиспользовать моки

Недавно присоединился к Авито в роли в backend-инженера (GoLang/PHP). До этого работал в aviakassa.com и simpleone.ru (backend, PHP). При написании кода предпочитаю руководствоваться здравым смыслом)

Авито

На Авито каждый может найти что-то своё среди миллионов частных объявлений и предложений компаний по всей России: от квартиры и автомобиля до работы и кандидатов на вакансии. Сервис делают 800 инженеров. У нас небольшой монолит на PHP, больше тысячи микросервисов на Go и Python, фронтенд на JavaScript, базы данных PostgreSQL, MongoDB и Redis, автоматические тесты, обученная на данных система модерации и поисковый движок Sphinx. Нашим продуктом каждый месяц пользуется треть населения России

Видео