Обновить

Тестирование

Сначала показывать
Порог рейтинга
Уровень сложности

Testcontainers в CI: почему тесты зелёные локально и красные на пайплайне

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.8K

Локально Testcontainers запускается за секунды, тесты стабильно зелёные, а в CI тот же набор начинает падать в трёх запусках из ста и каждый раз по новой причине.

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

Читать далее

Новости

Разделяем доступ к устройствам в Grafana

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели6.5K

У нашей команды тестирования есть множество устройств, работающих под управлением ОС "Нейтрино". В том числе есть и редкие девайсы, которые бывают нужны не только тестировщикам, но и разработчикам, которые регулярно обращались с просьбой одолжить ту или иную плату «на часок-другой» и ничего на ней временно не запускать.

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

Так у нас возникла необходимость в сервисе, который бы всех синхронизировал по вопросам доступа к устройствам, и давал краткую справку о железе, чтобы отмести однотипные вопросы.

В этой статье расскажем о том, как мы реализовали такой сервис.

Ознакомиться

Как тестируют баги, которые невозможно воспроизвести

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели14K

Редкий сбой в распределённой системе может месяцами ускользать от команды, а при попытке воспроизведения исчезать из‑за изменившегося порядка событий.

В статье разберём, как deterministic simulation testing помогает управлять временем, сетью и отказами, воспроизводить сложные сценарии по seed и проверять системные инварианты на примерах FoundationDB и TigerBeetle.

Читать далее

Пользователь сменил пароль и потерял доступ. Что проворонил тестировщик?

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.6K

Одноразовая ссылка сработала только один раз, старый пароль больше не подходил, а все проверки прошли. И всё же пользователь снова потерял доступ к аккаунту.

Разбираемся, какой сценарий пропустил тестировщик и почему проверять отдельный токен недостаточно.

Читать далее

Contract testing на Pact в 2026: как перестать чинить интеграции по факту падения

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели11K

В статье разберём, как Pact закрывает этот разрыв между модульными и E2E‑тестами, как устроены consumer‑driven контракты, Pact Broker и can-i-deploy, и что нужно учесть, чтобы contract testing действительно останавливал несовместимые релизы, а не создавал новую точку боли.

Читать далее

7 ошибок в оценке QA-задач, из-за которых команда срывает сроки релиза

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели7.4K

Снаружи всё выглядит рабочим: история оценена, спринт собран, релиз уже стоит в календаре. Но одно число в Jira часто скрывает объём работы, который никто не обсудил, поэтому к концу итерации тестирование внезапно становится узким местом. Разбор семи типовых ошибок поможет понять, где возникает этот разрыв и что менять в процессе, чтобы прогноз меньше зависел от интуиции.

Читать далее

Когда новая работа оказалась хуже старой: почему так происходит и что делать дальше

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели15K

Есть карьерная история, о которой почти никто не рассказывает.

Ты уходишь на работу мечты… чтобы через месяц захотеть вернуть старую.

На собеседовании всё выглядело идеально: интересные задачи, сильная команда, адекватный руководитель, прозрачные процессы. Ты увольняешься с ощущением, что наконец‑то сделал правильный выбор.

А потом проходит несколько недель.

Новый руководитель оказывается сложнее предыдущего.

Процессы еще более хаотичными.

Обещания, которые звучали на интервью, не совпадают с реальностью.

И появляется мысль:

Читать далее

Как я сделала отчет о дифференциальном тестировании через Cursor

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.9K

Я хочу рассказать, как я сделала отчет о дифференциальном тестировании (сравнение двух функций на одних данных) через ИИ. Знаю, что многие уже применяют ИИ и в хвост и в гриву, но также много тех, кто пока не умеет этого делать.

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

Читать далее

ИИ для QA: мы перестали тратить часы на подготовку Acceptance Criteria

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.6K

Всем привет! Я Марго, QA-инженер команды МС в Банки.ру. 

Этой весной мы с командой автоматизировали подготовку Acceptance Criteria (это по сути такой чек-лист, по которому команда проверяет, готова ли задача) с помощью ИИ. Это сократило рутинную работу и ускорило тестирование. Ниже расскажу, как мы это сделали.

Читать далее

Как мы внедрили модель зрелости QA в 200 командах: от оценки до автоматизации

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.2K

Доброго времени, Хабр! Меня зовут Эдвард Аджей, я QA Head в Т-Банке. Год назад в одном из управлений было 17 команд с нулевым уровнем зрелости QA. Возникали сложности с автоматизацией, не велась работа с метриками качества и не было роадмапа развития процессов, накапливался техдолг по тестированию. Бесконтрольно формировался бэклог дефектов. 

За три квартала мы внедрили внутреннюю модель зрелости QMM — живой инструмент, который помог снизить количество пропущенных дефектов в проде в разы, поднять автоматизацию на 30—40% и сэкономить до 15% времени QA-инженеров. Работа функции по обеспечению качества стала управляемой и прозрачной.

Но самое неожиданное — не метрики. А то, как модель изменила культуру: команды перестали ждать указаний и сами начали проводить оценку по QMM, активно формировать планы развития.

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

Читать далее

Как не бояться технических собеседований и live‑coding тестировщику автоматизатору

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели6.9K

Я работаю автоматизатором на Python в одном российском банке, устроился относительно недавно и уже начал писать знакомым, мол, качественно зарефералю. Времена нынче странные, так что возможность рефералки — в моём представлении благо. Ну и денежный бонус вкусный, что уж скрывать.

И вот мне написал мой хороший знакомый — Коля Черкасов. Мол на него уже и так вышли рекрутеры моего работодателя да даже на ту же должность, на которую взяли меня, а посему не мог бы я поделиться с ним секретами о том, как проходят собесы в данную компанию на данного специалиста.

От чего не мог бы? С радостью.

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

Начал я ему объяснять — задача будет такая, возможно спросят о стоимости алгоритма, ещё вот такая задача, и спросят про структуры данных такие‑то, и почитать книгу можно такую‑то, порешать задачки там‑то, но... не вдохновил я этим Колю, а только, как будто, отпугнул.

Много. Сложно. Непонятно. А от лайв‑кодинга ещё и трясёт потом после собеса.

За последние 4 месяца мне и самому пришлось пройти несколько собеседований, в том числе технических с решением задач в формате лайв‑кодинга. И мне тоже было страшно — дело же не в том, что я, по словам Коли, больше кодом занимался в своей практике, а в том, что все эти собеседования они как ЕГЭ. То есть это просто шаблоны, которые заучиваются — а ещё лучше, понимаются. Ведь программирование — не квантовая механика, не зря в IT сферу пришло так много людей за последние лет 10.

Читать далее

Как я участвовал в Bug Bounty в 2026 году: чему меня научил Black Box-анализ веб-приложения крупной IT-компании

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K

В начале 2026 года я решил проверить одну простую гипотезу: насколько сложно сегодня найти проблему безопасности в современном веб-приложении крупной компании, имея только браузер и DevTools.

Для этого в рамках одной из программ Bug Bounty я провёл ручной Black Box-анализ клиентской части веб-приложения одной из крупных российских IT-компаний.

Читать далее

Профилировщик CMS-движков для вебстудий

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели13K

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

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

Для поиска таких мест были созданы разные инструменты профилирования. Этим термином называют всестороннее измерение нагрузки, оказываемой исследуемым скриптом на сервер сайта. Например, для языка PHP наиболее известными профилировщиками кода являются следующие: Blackfire, Xdebug Profiler, Tideways, XHProf/XGHui.

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

Для решения подобной узкой задачи я разработал очень простой бесплатный профилировщик PHP. Так сказать, студийную версию профайлера, то есть урезанную до объёма, достаточного вебмастеру при работе над проектами в студии. И делюсь этим скриптом с сообществом. Кому интересно, прошу под кат.

Читать далее

Ближайшие события

Я запретил Claude говорить «всё работает» без пруфов. Это изменило всё

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели15K

Пару месяцев назад я попросил агента проверить форму обратной связи после рефакторинга. Через несколько минут получил отчёт: все проверки пройдены, форма работает корректно. Зелёные галочки, уверенный тон.

Я тогда только начинал отдавать тестирование агенту, поэтому работал по схеме «доверяй, но проверяй»: следом прошёл форму руками, с открытой вкладкой Network. Снаружи всё честно: валидация зелёная, кнопка активная, тост «Спасибо!» показывается, сервер отвечает 200. А в payload вместо темы обращения уходит строка [object Object]. Агент проверил всё, кроме того, что реально уходит на сервер.

Я QA‑инженер, тестирую web (десктоп + мобильный адаптив), совмещаю ручное тестирование и автоматизацию на Playwright. Моя цель — максимум автоматизации и минимум ручной работы, поэтому полгода я перекладываю рутинную часть тестирования на Claude Code. Схема всё та же: агент прогоняет, я параллельно проверяю руками, и каждый его пропуск превращаю в правило — через скиллы и замечания, как дообучают стажёра. Из этих правил вырос пак скиллов, который я выложил в открытый доступ: ссылка в конце статьи. Расскажу, что внутри, и покажу демо на настоящем баге. В конце — честный список того, где это всё не работает.

Читать далее

ИИ и автотесты: как поймать ложную зелёную галочку?

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели14K

ИИ уже умеет генерировать тесты пачками, но зелёный пайплайн по‑прежнему может врать. В статье разбираем на примере Java и JUnit, как отличить тест, который действительно ловит баги, от теста, который просто создаёт иллюзию проверки.

Читать далее

Как оценивать работу специалиста, отвечающего за автотесты, метрики и KPI?

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели8.8K

Привет, Хабр! Меня зовут Андрей, я SDET-специалист в компании SimbirSoft. В этой статье мы разберём, какие метрики действительно применимы к специалисту по автотестированию и как их корректно использовать. Будет полезно для тимлидов команд по обеспечению качества, автотестировщиков и любых специалистов, которые хотят оценить метрики автотестирования.

Традиционный метод постановки задач сотрудникам — это каскадная модель «сверху вниз»: общие цели проекта декомпозируются до целей подразделения, а затем преобразуются в индивидуальные задачи сотрудников. Логично предположить, что цели проекта и сотрудника синхронизированы, а собрав структурированные цели всех сотрудников, можно получить условный макет проекта.

Однако возникает вопрос: как оценить вклад конкретного специалиста по автотестированию?

Жми, чтобы узнать подробности 🤓

В поле и офисе: послушаем доклады и увидим своими глазами, где тестируют продукты YADRO

Время на прочтение2 мин
Охват и читатели9.5K

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

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

Читать далее

SonarQube в CI: подключили, забили, а потом удивляемся

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.3K

SonarQube подключен, дашборд есть, анализ запускается на каждый MR, но никто не пользуется. В таком случае проблема не в инструменте. Проблема в том, что между «Sonar работает» и «Sonar приносит пользу» — пропасть из-за отсутствия договорённостей. Я видела это на нескольких проектах и расскажу, что конкретно превращает декоративный дашборд в работающий механизм контроля качества.

Статья будет полезна QA, разработчикам и тимлидам, у которых SonarQube уже есть, но результаты анализа живут и ни на что не влияют.

Читать далее

Как мы подружили динамические тесты JUnit 5 с Госуслугами

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели9.9K


Привет, Хабр! На связи Максим Кацал, руководитель направления автоматизированного тестирования в РТЛабс.

Мы с командой на Госуслугах тестируем огромное количество услуг. В каждой из них — тысячи, миллионы сценариев. Писать автотесты руками — безумие, а поддерживать их очень больно.

В статье расскажу, как мы научились генерировать тесты прямо из JSON-схемы услуги. JUnit 5 + @TestFactory + рекурсивный обход графа маршрутов. Фреймворк, который сам прокладывает путь пользователя по приложению-конструктору, а потом проигрывает его в браузере.

Ниже раскрою архитектуру, код, подводные камни, опишу плюсы и минусы такого подхода.

Читать далее

Нагрузочное тестирование: как анализировать результаты k6 и принимать решения

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.4K

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

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

Читать далее
1
23 ...