Ответ
Пункт чек-листа (test case) в процессе выполнения может иметь следующие базовые статусы:
- Not Run / Pending — тест еще не был запущен.
- Passed — тест выполнен, фактический результат соответствует ожидаемому.
- Failed — тест выполнен, но обнаружено несоответствие (дефект).
- Blocked — выполнение теста невозможно из-за блокирующей проблемы (критичный баг, отсутствие доступа).
- Skipped — тест намеренно пропущен (неприменим в текущем контексте, например, для определенной ОС).
Почему нужны статусы? Они дают моментальную визуализацию прогресса тестирования и качества функциональности.
Пример реализации в коде тестового фреймворка:
from enum import Enum
class ChecklistStatus(Enum):
NOT_RUN = "Not Run"
PASSED = "Passed"
FAILED = "Failed"
BLOCKED = "Blocked"
SKIPPED = "Skipped"
# Использование
current_status = ChecklistStatus.PASSED
print(f"Test result: {current_status.value}")
Инструменты (TestRail, Zephyr) могут использовать дополнительные статусы, такие как Retest или In Progress.
Ответ 18+ 🔞
А, слушай, вот эта вся хуйня про статусы тестов — это ж как в больнице, блядь! Привезли пациента, а у него на лбу уже бумажка приклеена: «Not Run», «Passed» или там «Failed», ёпта. Без этого вообще нихуя не понятно, что происходит.
Вот смотри, у тебя есть чекалка, список этих... тест-кейсов, блядь. И у каждого из них — своя судьба, как в сериале. Всего пять основных, классических, блядь, состояний:
- Not Run / Pending — это как новенький, необстрелянный. Лежит себе, сука, на полке, ждёт своего звёздного часа. Никто его ещё не трогал, не дышал на него. Чистенький, блядь.
- Passed — о, красавчик! Всё сделал, как надо, нихуя не сломал. Фактический результат и ожидаемый — близнецы-братья, блядь. Можно выдохнуть и поставить галочку, ёбана.
- Failed — вот тут начинается драма, блядь. Тест выполнился, да, но нашёл косяк. Дефект, несоответствие, пиздец. Красненький такой статусик, всем своим видом говорящий: «Э, разработчик, иди сюда, нахуй, тут твоё творение обосралось!».
- Blocked — это вообще анекдот, блядь. Представь: пришёл ты на кухню яичницу пожарить, а газа нет, плита сломана. И хуй ты что сделаешь. Вот и тест такой: запустить-то его можно, но нихуя не выйдет, потому что всё падает ещё до него. Критичный баг посередине, или доступ отрубили. Стоит, сука, с табличкой «Не беспокоить, я заблокирован».
- Skipped — а это хитрая жопа, блядь. Тест намеренно пропустили. Не потому что сломан, а потому что он, например, для iOS, а мы сейчас на Android тестим. Или фича выключена флагом. Умно, без паники.
А нахуя это всё? Да чтобы, блядь, одним взглядом на дашборд понять: о, ёбана, половина тестов красная — тут пиздец и срочный митинг нужен. Или: всё зелёное — можно, сука, расслабиться и пойти кофе пить. Визуализация прогресса, ёпта, чистой воды!
Ну и в коде это выглядит просто, как палка о двух концах. Смотри, не трогай, там всё правильно:
from enum import Enum
class ChecklistStatus(Enum):
NOT_RUN = "Not Run"
PASSED = "Passed"
FAILED = "Failed"
BLOCKED = "Blocked"
SKIPPED = "Skipped"
# Использование
current_status = ChecklistStatus.PASSED
print(f"Test result: {current_status.value}")
А в этих ваших хайповых штуках типа TestRail'а могут быть ещё статусы — Retest (перетестили, ждём вердикта) или In Progress (прямо сейчас кто-то над этим потеет, блядь). Но основа — вот эти пять, как пять пальцев, ебать мои старые костыли.