Ответ
В команде использовались unit, интеграционные и UI-тесты (Espresso). Unit-тесты покрывали бизнес-логику, интеграционные — взаимодействие модулей, UI-тесты — ключевые сценарии.
Пример unit-теста:
@Test
fun `calculateDiscount returns correct value`() {
val discount = DiscountCalculator.calculate(100, 20)
assertEquals(80, discount)
}
Тесты запускались в CI/CD (например, GitHub Actions) при каждом PR. Для UI-тестов использовали Firebase Test Lab. Покрытие было ~70% по unit-тестам, интеграционные и UI-тесты покрывали основные кейсы.
Проблемы: флаки UI-тестов (решали через idling resources), долгое выполнение (параллельный запуск).