Pull to refresh
0
0
Send message

TMS на замену TestRail: писали для себя, а выложили в open source

Level of difficultyEasy
Reading time9 min
Views17K

В прошлом году TestRail прекратил предоставлять и продлевать лицензии компаниям из России, поэтому мы в YADRO решили разработать собственную тест-менеджмент систему TestY. Опирались на опыт работы с другими сервисами, чтобы добавить тот функционал, которого не хватало нашим командам тестирования. За несколько месяцев написали core-часть системы и выложили ее в open source, чтобы другие компании и разработчики, для которых актуален вопрос лицензионной чистоты используемого софтай, пользовались решением и развивали его.

В этой статье рассказываем об отличиях TestY от других TMS и преимуществах нашей системы для команд любого размера. Спойлер: в TestY могут одновременно работать 300 тестировщиков — система справляется. Для тех, кто хочет опробовать TestY в своей команде, в конце статьи есть короткая инструкция, как ее развернуть.

Читать далее

Разносим по полочкам этапы тестирования http запросов в Spring

Level of difficultyEasy
Reading time7 min
Views7.6K

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

Речь пойдет об использовании методологии Arrange-Act-Assert применительно к интеграционным тестам на Spring Framework с использованием мокирования (mock) HTTP-запросов к внешним ресурсам, к которым идет обращение по ходу выполнения тестируемого кода в рамках поведения системы. Предлагаемые к рассмотрению тесты написаны с использованием Spock Framework на языке Groovy (см. недавнюю статью по этой теме: Тестируем Spring Boot приложения через Spock Framework). В качестве механизма мокирования будет использоваться MockRestServiceServer. Будет пару слов и о WireMock.

Читать далее

Как написать проект по автоматизации на Python, Pytest и Playwright и настроить запуск автотестов в CI с нуля

Reading time16 min
Views28K

Привет, Хабр! Меня зовут Александр Бехтерев, я работаю QA-инженером в Учи.ру. Не так давно перед нами встала задача перехода с библиотеки Selenium на новую и мощную библиотеку Playwright. Этот переход был вызван желанием улучшить процессы тестирования и попробовать что-то новое. 

В этой статье я постараюсь подробно рассмотреть процесс создания проекта на Python, Pytest и Playwright с применением паттерна Page Object, а также оставлю шаблон yml, который позволит запускать автотесты в CI. 

Читать далее

1000 человек на место или как новичку стать синьором

Level of difficultyEasy
Reading time13 min
Views14K

Привет! Меня зовут Сергей, я немножко ведущий фронтенд-разработчик и немножко продуктовый менеджер, а еще друг, поэт и музыкант. Как так получилось — история для другой статьи, а здесь я расскажу о другом. 

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

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

Читать далее

Практический пример использования модели детекции изображений

Level of difficultyMedium
Reading time7 min
Views7.7K

Всем доброго дня. Совсем недавно я закончила продвинутый курс от Deep Lerning. Курс объемный, много свежей информации. Мне, как закончившей прикладную математику и часто по работе соприкасающейся с искусственным интеллектом (нейросетки, генетика, fuzzy logics) было не сильно сложно, но мега-увлекательно за счет того, что ребята очень заинтересованные и рассказывали про свежие интересные модели, еще и на русском языке. Приятно видеть, что ИИ-сфера в нашей стране тоже не стоит на месте.

Хотелось сделать своими руками что-нибудь эдакое полезное и одновременно мега-современное и вот что я придумала. У нас есть частный дом, там есть дворовые коты, которых надо кормить и в мое отсутствие. А так же есть еще птицы, кроты, чужие вездесущие собаки и другая живность, которых не стоит кормить, если не хотим, чтобы они у нас все поселились. Так вот, а что, если прикрутить модель детекции изображений к умной кормушке? Далее было бы здорово научиться использовать голосовые команды, например, на закрытие кормушки. И чтобы не писать никаких специальных программ, воспользуемся телеграмм-ботами, телеграмм стоит почти в каждом телефоне.

В данной статье я сделала акцент именно на том, как пользоваться моделями детекции изображений на практике.

Читать далее

Использование Insightface для быстрого поиска и сравнения лиц на изображениях

Level of difficultyMedium
Reading time9 min
Views10K

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

С вами Вадим Дарморезов, участник профессионального сообщества NTA.

Сегодня рассмотрю кейс поиска изображений-«близнецов», которые были размещены в pdf-файлах, насчитывающих десятки, а порой и сотни страниц.

В проектах, связанных с распознаванием лиц своеобразными «флагманами» являются библиотеки dlib/face‑recognition и свёрточные нейронные сети. При этом на просторах русскоязычного интернета довольно мало статей о библиотеке insightface. Именно о ее использовании хотелось бы поговорить более подробно. Всем, кому это интересно, добро пожаловать по кат.

Искать "близнецов"

JUnit 5 Extensions — практическое руководство (часть 1)

Level of difficultyEasy
Reading time10 min
Views6K

Привет. В Рунете материала по JUnit 5 Extensions сегодня немного, и довольно часто он ограничивается переводом документации (в редких случаях - постов с зарубежный ресурсов). Поэтому было решено исправить сей недостаток.

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

В качестве языка программирования я выберу Kotlin...

Читать далее

Квантовое программирование для диспетчеризации производства

Level of difficultyMedium
Reading time6 min
Views6.5K

Лучший способ изучить новую технологию это применить ее на практике. Но как быть, если у вас нет квантового компьютера, а на изучение физики нет времени/желания? Это не проблема, потому что сегодня мы разберем наиболее доступный и безболезненный способ погружения в квантовые алгоритмы на примере комбинаторной оптимизации. И начнем с распространенной задачи, которая возникает на производстве - диспетчеризация технологических операций. Устраивайтесь поудобнее, приготовьте чашку любимого напитка и поехали!

Читать далее

Инициализация WebSocket-клиента в автотестах на Java cо Spring Boot Starter WebSocket

Level of difficultyEasy
Reading time5 min
Views5.4K

Если вам необходимо автоматизировать тестирование веб-сокетов, то эта статья будет для вас полезна.

В ней я поделюсь своим опытом «прикручивания» библиотеки Spring Boot Starter Websocket к проекту автотестов на Java.

Читать далее

Как заменить пропущенные значения в Pandas

Level of difficultyEasy
Reading time5 min
Views18K

Давайте рассмотрим распространенную проблему с пропущенными данными и способы ее решения.

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

Кстати, подписывайтесь на наши социальные сети, мы туда еженедельно публикуем топовый контент! Вот наш канал в телеграм и группа ВК.

Таблица 1: Пример набора данных о машинах

| Марка   | Модель  | Год выпуска | Цена | Нормализованные потери | Тип топлива |

|---------|---------|-------------|------|------------------------|-------------|

| Toyota  | Corolla | 2019        | 15000| 134                    | Бензин      |

| Honda   | Civic   | 2020        | 17000| NaN                    | Дизель      |

| Ford    | Mustang | 2018        | 25000| 235                    | NaN         |

| Subaru  | Outback | 2017        | NaN  | 178                    | Бензин      |

| Hyundai | Elantra | 2021        | 18000| 156                    | Гибрид      |

| Nissan  | Sentra  | 2019        | 15500| 170                    | Бензин      |

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

Читать далее

Как улучшить тестируемость кода на примере Dependency Injection в Python

Level of difficultyMedium
Reading time7 min
Views5.4K

В данной статьей вы узнаете о важности отделения операций ввода-вывода (т.е. сетевых запросов, обращений к базе данных и т.д.) от основной логики кода, особенностях использования Dependency Injection (внедрения зависимостей) для написания более тестируемого кода с примерами модульных тестов.

Mimesis: идеальное решение для генерации данных

Level of difficultyEasy
Reading time6 min
Views8.8K

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

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

Читать далее

7 шагов к результату эффективного обучения

Level of difficultyEasy
Reading time16 min
Views25K

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

Данная статья будет вашим персональным гайдом/учебником (называйте как хотите), по тому как именно обучаться, на что следует обращать внимание и какие техники могут помочь вам.

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

Читать далее

Hidden Gem — LLava 1.5

Level of difficultyMedium
Reading time1 min
Views6.8K

Вероятно лучшая опенсурс модель для Captioning, VQA, QA и прочих задач требующих ответить на вопросы опираясь на изображения. От читателя ожидается что он знает чем отличается alpaca от vicuna и почему VIT это круто.

Читать далее

Тестируем API в Таверне

Level of difficultyMedium
Reading time6 min
Views2.8K

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

В сегодняшней статье мы поговорим об использовании Python для проверки API веб приложений. Но сначала давайте рассмотрим, что представляет из себя тестирование API.

Читать далее

Личные границы разработчика

Level of difficultyEasy
Reading time4 min
Views9.2K

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

Читать далее

Поднимаем кластер PostgreSQL в Docker и Testcontainers

Level of difficultyMedium
Reading time8 min
Views32K

Ранее я рассказывал о том, как запустить PostgreSQL в Docker. Тогда речь шла об использовании «ванильных» образов Postgres и поднятии одного хоста. В большинстве случаев этого достаточно как для тестов, так и для экспериментов, но нужно понимать, что в промышленной эксплуатации чаще всего используются высокодоступные (отказоустойчивые, кластеризованные) конфигурации PostgreSQL.

Сегодня я покажу, как запустить уже целый кластер PostgreSQL в Docker, а также в тестах через Testcontainers, и как вручную инициировать смену мастер-хоста.

Читать далее

Работа со скрипичной диаграммой (Violin Plot) в Seaborn

Level of difficultyMedium
Reading time7 min
Views8.6K

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

Читать далее

Быстрые дашборды на Python с помощью DashExpress

Level of difficultyEasy
Reading time5 min
Views9.5K

Привет! Эта статья для тех, кто ищет простой и быстрый способ делать полноценные дашборды на python и ad-hoc дашборды прямо в jupiter notebook. А так же для всех, кто интерсуется Plotly Dash.

Поехали

Большое обновление Propan Framework. Куда дальше?

Reading time3 min
Views2.4K

Пару месяцев назад я рассказал вам о своем фреймворке для работы с различными брокерами сообщений - Propan.

Тезисно повторю: это идейный наследник FastAPI, но для написания асинхронных микросервисов (привет, Kombu). Он настолько облегчает взаимодействие с брокерами сообщений, что данный архитектурный паттерн переходит из разряда

слишком сложно, это для хайлоад, некогда разбираться

в разряд

а давай отдадим нашему стажеру сервис, он по документации разберется

(Причем это реальный кейс)

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

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

Ну что там у тебя
12 ...
10

Information

Rating
5,541-st
Registered
Activity