Your AI powered learning assistant

Открытая сессия: Observability для QA: следим за качеством по приборам

Наблюдаемость Превращает Инструменты Контроля Качества в Измеримую Практику Наглядность тестирования позволяет получить конкретные цифры, на которые могут рассчитывать менеджеры, и которым могут доверять инженеры. Внедрение ИТ для тестирования открывает возможности для инструментов, навыков и практик, которыми часто пренебрегают, несмотря на высокую отдачу. Обнародование ИТ стимулирует внедрение и помогает количественно оценить качество продукта и личную работу.

Микросервисы, асинхронность и скрытые режимы сбоев В мире микросервисов синхронные вызовы HTTP/RPC и асинхронные взаимодействия с очередями приводят к множеству сбоев. Задержка в очереди, пропущенные сообщения и отложенные эффекты могут скрывать влияние тестов на системы. Каждая служба сохраняет состояние в сложных базах данных, где внутренние процессы могут снижать производительность, поэтому важно выбрать правильные показатели.

Реальность по вызову При тестировании релизов Gate Сервисы, доступные в режиме 24x7, требуют строгого времени безотказной работы, а автоматизированные системы будят инженеров при возникновении инцидентов. Если тесты блокируются, тестировщикам приходится принимать решения по вызову, чтобы определить, являются ли сбои реальными или вызваны шумом. Неудачный тест не дает никакой информации, поэтому быстрая диагностика становится основной задачей.

Устранение разрыва между разработкой и тестированием путем локализации сбоев Когда тест, который создает заказ, завершается ошибкой с результатом 500, отправка его в службу разработки вслепую приводит к потере времени. Различные стеки и контексты (например, сервис в Go, тесты в Python) препятствуют быстрой сортировке. Локализация сбоя до эскалации улучшает понимание и сокращает время восстановления.

Ожидайте чего угодно: от потери сервиса обнаружения до деградации базы данных Неудачный тест может быть вызван потерей возможности обнаружения служб, недоступностью сети или одним медленным запросом к большим наборам данных. Поведение базы данных, такое как деградация, вызванная ростом, или фоновые процессы, такие как vacuum, могут привести к остановке работы. Если предположить, что одна причина вводит в заблуждение, то широта возможностей требует систематических проверок.

Думайте как Жук, чтобы ориентироваться в инцидентах Использование детективного подхода превращает работу с инцидентами в систематическое расследование. Вместо того, чтобы спрашивать, где произошел сбой, исследуйте каждую зависимость от симптома. Такой подход позволяет последовательно выявлять причины, по которым можно принять меры, в сложных распределенных потоках.

Отслеживание 500-го числа по поврежденным тестовым данным Ошибка 500 в тестируемой системе может скрывать неопасную причину. В логах обнаруживается, что вспомогательная служба контроля качества возвращает сообщение “пользователь не найден”, а более глубокое отслеживание показывает, что в хранилище аутентификации отсутствует номер телефона, что препятствует регистрации. Добавление номера телефона исправляет запрос и заменяет 500 на ожидаемый код.

Разберитесь с проблемой как инженер-программист Рост происходит за счет отказа от перераспределения ответственности и принятия решений без границ. Современные команды ожидают, что инженеры будут писать тесты, предоставлять услуги, управлять конвейерами и устранять неполадки независимо от роли. Унифицируйте стеки, где это возможно, извлекайте идентификаторы объектов и поддерживайте актуальный статус инцидента, чтобы избежать преследования призраков. Проявление инициативы по диагностике и устранению неполадок ускоряет доставку и повышает качество.

Превратите информационные панели разработчиков в интеллектуальную систему тестирования Команды уже поддерживают “киоски” Grafana с сервисными и бизнес-метриками. Эту телеметрию легко использовать для тестирования аналитических данных. Наблюдение за сигналами в реальном времени сокращает циклы обратной связи и позволяет оценить работоспособность системы, не выходя за рамки результатов тестирования.

Существует телеметрия на уровне Платформы — Используйте Ее Единая таблица показателей платформы позволяет выполнять фильтрацию по любому микросервису, чтобы видеть взаимодействия с RPC, входящий/исходящий трафик, статистику языка и времени выполнения, а также использование ресурсов. Даже если стеки различаются, в разных компаниях существуют аналоги. Эти общие сигналы обеспечивают согласованный анализ всех сервисов.

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

Создайте панель мониторинга тестовой среды, чтобы увидеть весь процесс в целом. Проверять каждую страницу сервиса нецелесообразно, когда показатели измеряются миллиардами. Единая панель мониторинга для тестовой среды позволяет командам своевременно выявлять и предотвращать проблемы. Относитесь к наблюдаемости этапов как к повышению надежности при сдвиге влево.

Данные Уже Собраны — Передайте Их В Grafana Сервисная телеметрия часто хранится в Prometheus и может быть визуализирована в Grafana. Данные CI/CD и инфраструктуры могут храниться в Elasticsearch, ClickHouse, Superset или более ранних инструментах, таких как Tableau. Подключение этих источников обеспечивает основу для значимых тестовых представлений.

Выйдите за рамки привлекательности: Измеряйте и храните статистику тестов Allure подходит для создания отчетов, но ограничивает мониторинг, историю и хранение. Создание выделенного хранилища (например, Postgres) и инструментирование тестов с помощью плагинов (таких как pytest) позволяет сократить продолжительность этапов, время сбора данных и затраты на отчетность. Подключение к заданиям CI направляет артефакты в агрегатор, который вычисляет нужные вам показатели.

Основы Prometheus для получения значимых сигналов Сервисы предоставляют метрики для порта, и Prometheus извлекает их через определенные промежутки времени, чтобы избежать штормов. Счетчики, датчики, гистограммы и сводные данные, дополненные метками, формируют временные ряды, которые отвечают на точные вопросы. Простые показатели, такие как частота ошибок (превышение количества ошибок над общим количеством запросов), позволяют количественно оценить работоспособность сервиса.

Сосредоточьтесь на Том, Что важно, А Затем четко визуализируйте Это Оповещения основаны на тех же показателях, например, срабатывают, когда количество ошибок превышает 1% или когда потребление ресурсов превышает пороговые значения. Эти условия запускают действенное расследование развертываний, аномальной загрузки или нехватки памяти и диска. Панели Grafana преобразуют счетчики, гистограммы и таблицы в сфокусированные, удобные для навигации представления.

Централизуйте оповещения и боритесь с шумом на сцене Объединяйте оповещения по таким категориям, как организация, чтобы видеть все текущие сбои в работе в одном месте со ссылками на соответствующую службу и выпуск. Промежуточные среды генерируют искусственный трафик, неправильно сформированные запросы и ручное тестирование, что приводит к увеличению объема оповещений. Как и в случае с ошибочными тестами, необработанные шумовые оповещения не несут полезного сигнала и должны быть устранены.

Следите за базами данных и задержкой в очереди, чтобы избежать ложных сбоев Когда загрузка диска в базе данных достигает примерно 95%, она может быть доступна только для чтения, что приводит к блокировке операций записи и каскадным сбоям в зависимых тестах. Отслеживание процента использования диска наряду с двухчасовыми значениями прироста позволяет отличить медленный рост от внезапных скачков и позволяет выполнять очистку или увеличивать емкость. Задержка в работе группы потребителей увеличивает время ожидания ответов служб, переводя тесты в режим ожидания, даже если обработчики работают быстро.

Эмоциональные информационные панели Выявляют боль от невыполненной работы Смайлик на панели управления становится грустным, когда очередь обслуживания превышает 10 000 сообщений, что указывает на серьезные задержки и грубую смену персонала. В пределах допустимого отставания смайлик улыбается, отражая стресс человека при изменении показателей. Этот простой сигнал указывает на то, что операционная нагрузка часто приводит к сбоям в автотестировании. Визуальные сигналы позволяют мгновенно оценить сложность обслуживания и результаты тестирования.

Автоматические выключатели предотвращают каскадные сбои в Обслуживании Автоматический выключатель защищает микросервис, отключая трафик, как только частота ошибок превышает допустимый порог. Счетчики временных интервалов показывают, когда вызывающий абонент блокируется и почему. Подробные ссылки позволяют перейти к графику и журналам отключения, чтобы проверить аномалию в контексте. Любые тесты, проходящие по этому нарушенному пути, будут надежно завершены неудачей до тех пор, пока прерыватель не восстановится.

Оценивайте неудачи с учетом последних изменений в окружающей среде При интерпретации сбоев уделяйте приоритетное внимание новейшей отрасли, которая отражает производство. Промежуточный этап существует для проверки, поэтому нестабильность в нем ожидаема и не вызывает тревоги по своей сути. Отслеживание последних сигналов проясняет актуальность производства, не вдаваясь в дебаты об окружающей среде. Это позволяет избежать шума и сосредоточить внимание на том, что действительно важно.

Относитесь к службам тестовых данных как к первоклассным системам Создавайте вспомогательные сервисы тестовых данных на том же языке и с теми же стандартами, что и сервисы продуктов. Отслеживайте количество повторных запросов, время отклика и частоту ошибок, поскольку тесты являются их основными потребителями. Когда эти сервисы возвращают 500 баллов, зависимые пулы тестов немедленно страдают. Повторите запуск только после подтверждения устранения основной проблемы со службой.

Стремитесь к доступности, измеряемой девятками Определите целевые показатели доступности в “девятки” и контролируйте их соблюдение в соответствии с практикой SRE. Поддерживайте качество обслуживания и тщательно изучайте любые показатели, которые начинают сбоить. Выявляйте причины на ранней стадии и восстанавливайте целевые показатели, чтобы избежать сбоев при последующем тестировании. Дисциплина SLO обслуживания предотвращает незаметное снижение качества.

Инциденты CI/CD Требуют собственных Показателей Тест gRPC однажды зависал из-за незакрытого соединения, в результате чего конвейеры зависали на 99%, в то время как задания на самом деле останавливались. Запуски и задания потребляли ресурсы планировщика, блокируя новые запуски. Специальные панели мониторинга для выполнения заданий, заданий и продолжительности выявили узкое место. В центре внимания стало время выхода на рынок, поскольку бизнес приравнивает медленное тестирование к плохому.

Соотносите сбои с развертываниями и пресекайте бесконечные попытки Соотносите возникновение сбоев в тестировании с событиями развертывания служб, чтобы быстро сузить круг подозреваемых. Перестаньте маскировать проблемы бесконечными повторными запусками - привычка, которая скрывает реальные проблемы. Четко отслеживайте неполадки и частоту повторных запусков, чтобы выявить, на что тратится время. Охват и пирамида тестирования показывают, насколько хорошо протестирован сервис.

Телеметрия отображает взаимодействия микросервисов Благодаря более чем сотне сервисов телеметрия позволяет отслеживать каждый входящий и исходящий поток. График взаимодействия показывает, какие процессы влияют друг на друга. В релизах можно определить приоритетность сценариев, наиболее подверженных изменениям. Общая видимость позволяет тестировщикам и разработчикам общаться на одном языке.

Соберите свой собственный конвейер тестовых показателей В отличие от сервисных показателей, статистика тестирования часто не существует до тех пор, пока вы ее не соберете. Промежуточное программное обеспечение после выхода GitLab отправило артефакты в ClickHouse для анализа. Пользовательские панели мониторинга отображали только те показатели, которые имели значение. Соглашения с соседними командами обеспечивали согласованность данных.

Адаптация RED к тестам: частота, ошибки, продолжительность Применяйте к тестам шаблоны, такие как RED/USE, но переопределяйте “ошибки”. Отделяйте нечеткость (сбой затем проходит) от последовательного сбоя при каждой попытке. Отслеживайте оба варианта, поскольку повторные попытки увеличивают продолжительность, в то время как нечеткость вызывает обманчивую боль. Скорость остается критерием производительности при выполнении тестов.

Считывайте показатели успеха в контексте, а не в вакууме Приблизительный процент успеха неоднозначен без учета времени и объема работ. Сегодняшние 78% могут означать, что только что была исправлена неделя с "красной" неделей или внезапный перерыв после "зеленой" недели. Чтобы расставить приоритеты, учитывайте абсолютное количество неудачных тестов и выполнений. Замените процентные показатели вакуума конкретными, контекстуализированными цифрами.

Смотрите раздел “Погода” для тестирования и временные рамки для каждого теста Визуализируйте состояние окружающей среды в виде “температуры”, чтобы понять, как тесты чувствуют себя под нагрузкой. Ожидайте некоторого отклонения при одновременном запуске множества пакетов. Наиболее полезным представлением оказалась таблица с недавней историей каждого теста. Сплошные красные полосы между выпусками означают реальные сбои; рассеянный красный цвет указывает на неполадки.

Составьте рейтинг злостных нарушителей и неустанно настраивайтесь Ведите список самых сложных и часто повторяемых тестов, чтобы внести исправления. Используйте таблицу истории, чтобы выбрать цели и выявить проблемы, препятствующие стабильности. Чтобы быстро начать работу с доской, избегайте перегруженных визуальных элементов и добавляйте перекрестные ссылки. Разным командам нужны разные фрагменты; докажите свою полезность, чтобы добиться принятия.

Избегайте ловушек накипи и применяйте детализацию При масштабировании легко использовать только полностью обновленные тесты и игнорировать значительные неточности. Локальные особенности могут создавать неоднозначные статусы, поэтому разделяйте представления по поведению. Создавайте вложенные информационные панели, которые переходят от общих показателей к конкретным наборам. Перекрестные ссылки позволяют любому пользователю перейти непосредственно к нужному ему неисправному элементу.

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

Используйте показатели для определения качества и завоевания доверия Знание того, когда и где тесты завершаются неудачно, позволяет проводить межкомандные сравнения и определять цели. Руководство получает численные ответы о текущем состоянии и планах по улучшению. Наблюдаемость - это не волшебство и не только для разработчиков; она улучшает понимание архитектуры, вызывает уважение разработчиков и ускоряет решение проблем. Навыки важны не только для инженеров, но и для руководителей.

Практические вопросы и ответы на вынос Устраните неполадки, вызванные работой сети, путем сбора источников ошибок при каждом запуске и объединения их в хранилище, таком как Postgres. Если Prometheus или Allure не подходят, создайте собственные сборщики и сохраните их в базе данных, которой вы управляете. Интеграция с Jira позволяет отслеживать инциденты и составлять графики их снижения на протяжении многих лет, в то время как при высокой частоте выпуска удалось избежать прямой связи с ошибками. Универсальная панель тестировщика объединяет разрозненные показатели и показывает, что тестировщики могут эффективно отслеживать их.