Я бы предпринял следующие шаги:
- Обсудил с заказчиком риски отсутствия тестов (увеличение числа ошибок, сложность поддержки и развития, потенциальные финансовые потери из-за сбоев).
- Предложил начать с самых критичных частей проекта, где ошибки окажутся наиболее дорогостоящими.
- Показал на примерах, как автоматизация тестирования может ускорить разработку в будущем, снизив затраты на исправление багов.
- Начал внедрять юнит-тесты для нового кода или при рефакторинге существующих участков. Это менее затратно и демонстрирует преимущества тестирования постепенно.
- Предложил внедрить базовые интеграционные тесты для ключевых взаимодействий в системе.
- Настроил CI/CD для автоматического запуска тестов при внесении изменений.
- Вел учет найденных багов и демонстрировал, как их можно было бы предотвратить с помощью тестов.
- Искал возможности для внедрения автоматизированных тестов на основе анализа существующего кода и его часто используемых частей при проведении других работ (например, оптимизации или доработки функционала).
Пример внедрения теста для функции, которая часто ломается:
python