Диагностика падений и запуск в CI · QA Orbit
Перейти к содержимому
QA ORBIT
Новости Инструменты Библиотека Полезные сайты Курсы ИИ и тестирование
Войти
КурсыТренажёры3
Маршруты обучения
КурсыАвтоматизация тестирования: код, изоляция и CIУрок 5
Программа курса

Автоматизация тестирования: код, изоляция и CI

0 из 6 уроков пройдено
01Автотест как программа: данные, действие, оракул≈ 50 мин02Уровни проверки и контракт состояния≈ 50 мин03UI: локаторы, ожидания и наблюдаемый результат≈ 50 мин04Изоляция, fixtures и асинхронность≈ 50 мин05Диагностика падений и запуск в CI≈ 50 мин06Итоговый проект: надёжный набор публикации≈ 70 мин
Учебные данные. Реальные навыки.
Урок 05 / 6 · 05 · Поддержка≈ 50 мин с практикой

Диагностика падений и запуск в CI

Читаем actual/expected, отличаем дефект от проблемы теста и передаём воспроизводимую команду вместо зелёного скриншота.

В своём темпе
Что вы сможете после урока
  • Локализовать отказ по первому нарушенному ожиданию.
  • Проверять чувствительность набора на намеренно ошибочной реализации.
  • Сохранять exit code, версии и артефакты запуска в CI.

Падение — начало расследования

Сохраните исходное расхождение до любой правки ожиданий. Красный тест сообщает о расхождении наблюдения и ожидания, а не автоматически доказывает дефект продукта. Возможно, правило изменилось, исходные данные неверны, ожидание хрупкое или среда не готова. Начните с названия сценария, первого assertion, actual и expected. Повторите точную команду на том же снимке. Не удаляйте assertion и не расширяйте допустимые ответы до любого значения ради зелёного отчёта.

В buggy-версии AUTO-CORE-1 есть три целевых изменения: подсчёт title через UTF-16 length, разрешение читать чужой draft и пропуск проверки публикационного разрешения. Один и тот же contract.test.mjs даёт четыре отказа. Два сценария замечают одну проблему чтения: прямой тест чужого draft и предпосылка сценария редактора. Поэтому четыре красных теста не означают четыре независимых дефекта. Счётчик тестов и число причин — разные метрики.

Основной и намеренно красный запуск

shУчебный пример
node --version
node --test contract.test.mjs diagnostics.test.mjs
# fixed: 20 tests, 20 pass, 0 fail, exit 0

node run-buggy.mjs
# buggy: 17 tests, 13 pass, 4 fail, exit 1 (ожидаемо)
# run-buggy.mjs передаёт ORBITDESK_VARIANT=buggy независимо от shell

Что сохранять в доказательствах

Для каждого отказа зафиксируйте версию договора, реализацию fixed/buggy, версию Node, команду и первую разницу. Например, в Unicode-тесте actual=false,expected=true показывает неверную единицу длины. В тесте чтения actual200 против expected404 показывает нарушение A4. В тесте Boris/t1 возвращается published200 вместо FORBIDDEN403: нужно проверить A5 и полный эффект, а не переименовать ожидание в успех.

В diagnostics.test.mjs один зелёный тест проверяет, что assertion действительно бросает AssertionError на заведомо неверном числе. Это диагностика механизма проверки, а не дополнительное покрытие бизнеса. Не складывайте её с бизнес-сценариями как доказательство полноты требований. Аналогично строка «20 tests» полезна для контроля неизменённости пакета, но ничего не говорит о пропущенных границах description или настоящей авторизации: таких интеграций здесь нет.

CI повторяет команду, а не создаёт качество

В отдельном учебном репозитории установите поддерживаемый Node, сохраните все .mjs рядом и запускайте node --test contract.test.mjs diagnostics.test.mjs. Основной набор не имеет внешних зависимостей, поэтому npm install для него не требуется. CI должен сохранить stdout/stderr и код завершения. Если добавить «|| true», красный набор перестанет блокировать ошибку; зелёный статус задачи тогда не отражает результат тестов.

Намеренно красный прогон держите отдельной командой или отдельной диагностической задачей с явной проверкой ожидаемого exit 1. Не включайте buggy в основной обязательный зелёный job без объяснения. Случайный запуск node --test по папке использует fixed по умолчанию; launcher run-buggy.mjs сам по себе не является test-файлом. Если переменная ORBITDESK_VARIANT осталась в окружении, очистите её перед основным прогоном или явно задайте fixed.

Для браузерного сбоя trace помогает посмотреть последовательность действий, DOM и сетевые события, когда такой запуск реально был. Он может содержать чувствительные данные, поэтому учебная фикстура остаётся синтетической. В этом курсе trace не создан, поскольку Playwright runner не исполнялся. Ретраи могут помочь наблюдать нестабильность, но повторный зелёный результат не стирает первый отказ. Сначала сохраните доказательства и найдите зависимость от состояния, ожидания или среды.

Источники и проверка фактов

Node.js · Test reportersВывод и интерпретация результатов runner.Node.js · CLIЗапуск с --test и параметры процесса.Playwright · Trace viewerДиагностика реально выполненного браузерного сценария.

Авторский учебный материал · Редакция QA Orbit · версия 2026-10-28.1

Теперь применим это к задачеПопробуйте сами, прежде чем открывать разбор.
Предыдущий урокИзоляция, fixtures и асинхронностьСледующий урокИтоговый проект: надёжный набор публикации
QA ORBIT

Проверяй. Понимай. Расти.

Пространство осмысленного тестирования.
ИсследуйтеНовостиИнструментыБиблиотека
РазвивайтесьКурсыТренажёрыМаршруты обученияИИ и тестирование
Оставайтесь на орбитеО проекте Полезные сайтыГлоссарий
© 2026 QA Orbit. Сделано с вниманием к деталям.
КонфиденциальностьУсловия использования Всегда есть что исследовать