Обновить
159.11

Тестирование IT-систем *

Тестируем все и вся

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

etcd-walker: TUI-проводник по etcd для ленивых (и не только?)

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

Привет Хабр! Если вам тоже доводилось разбирать незнакомый проект, сопровождать прод или помогать QA, вы знаете, как быстро начинаешь ненавидеть однообразные команды etcdctl: копировать ключ, вбивать get, ловить в терминале многострочные значения, скроллить историю… Особенно если ключей сотни, а половина из них — конфиги или JSON’ы на несколько экранов.

Мне хотелось чего-то попроще: запустил один бинарь в терминале и спокойно ходишь по дереву ключей etcd, как по файловой системе, подобно mc.

Без браузера, без копипаста, с нормальным просмотром и редактированием многострочных значений. Так появился etcd-walker.

Под катом расскажу, как он устроен, почему в etcd v2 внезапно пропадают ключи, которые начинаются с подчеркивания, как их всё-таки увидеть, зачем понадобилась “инъекция” узлов, и как решить боль с большими многострочными ключами, например JSON или yaml. А также покажу, как этот инструмент помогает разбираться с локами, которые создает python библиотека для работы c etcd.

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

Читать далее

Новости

То, что обычно не показывают: как выглядит Wi-Fi взлом изнутри (схемы, примеры, анализ)

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

Безопасность Wi-Fi остаётся одной из тех тем, где одновременно сосуществуют мифы, неоправданные ожидания и огромное количество недопонимания. Кто-то уверен, что WPA2 и тем более WPA3 взломать невозможно, потому что «это же криптография». Кто-то считает, что всё решается набором трёх команд в Kali. И на практике обе позиции оказываются одинаково далеки от реальности. Wi-Fi — это не магия, не «сеть, работающая на духах», и не «непробиваемая защита». Это обычный протокол уровня 802.11, который живёт в открытом эфире и подчиняется вполне конкретной структуре пакетов, таймингов и встроенных процедур. Понимание этих процедур моментально показывает, что подавляющее большинство атак — не взлом, а закономерное следствие того, как устроено взаимодействие клиент ↔ точка.

Основой WPA2-аутентификации является четырёхшаговый handshake. И именно он формирует ключ, но при этом “раздаёт” достаточно информации, чтобы злоумышленник мог оффлайн проверять догадки о пароле. Все пакеты handshake идут открыто — это EAPOL-кадры, которые может увидеть любое устройство в эфире. Точка отправляет ANonce, клиент — SNonce, обе стороны на основе PMK (который, в свою очередь, зависит от пароля и SSID) вычисляют PTK, и затем сравнивают MIC. В этот момент пароль нигде не передаётся, но комбинации значений ANonce+SNonce+MIC более чем достаточно для оффлайн-подбора.

Если открыть реальный handshake в Wireshark, второй пакет будет выглядеть примерно так:

Protocol: EAPOL
Key Information: Key MIC: 1, Secure: 0, Error: 0
Nonce (SNonce): 5f:6b:b1:9a:31:0c:ae:...
MIC: 53:ff:12:88:9c:7d:91:52:...


Эти данные можно использовать для проверки предполагаемого пароля: сначала PBKDF2 генерирует PMK, затем PMK превращается в PTK, затем создаётся MIC, и если этот MIC совпадает с MIC из пакета — пароль найден. Вся атака происходит оффлайн. Никаких запросов к точке, никаких попыток войти в сеть, никакого шанса «спалиться» в эфире.

Но чтобы подбор стал возможен, handshake нужно сначала получить. С passiv-перехватом проблем хватает: можно слушать эфир часами и так и не дождаться переподключения. Поэтому практически все реальные атаки начинают с деавторизации — искусственного разрыва связи между клиентом и точкой. Деавторизация — это не «аномальный» пакет. Это штатный кадр уровня MAC, который есть в стандарте. И если клиент его получает, он честно отключается, после чего автоматически инициирует повторный handshake.

Схема выглядит примерно так:

Читать далее

Почему интуиция вас подводит: 5 ловушек теории вероятностей в IT

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

Вы смотрите на дашборд: Average Response Time = 200ms. Клиенты довольны? Скорее всего, нет. Вы видите, что сервер загружен на 50%, и думаете, что выдержите рост нагрузки в 2 раза? Математика говорит, что вы упадете гораздо раньше.
Теория вероятностей в вузе казалась скучной абстракцией, но в Highload-системах пренебрежение ей стоит денег.

Читать далее

От спонтанных ремонтов к проактивному управлению

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

Как повысить доступность оборудования для работы по предназначению и сократить издержки 

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

Границы предиктивной аналитики: почему датчики не видят всей картины 

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

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

Читать далее

Когда ошибка становится наставником: почему баги прошлого нередко полезнее любого чек-листа

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

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

Читать далее

Работаем с фабрикой ЦОД без бубнов и плясок. Система управления Eltex ECCM

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

Привет, Хабр!  Мы провели вместе долгие часы, изучая коммутационное оборудование Eltex для ЦОД: строили фабрику, устраивали ей  пожар  нагрузочное тестирование,  тестировали на совместимость с заморскими вендорами… Не знаю как вы, а я очень устал от всех этих команд, проверок и… страха, что вся конфигурация сбросится, не сохранится, и мне придется набивать всю конфигурацию с нуля. И тут я подумал, ведь у Eltex есть система управления ECCM, заточенная под их оборудование. Почему бы мне параллельно с написанием статей не применить ее, чтобы воспользоваться всем спектром возможностей?

И вот она нарядная, на праздник к нам пришла…

Читать далее

Как переход на Z Garbage Collector в Java 17 сэкономил нам ресурсы: на примере хранилища артефактов

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

Привет, Хабр! Меня зовут Максим Шишкин, я инженер по нагрузочному тестированию в команде Platform V Works::Artifactory в СберТехе. Наше решение — менеджер репозиториев артефактов и контейнеров. Он позволяет организовать хранение, описание, тегирование сборок и дистрибутивов программных продуктов, а также готовых Docker-контейнеров.

В этой статье я расскажу, как и почему мы перешли на Java 17, как протестировали возможности нового сборщика мусора Z Garbage Collector и в результате сэкономили ресурсы виртуальных машин — а вместе с этим и финансы. Надеюсь, наш опыт будет полезен инженерам по сопровождению, командам разработки и тестирования.

Читать далее

Тестирование без тонны кейсов: свобода, автотесты и наша экспертиза

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

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

Читать далее

Как ускорить автотесты на Python в Pytest в 8,5 раз

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

Меня зовут Анатолий Бобунов, я работаю SDET в компании EXANTE. Однажды я пришел на проект, на котором выполнение некоторых тест-сьютов занимало больше часа, настолько медленно, что запускать их на каждый merge request (MR) было просто нереально. Мы хотели запускать автотесты на каждый коммит в MR, но с такой скоростью это было невозможно. В результате мне удалось, за счёт серии небольших, но точных изменений добиться 8,5-кратного ускорения - без переписывания тестов с нуля. В статье расскажу, какие проблемы у нас возникли и как мы их решали.

Читать далее

10 Chrome-расширений для QA часть 2

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

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

Читать далее

Хардверный QA: как тестируют железо в радиочастотном центре и прямо на конвейере

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

Кто-то тестирует виртуальные кнопки в интерфейсе, а кто-то — железные кнопки умной колонки. Чем отличается такое тестирование и какие у него особенности? YADRO и московское сообщество тестировщиков MoscowQA объединились и нашли экспертов, которые дадут ответы на эти вопросы в рамках QA-митапа 11 декабря (четверг) в Москве. Для участия офлайн или онлайн регистрируйтесь на сайте.

Читать далее

6 простых вопросов, из-за которых сыпятся даже сильные кандидаты (и как отвечать правильно)

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

Почему оффер ломается не на алгоритме, а на вопросе «кем вы видите себя через 5 лет?» — разбираю шесть таких ловушек и показываю сильные ответы.

Читать далее

Почему QA должен быть душнилой: тестируем PostgreSQL и не даём разработчикам расслабиться

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

Когда ты тестируешь интернет-магазин, пропущенный баг — это съехавшая вёрстка. Но если ты тестируешь высоконагруженную СУБД — это остановка бизнеса федерального масштаба. Разбираем внутреннюю кухню QA в Postgres Professional: от борьбы с утечками памяти через ASAN и Valgrind до «вайб-кодинга» с ИИ. Узнайте, как выстроить процессы качества так, чтобы не уронить прод, когда цена ошибки исчисляется миллионами.

Читать далее

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

Базовая база для успешного собеседования на джуна в QA. Рассказываю, о чем спрашиваю на собесах

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

Привет! Меня зовут Юра Байков, я ведущий ведущий QA-инженер и много раз проводил собеседования на позицию тестировщика в свою команду. Да, на Хабре много постов о том, как проходят такие встречи и как к ним подготовиться. Но сегодня хочу поделиться именно своим опытом: подскажу, какие книги прочитать, чтобы укрепить базу, — шок-контент, но их всего две. А еще расскажу, о чем я спрашиваю джунов на собеседовании.

Во избежание недопониманий подчеркну, что это исключительно мой опыт и в моей практике он работает. У вас может быть другое видение — и это нормально. 

Читать далее

Нагрузочное испытание Wi-Fi, «народный» метод

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

2025 год начался с короткого затишья текущих проектов, возникла идея поковырять тему нагрузочного испытания радиоподсистемы Wi-Fi. Основная сложность и основной вопрос всех нагрузочных тестов - Чем нагрузить? Вот этот вопрос попробуем разобрать в этой статье ...

Читать далее

Cursor и ИИ-ассистенты ускоряют разработку — но без нормальных автотестов топят всю команду

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

Привет, Хабр. Пишу, потому что на текущем проекте прямо сейчас живу эту боль: всем включили Cursor «для скорости», а нормальных автотестов так и не завезли. Может, кто-то уже описывал этот кейс, но я не нашёл — поэтому делюсь своей ситуацией и тем, как это надо было делать с самого начала.

Читать далее

Где ломается прокси-балансировщик: наш опыт измерений

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

Привет, Хабр! Меня зовут Иван Дюков. Последние несколько лет я занимался разработкой и оптимизацией сетевых компонентов для облачной инфраструктуры. Среди моих проектов — участие в разработке сетевого процессора для компании Google в составе российского подразделения Intel, а также оптимизация программных сетевых функций для облака Samsung в команде Samsung R&D Institute Russia. В настоящее время работаю над сетевыми сервисами для платформы Cloud.ru Evolution в R&D-команде Cloud.ru.

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

Погнали

Как Устранить Stop Code 0xc00002e2 в доменной сети на серверной ОС в VMware?

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

Всем привет!

Меня зовут Владимир. Я работаю в одной из крупных IT-компаний занимающейся разработкой цифровых продуктов предназначенных для кибербезопасности. Моя роль на проекте - готовить стенды для тестирования десктопных продуктов, проведение ручного тестирования и запуск автотестов.

При неправильном удалении снапшотов (удаление не по порядку слева-направо), так же возможно после аварийного завершения работы ОС, при следующем включении машины с контроллером домена (Windows Server 2022) появился синий экран - Stop Code 0xc00002e2. Никакие бэкапы, откаты снапшотов не помогают. На просторах интернета решение проблемы найти было трудно.

Читать далее

Как я тестирую крупные системы, которые невозможно протестить на статичных данных

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

Например, в управлении транспортом статичные данные (например, сет за «типичный вторник») не дают протестировать систему в условиях праздника, крупной аварии, сессии у студентов, скидки 99% на Лабубу в крупном супермаркете и так далее. 

Что мы сделали:

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

Обезличивать их.

Использовать ML-модель для генерации сценариев, где эти данные увязываются с остальными в системе. Это типа генерации новых данных с усилением трендов и их пересечением.

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

Цель — не просто нагрузить систему, а протестировать жизнеспособность архитектуры в похожих на реальные условиях. 

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

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

Читать далее

+30% к скорости написания автотестов и сотни чек-листов в день: как мы внедряем LLM в QA

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

Привет! Меня зовут Владислав Миронов. Я отвечаю за внедрение LLM в процессы QA Яндекса и в этой статье расскажу, каких результатов мы достигли — от генерации тест‑кейсов и автотестов до помощи в ручном тестировании. Поделюсь не только успехами, но и тем, какие компромиссы и организационные решения понадобились, чтобы всё это заработало.

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

Спойлер: рассчитывать можно на многое, но и вложиться придётся основательно. Парой промптов тут, к сожалению, не обойтись.

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