Feed aggregator

Покрытие регресса автотестами: практический опыт внедрения E2E

Habr.com - 6 hours 47 min ago

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

Немного о проекте

Проект представляет собой распределенную систему, состоящую из двух web-порталов на React, порядка двадцати микросервисов на .NET и нескольких интеграций со сторонними системами. Все компоненты участвуют в одном сквозном бизнес-процессе, а релизы выходят регулярно — в среднем раз в две недели.

QA-инженер подключился к проекту уже после начала активной разработки. В этот момент мы осознанно отказались от наращивания объемной ручной тестовой документации и сделали ставку на E2E-автотесты.

Почему Е2Е?

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

Для нас автотесты стали стратегическим инструментом. Они заменили собой классический ручной регресс и со временем начали выполнять роль индикатора качества — как для команды разработки, так и для менеджмента и заказчиков.

Читать далее

[Перевод] Как за сутки обойти миллиард веб-страниц

Habr.com - 6 hours 52 min ago

TL;DR:

1,005 миллиарда веб-страниц

25,5 часа

$462

По какой-то причине уже долгое время никто не писал о том, что требуется для краулинга большой части веба: последним обнаруженным мной источником был пост Майкла Нильсена за 2012 год[1].

Очевидно, что за это время много изменилось. Всё стало больше, лучше и быстрее: у CPU появилось намного больше ядер, на смену жёстким дискам пришли твердотельные накопители NVMe, скорости ввода-вывода которых сравнимы со скоростями RAM, существенно выросла ширина сетевых каналов, существенно расширился список типов инстансов EC2 и так далее. Но в чём-то ситуация и усложнилась: гораздо бóльшая часть веба стала динамической, а контент теперь более тяжёлый. Как поменялось состояние Интернета? Теперь узкие места стали другими, и для создания своего Google по-прежнему нужно около 41 тысячи долларов? Мне захотелось это узнать, поэтому я собрал и выпустил собственный веб-краулер1 в условиях похожих ограничений.

Читать далее

Параллельный запуск автотестов на Java: лучшие практики для стабильного CI/CD

Habr.com - 7 hours 7 min ago

Параллельный запуск автотестов — это как ускоритель: экономит часы, но если не знать подводных камней, превращает прогон в хаос. Тесты зелёные локально, красные на CI? Падают без причины, а перезапуск «лечит»? Знакомая история. В этой статье делюсь реальными кейсами из боевых проектов: почему статические поля убивают стабильность; как «гонка данных» маскируется под рандомные падения и многое другое

Читать далее

glenv: синхронизируем .env файлы с GitLab CI/CD переменными без боли

Habr.com - 7 hours 8 min ago

Привет, Хабр!

Если вы работаете с GitLab и у вас больше одного окружения — вы наверняка знаете этот ритуал: открываешь Settings → CI/CD → Variables, начинаешь вбивать переменные вручную, на пятой ошибаешься, на двадцатой теряешь счёт, на пятидесятой начинаешь сочувствовать тем, кто хранит секреты прямо в коде.

Я написал glenv — CLI-инструмент на Go, который синхронизирует .env файлы с GitLab CI/CD переменными через API. Под катом — история о том, почему существующих решений не хватило, как это устроено внутри и несколько примеров использования.

Читать далее

Реализация принципов BIM для проектирования комплексных технологических процессов на примере ПО «PROMPROEKTOR»

Habr.com - 7 hours 10 min ago

Введение

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

Можете убедиться в этом сами на примере процесса сборки технологической схемы...

Убедиться

S3 Архипелаг: как мы в Диасофте построили свое объектное хранилище

Habr.com - 7 hours 14 min ago

Лет десять назад объектное хранилище было экзотикой. Крупные компании обходились NFS‑шарами и надеждой, что RAID не развалится в самый неподходящий момент. Средний бизнес в целом не понимал, зачем это нужно. Но сегодня все изменилось. S3 API стал таким же стандартом, как REST или JSON. Мы в Диасофте построили «Фабрику данных» (Digital Q.DataFactory) в архитектуре Data Lakehouse на основе S3 Архипелаг, которая объединяет гибкость Data Lake с надежностью хранилища данных. В этой статье расскажем, как построили слой хранения.

Читать далее

Как мы создали систему интеллектуального поиска персонала с помощью виртуальных рекрутеров. Часть 2 Технологии

Habr.com - 7 hours 22 min ago

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

Читать далее

Хакинг бытовой техники: от реверса стиралки к созданию открытого сервисного ПО

Habr.com - 7 hours 23 min ago

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

С этой поломки началось исследование Северина фон Внук-Липински и Хайо Нёренберга, в ходе которого они им удалось восстановить работу диагностического протокола стиральной машины Miele, получить доступ к скрытым функциям и извлечь прошивку платы управления.

В этой статье разберем их доклад Hacking Washing Machines с конференции 39C3 и проследим, как мелкая бытовая неисправность привела к полноценному реверсу стиралки, а затем — к созданию свободной утилиты, которая заменяет закрытый фирменный софт для ремонта техники Miele.

Читать далее

Я два месяца платил 300к человеку, который тихо скармливал мои задачи в ChatGPT

Habr.com - 7 hours 32 min ago

Осенью 2025-го у нас ушёл мидл. Типичная история — нашёл +80к в каком-то финтехе, ему там обещали «плоскую структуру и свободу принятия решений» (спойлер: через три месяца он написал мне что хочет вернуться, но мы уже наняли замену). Замену, кстати, нашли не быстро. Провели штук двадцать собесов, может больше, я со счёта сбился после пятнадцатого.

Рынок такой: половина не может обход дерева написать (я серьёзно, я уже думал может я что-то не так спрашиваю, но нет), трое врали про опыт настолько плохо что мне неловко было за них, и один спросил можно ли работать из Бали при условии что созвоны в девять утра. Нельзя, у нас on-call.

Короче, появился кандидат. Назову его Дима.

Читать далее

Не доверяй и проверяй: как PAM-системы работают в архитектуре Zero Trust

Habr.com - 7 hours 43 min ago

Не доверяй и проверяй: как PAM-системы работают в архитектуре Zero Trust

По данным «Солара», в 2026 году продолжится рост кибератак на привилегированные учетные записи. Скомпрометировав их, злоумышленники действуют внутри сети как легитимные администраторы. В таком случае традиционная модель «безопасного периметра» бессильна, потому что она не видит угроз изнутри. Поэтому организации начинают переходить к архитектуре нулевого доверия – Zero Trust – и внедряют PAM-системы. О том, как устроена эта связка и почему без PAM Zero Trust остаётся лишь теорией, рассказывает Антон Залесский, бизнес-архитектор группы развития продуктов по управлению доступом ГК «Солар».

Читать далее

MySQL, который выживает: отказоустойчивый кластер с Orchestrator

Habr.com - 7 hours 44 min ago

MySQL, который выживает: отказоустойчивый кластер с Orchestrator

Разбираем настройку HA-кластера с Keepalived и Orchestrator для тех, кто предпочитает контроль облачным black box-решениям.

Хабр, привет!

Почему проблема отказа мастера в кластере MySQL до сих пор актуальна? Потому что сегодня 10 минут простоя у крупных заказчиков – это ЧП, а человеческий фактор в кризисной ситуации – главный источник риска. Многие проекты, мигрируя на MySQL 8.0, заново проходят путь настройки отказоустойчивости. И далеко не все готовы доверить свою основную базу данных облачным managed-сервисам, иногда нужен полный контроль на своей инфраструктуре.

Читать далее

Выбор кластеризации Active-Passive или Active-Active при обеспечении отказоустойчивости периметрального NGFW

Habr.com - 7 hours 45 min ago

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

Говоря про периметральные NGFW, если отбросить вопрос их корректной настройки инженером и штатного функционирования бекендов, основным способом обеспечения отказоустойчивости является построение кластера из нескольких экземпляров устройств, которые функционируют как единое целое. При этом существуют два принципиально разных варианта реализации – это кластер Active|Passive (A|P) и кластер Active | Active (A|A).

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

Кластеризация в режиме Active|Passive представляет собой технологию объединения двух NGFW устройств (каждое из которых будет называться нодой) в единый логический элемент сети (кластер) для обеспечения высокого уровня отказоустойчивости и доступности.

Фактически за счет дублирования физического устройства при этом устраняется проблема «единой точки отказа», когда при выходе из строя узла (как самого NGFW, так и сетевого интерфейса, линка к сетевому интерфейсу) кластер продолжает обрабатывать трафик без прерываний прозрачно для пользователя и сервисов, приложений.

Читать далее

Как бы выглядел интернет, если бы Adobe не убила Flash

Habr.com - 7 hours 46 min ago

Вспомните нулевые — браузерные страницы мигали баннерами и интерактивными элементами, игры запускались прямо во вкладке, а Flash Player был знаком почти всем. Но в 2020 году Adobe завершила его поддержку и начала блокировать Flash-контент. Так и закончилась эта история, а что было бы, если всё пошло иначе? Историю Flash и альтернативный сценарий разбираю в статье. 

Читать

Russtech + Стажеры + ML: история разработки решения для мониторинга цифровых экранов

Habr.com - 7 hours 47 min ago

Всем привет! Меня зовут Никита Крестьянинов, я руководитель группы управления бизнес-процессами служб сервиса в команде Russtech. Сегодня я хочу рассказать, как мы совместно со стажерами разработали ИИ-инструмент, способный отслеживать состояние работы цифровых рекламных конструкций.

Читать далее

Оптимизация стоимости владения K8s-кластерами в AWS и YC

Habr.com - 7 hours 47 min ago

Облака обещают магическую экономию и бесконечное масштабирование. На практике Kubernetes‑кластеры в AWS и Яндекс.Облаке легко превращаются в бездонную чёрную дыру для бюджета. Мы в «Антиплагиате» научились готовить споты, научили шедулер и дешедулер работать правильно и выжали из кубов максимум надежности и производительности при минимуме затрат. В этой статье — конкретные шаги, которые позволили сэкономить миллионы рублей.

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

Без галлюцинаций и смс, погнали!

Паттерны конкурентности в Go. Подробный разбор. Часть 1. Worker pool

Habr.com - 7 hours 47 min ago

Пример паттерна Worker Pool на Go с подробным описанием кода. Пример подходит для знакомства с паттерном в процессе обучения, собеседования, но не является шаблоном для production кода.

Читать далее

Аллостаз как суть IT-стратегии: почему поиск стабильности убивает вашу контору

Habr.com - 7 hours 50 min ago

Привет, «Хабр»! Я Александр Тютюнник, директор по развитию бизнеса ГК Luxms. И сегодня хочу поговорить с вами о теме, которая часто окутана туманом корпоративного бюрократизма, но от этого не становится менее важной. Речь об IT-стратегии.

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

Забегая вперед: постоянство не является самой фундаментальной основой жизни. И вашей IT-конторы тоже.

Читать далее

[Перевод] Стоп-слова, исключения и словоформы в Manticore

Habr.com - 7 hours 50 min ago

Теперь Manticore Search поддерживает прямое указание настроек токенизации непосредственно в команде CREATE TABLE. Таким образом, исчезает необходимость создавать внешние файлы при настройке стоп-слов, исключений, словоформ и слов без позиции, делая создание таблиц проще и удобнее для развертывания.

Читать далее

[Перевод] Возникновение компьютерных игр, часть II: оцифровка «нёрдов»

Habr.com - 7 hours 58 min ago

В конце 1960-х и начале 1970-х годов появилось множество различных хобби, которые сводились к вопросу «что, если»: чтение и просмотр научной фантастики (особенно «Звёздного пути»), чтение произведений Толкина и его растущего числа подражателей, настольные военные игры, имитирующие все от древних войн до Второй мировой войны, участие в имитации средневековых сражений в Обществе творческого анахронизма (SCA) и погружение в романтизированное прошлое ярмарок эпохи Возрождения. Всё это открывало двери к исследованию альтернативных миров, альтернативного прошлого или возможного будущего с помощью воображения участников. Если вам нравилось одно из этих занятий, не обязательно нравились и все остальные, но все эти хобби образовали культурный кластер часто пересекающихся интересов, который, как правило, был популярен среди тех, кто не вписывался в общепринятые социальные нормы, то есть среди «нёрдов». В середине 1970-х годов «нёрды» обрели два новых хобби: персональные компьютеры и «Подземелья и драконы» (D&D). [1]

Читать далее

Скайнет нанимает фрилансеров: как ИИ-агенты начали покупать человеческий труд через API

Habr.com - 8 hours 2 min ago

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

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

Читать далее

Who's online

There are currently 0 users and 4 guests online.
Syndicate content