Новый заказчик, проект на Rails 6.1, тестов почти нет, SimpleCov показывает 11%. В договор на поддержку хотят пункт «покрытие не ниже 90% к концу квартала». Я не против тестов, но 90% на легаси за три месяца значит, что я напишу кучу тестов на геттеры и контроллеры ради цифры, а места, где считаются деньги, так и останутся дырявыми. Как вы такое объясняете заказчику? Или соглашаться и не мучиться?
Я бы предложила вместо процента список сценариев. Цифру покрытия легко накрутить: строка считается покрытой, если через неё просто прошли. Тест, который делает post :create и не содержит ни одного expect, даёт зелёные строки по всему контроллеру и ничего не ловит. Заказчику понятнее, когда в договоре написано: оплата заказа, возврат, пересчёт скидки и выгрузка в учёт закрыты тестами. Процент пусть будет в отчёте как ориентир, без обязательства. Если очень хотят цифру, её можно смотреть только по app/models и app/services, SimpleCov умеет группы, и там хотя бы видно, что покрыта логика, а не вьюхи.
Ещё вариант для легаси: не общий процент, а правило «новый и изменённый код покрыт тестами». Заказчик видит, что качество растёт с каждым PR, а не к дате в договоре, и не надо писать тесты на код, который годами никто не трогает.