Какие статусы выполнения могут быть у пункта чек-листа?

Ответ

Пункт чек-листа (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 (прямо сейчас кто-то над этим потеет, блядь). Но основа — вот эти пять, как пять пальцев, ебать мои старые костыли.