В такой ситуации, при отсутствии возможности внедрить полноценное тестовое покрытие, я сосредоточусь на следующих шагах для минимизации рисков и повышения качества:
- Ручное тестирование ключевых сценариев: Определю наиболее критичные функциональности и буду выполнять ручное регрессионное тестирование после каждого значительного изменения.
- Улучшение качества кода: Внедрение статических анализаторов кода (например, flake8, Pylint) и линтеров (например, Black, Isort) для поддержания единообразного стиля и выявления潜在льных проблем.
- Code Review: Активное участие в процессе code review для выявления логических ошибок, потенциальных багов и улучшения читаемости кода.
- Логирование и мониторинг: Установка системы логирования для отслеживания ошибок и исключений в production, а также внедрение базового мониторинга производительности.
- Микротесты (при возможности): Если позволяет время и сложность кода отдельных модулей, локально писать небольшие тесты для критичных функций, даже если они не интегрируются в CI/CD.
- Документирование: Подробное документирование функциональности и ожидаемого поведения системы для облегчения понимания и отладки.
- Постепенное внедрение: При любом удобном случае, например, при исправлении критического бага, предложить написать минимальный тест, который покрывает исправленный сценарий, аргументируя это предотвращением повторных ошибок.
python
Это позволит хотя бы частично компенсировать отсутствие полноценного тестирования и снизить количество дефектов, даже без прямого инвестирования в разработку тестов.