Ответ
Test Exit Criteria — это заранее определённый набор измеримых условий, которые должны быть выполнены для принятия решения о завершении тестирования и готовности продукта к выпуску.
Цель: Объективно определить момент окончания тестирования, избегая субъективных решений и преждевременного релиза.
Типичные примеры критериев:
- Качество дефектов: Все дефекты с критическим и высоким приоритетом исправлены и перепроверены.
- Покрытие: Достигнут целевой уровень покрытия кода (
code coverage) или требований (requirements coverage), например, 90%. - Выполнение тестов: Успешно выполнены все запланированные тестовые сценарии, включая smoke, регрессионные и acceptance-тесты.
- Производительность: Ключевые метрики производительности (время отклика, пропускная способность) соответствуют SLA.
- Стабильность: Приложение работает стабильно в течение определённого времени (например, 48 часов) без критических сбоев.
Пример проверки на Python:
def is_testing_complete(critical_bugs_fixed, test_coverage_percent, all_tests_passed):
"""Функция проверки критериев выхода."""
exit_criteria_met = (
critical_bugs_fixed == 100 and # 100% критических багов исправлено
test_coverage_percent >= 90 and # Покрытие >= 90%
all_tests_passed == True # Все тесты пройдены
)
return exit_criteria_met
# Использование
if is_testing_complete(100, 92, True):
print("Критерии завершения тестирования выполнены. Можно готовить релиз.")
else:
print("Тестирование необходимо продолжить.")
Критерии обычно определяются на этапе планирования тестирования (Test Plan) и согласуются со всеми заинтересованными сторонами.
Ответ 18+ 🔞
Да ты послушай, что эти умники придумали, чтобы тебя не наебали с релизом! Test Exit Criteria, блядь. Это не когда тебе надоело или глаз дергаться начал. Это четкий список, типа "вот когда всё это будет сделано — тогда и пиздуй на прод, а не раньше".
Зачем это надо, спросишь? А чтобы какой-нибудь менеджер-распиздяй не начал орать "Да хули вы там ковыряетесь, у нас сроки горят!", а ты мог ткнуть ему пальцем в бумажку и сказать: "Вот, сука, смотри: пункт три — не выполнен. Иди нахуй, будем доделывать". Объективность, мать её.
И что туда обычно пишут, эти ваши критерии? Да всё просто, как три копейки:
- По багам: Все критические и высокие баги — не просто закрыты, а именно исправлены и проверены. Не "ну вроде пофиксили", а именно "перетестил — не воспроизводится, ебать колотить".
- По покрытию: Достигли мы, допустим, этих ебучих 90% покрытия кода или требований. Не 89,5%, а ровно 90 или больше. Цифра, её не поспоришь.
- По тестам: Все запланированные тесты — дымовые, регресс, приемочные — прошли. Не "ой, ну эти пять штук мы пропустим, они же мелочь", а ВСЕ, блядь.
- По производительности: Сервис не падает под нагрузкой, как последняя шлюха, а откликается в рамках договоренностей. Циферки в отчёте должны быть зелененькие, а не красные.
- По стабильности: Приложение не вылетало в говно, скажем, последние двое суток. Тишина, блядь, и благодать.
Вот, смотри, как это в коде выглядит, чтоб ты понимал масштаб:
def is_testing_complete(critical_bugs_fixed, test_coverage_percent, all_tests_passed):
"""Функция проверки критериев выхода."""
exit_criteria_met = (
critical_bugs_fixed == 100 and # 100% критических багов исправлено
test_coverage_percent >= 90 and # Покрытие >= 90%
all_tests_passed == True # Все тесты пройдены
)
return exit_criteria_met
# Использование
if is_testing_complete(100, 92, True):
print("Критерии завершения тестирования выполнены. Можно готовить релиз.")
else:
print("Тестирование необходимо продолжить.")
Главное, ёпта, — договориться про эти критерии ЗАРАНЕЕ, ещё на этапе планирования, и чтобы все начальники и продукт-овнеры их подписали своей кровью. А то потом начнется: "А мы так не договаривались!", "А это не критично!". Нет, сучки, договаривались вот так. Теперь сиди и жди, пока все галочки не поставятся.