Заказчик хочет впис...
 
Уведомления
Очистить всё

Заказчик хочет вписать в договор 90% покрытия тестами. Как отговорить?

4 Сообщения
4 Пользователи
0 Реакции
559 Просмотры
vova64
Сообщения: 23
Автор темы
Собрал свой gem фрилансер
Присоединился: 4 года назад
[#19]

Новый заказчик, проект на Rails 6.1, тестов почти нет, SimpleCov показывает 11%. В договор на поддержку хотят пункт «покрытие не ниже 90% к концу квартала». Я не против тестов, но 90% на легаси за три месяца значит, что я напишу кучу тестов на геттеры и контроллеры ради цифры, а места, где считаются деньги, так и останутся дырявыми. Как вы такое объясняете заказчику? Или соглашаться и не мучиться?


3 ответа
Ксения 90
Сообщения: 18
Пишет тесты QA-автоматизатор
Присоединился: 4 года назад

Я бы предложила вместо процента список сценариев. Цифру покрытия легко накрутить: строка считается покрытой, если через неё просто прошли. Тест, который делает post :create и не содержит ни одного expect, даёт зелёные строки по всему контроллеру и ничего не ловит. Заказчику понятнее, когда в договоре написано: оплата заказа, возврат, пересчёт скидки и выгрузка в учёт закрыты тестами. Процент пусть будет в отчёте как ориентир, без обязательства. Если очень хотят цифру, её можно смотреть только по app/models и app/services, SimpleCov умеет группы, и там хотя бы видно, что покрыта логика, а не вьюхи.


Ответ
1 ответ
Илья50
Присоединился: 4 года назад

Дружит с bundler фрилансер
Сообщения: 6

+1 про сценарии. мне однажды хватило показать заказчику тест без единого expect и 100% по файлу, вопрос сняли


Ответ
kostya.sokurov
Сообщения: 73
Держит прод бэкенд-разработчик, senior
Присоединился: 4 года назад

Ещё вариант для легаси: не общий процент, а правило «новый и изменённый код покрыт тестами». Заказчик видит, что качество растёт с каждым PR, а не к дате в договоре, и не надо писать тесты на код, который годами никто не трогает.


Ответ