AI Self-Healing Tests: автоматичне виправлення зламаних тестів
Нестійкі тести гаспідять час: розробники розслідують, розуміють що UI-зміна, виправляють локатор. Self-healing тести виявляють відмови, розуміють root cause та виправляють себе — логуючи зміни для огляду.
Архітектура Self-Healing
Тести, які ломаються, автоматично аналізуються та виправлення пропонуються або застосовуються.
class SelfHealingTestRunner:
async def run_with_healing(self, test_func, locators: dict):
try:
return await test_func()
except (TimeoutError, ElementNotFoundError) as e:
repair = await self.analyze_and_repair(e, locators)
if repair.confidence > 0.9:
updated_locators = self._apply_repair(locators, repair)
log_repair(test_func.__name__, repair)
return await test_func()
else:
notify_developer(repair)
raise
async def analyze_and_repair(self, error, locators) -> Repair:
prompt = f"""Тест впав: {error}
Поточні локатори: {locators}
Ймовірні причини:
- Елемент перемістився
- Елемент прихований
- DOM структура змінилась
Запропонуй виправлення з балом впевненості."""
return await self.llm.ainvoke(prompt)
Кейс: 500-тестовий набір, 15% нестійких. З self-healing: 80% авто-виправлено, 15% перевірено, 5% реальних багів.
Строки: базовий self-healing: 2–3 тижні.







