Как стать автором
Обновить
2
0

Пользователь

Отправить сообщение

Визуальное автотестирование сайтов с помощью Codeception

Время на прочтение8 мин
Количество просмотров6.1K

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Эффективный поиск XSS-уязвимостей

Время на прочтение21 мин
Количество просмотров44K


Про XSS-уязвимости известно давным-давно — казалось бы, нужен ли миру ещё один материал о них? Но когда Иван Румак, занимающийся тестированием безопасности, поделился методологией их поиска на нашей конференции Heisenbug, реакция зрителей оказалась очень положительной.


И спустя два года у этого доклада по-прежнему растут просмотры и лайки, это один из самых востребованных материалов Heisenbug. Поэтому теперь мы решили, что многим будет полезна текстовая версия, и сделали ее для Хабра.


Под катом — и текст, и видео. Далее повествование идет от лица Ивана.

Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Мониторинг пет-проектов на коленке: Netdata, Monitoror, N8N

Время на прочтение5 мин
Количество просмотров9K

Привет, я Паша из Ozon. В рабочее время занимаюсь тестированием поиска, а по вечерам надеваю маску инди-разработчика. И моя самая частая задача — написать скрипт → залить его на сервер → периодически мониторить, что сервер доступен. Эта статья как раз и будет строиться вокруг последнего пункта.

Вы наверняка в курсе, что существуют Grafana, Prometheus, Kibana, LogDNA и другие инструменты для мониторинга, визуализации и анализа данных. C первыми двумя я вплотную познакомился в Ozon, а про Kibana слышал когда-то давно и только в паре со словом «логи». Чтобы графики в Grafana рисовать — придется штат аналитиков нанять (ба-дум-тсс). Для пет-проекта это перебор, нужно что-то сильно проще (с точки зрения стоимости, простоты настройки и удобства). Ниже расскажу, какие готовые инструменты для мониторинга небольших пет-проектов я нашёл в пучинах интернета, а также оставлю комментарии и рекомендации по использованию.

Читать далее
Всего голосов 14: ↑13 и ↓1+18
Комментарии21

Kaspresso tutorials. Часть 1. Запуск первого теста

Время на прочтение8 мин
Количество просмотров17K

Всем привет! Мы запускаем большую серию статей-туториалов о Kaspresso в частности и UI-тестах под Android в общем. Статьи планируются разного уровня сложности: первые материалы будут рассчитаны на  людей, которые никогда не программировали и ничего не автоматизировали, в последних  вы найдете хардовые детали реализаций разных сложных механизмов и инфраструктуру. То есть в совокупности весь туториал будет полезен как для тех, кто лишь начинает поэтапное погружение в автоматизацию с Kaspresso, так и для опытных разработчиков, которые могут найти разные полезные детали реализаций или почерпнуть интересные практики.

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

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

Познавать Kaspresso
Всего голосов 14: ↑14 и ↓0+14
Комментарии8

Как симулировать плохую сеть под Linux, macOS и Windows

Время на прочтение3 мин
Количество просмотров24K

Clumsy 0.2

Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).

Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии6

Accompanist — первый аккорд. Обзор библиотеки для Jetpack Compose

Время на прочтение8 мин
Количество просмотров8.2K

Обычно новым фреймворкам не хватает хороших примеров использования, туториалов и инструментов. Но не в случае с Jetpack Compose: параллельно с разработкой фреймворка Google развивал репозиторий, богатый на примеры использования. Вырисовывался набор полезных утилит, переиспользуемых виджетов и прочих удобств для разработки. 

Так из репозитория с примерами вырос Accompanist — набор библиотек для Jetpack Compose, которые можно добавить в свой проект как зависимость. В статье рассмотрим подробнее, какой инструментарий он предоставляет.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

13 проектов для Python-программистов уровня intermediate

Время на прочтение10 мин
Количество просмотров76K
Изучение основ Python — прекрасный опыт. Но эйфория от изучения языка постепенно заменяется желанием создать что-то своими руками. И это нормально, но нужны идеи.

Проблема здесь в том, что некоторые проекты либо слишком просты, либо слишком сложны для разработчика среднего уровня. Эта статья — помощь программисту уровня intermediate. Она предоставляет несколько идей проектов, которые могут стать интересным вызовом для вас. Материал адаптирован на русский язык совместно с Алексеем Некрасовым, лидером направления Python в МТС, программным директором направления Python в Skillbox.
Читать дальше →
Всего голосов 11: ↑6 и ↓5+6
Комментарии0

Используем join в SQLite-запросах Room для android

Время на прочтение2 мин
Количество просмотров7.6K

Совсем недавно вышла 2.4.0-alpha04 -версия Room, которая упрощают написание методов DAO и позволяет возвращать данные запросов в формате Map<key,value>. В этом посте мы вспомним про форматы JOIN в SQLite и напишем простой пример, демонстрирующий новую фичу в Room.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Быстрое и точное обнаружение аномалий по копулам (COPOD)

Время на прочтение6 мин
Количество просмотров7.9K

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

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

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

Обнаружение выбросов на основе копул (COPOD) – это новый алгоритм обнаружения аномалий. В Python он реализован в пакете PyOD.

У этого алгоритма есть несколько ключевых функций, которые выделяют его среди конкурирующих алгоритмов:

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Как управлять вашими секретами с git-crypt

Время на прочтение7 мин
Количество просмотров12K

Большинство программных проектов используют секреты – обычно, как ключи к удаленному API или данные для доступа к внешнему ресурсу, например к базе данных. Вашему приложению необходимы эти ключи во время работы, поэтому вам нужно предоставить их при развертывании приложения или на этапе подготовки окружения.
В данной статье я покажу вам, как использовать git-crypt так, чтобы вы могли безопасно хранить секреты ваших приложений в репозиториях исходного кода, даже публичных.

Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии10

Создаем GAN с помощью PyTorch

Время на прочтение8 мин
Количество просмотров17K

Генеративно-состязательные сети (Generative Adversarial Networks — GAN), предложенные Goodfellow и др. в 2014 году, произвели революцию в области создания изображений в компьютерном зрении — никто не мог поверить, что эти потрясающие живые изображения на самом деле создаются машинами с нуля. И даже больше — люди раньше думали, что задача генерации невозможна, и были поражены мощью GAN, потому что традиционно в этой области просто не существует каких-либо эталонных данных, с которыми мы могли бы сравнить наши сгенерированные изображения.

В этой статье представлена ​​простая идея, лежащая в основе создания GAN, за которой следует реализация сверточной GAN с помощью PyTorch и процедура ее обучения.

Читать далее
Всего голосов 10: ↑8 и ↓2+10
Комментарии1

Автоматизация UI-тестирования в приложении Недвижимости на Android. Доклад Яндекса

Время на прочтение16 мин
Количество просмотров8.7K
Чем больше процессов тестирования автоматизированы, тем эффективнее релизный пайплайн и тем быстрее пользователи получают новые возможности в сервисе. Руководитель Android-разработки Яндекс.Недвижимости Александр Рогов вспомнил, как эволюционировало UI-тестирование в его команде, как разработчики пришли к идее автоматизации, почему использовали фреймворк Espresso, с какими проблемами столкнулись и что в итоге получили.

— Начать хотелось бы с небольшого исторического экскурса.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+7
Комментарии1

Чтобы сделать продукт качественнее, нужно каждое утро натощак… Кликбейта не будет: оптимизируем тестирование

Время на прочтение4 мин
Количество просмотров5.2K

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии8

Яндекс открывает датасеты Беспилотных автомобилей, Погоды и Переводчика, чтобы помочь решить проблему сдвига данных в ML

Время на прочтение6 мин
Количество просмотров16K


В рамках конкурса Shifts Challenge мы выкладываем в открытый доступ крупнейший в мире датасет для обучения беспилотных автомобилей, а также данные Яндекс.Переводчика и Погоды. Приглашаем исследователей в области машинного обучения присоединиться к поиску решения проблемы сдвига распределения данных в реальном мире по отношению к тому, с чем моделям приходится иметь дело при обучении.

Меня зовут Андрей Малинин, я старший исследователь в Yandex Research. Сегодня я расскажу о проблеме, о наших датасетах, а также о конкурсе, который мы проводим в рамках международной конференции NeurIPS 2021 совместно с учеными из Оксфордского и Кембриджского университетов.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+46
Комментарии8

Hilt+Retrofit+Coroutine

Время на прочтение7 мин
Количество просмотров16K

Настало время разобраться с интересной библиотекой Hilt, которая построена на базе Dagger, и которую рекомендует использовать https://developer.android.com при создании различных зависимостей в вашем проекте. Рассмотрим как можно безболезненно внедрить её в ваш проект, работающий на архитектуре MVVM и использующий Retrofit.

Читать далее
Всего голосов 3: ↑2 и ↓1+5
Комментарии5

Чек-лист тестирования мобильных приложений

Время на прочтение4 мин
Количество просмотров218K
У многих начинающих специалистов в области тестирования возникает вопрос: «А как же протестировать мобильное приложение. С чего начать, какие проверки стоит осуществить?» Данный вопрос актуален, когда они приходят в компанию, где нет документации на проекте, либо это только что появившийся стартап. Чтобы ответить на эти вопросы была подготовлена универсальная шпаргалка, которую можно использовать при тестировании практически любого приложения.


Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии4

Миграция с LiveData на Kotlin’s Flow

Время на прочтение10 мин
Количество просмотров22K

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

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Allure-Android. Информативные отчеты для мобильной автоматизации

Время на прочтение3 мин
Количество просмотров7.2K
Статья публикуется от имени Иванова Андрея и Батеевой Екатерины, neifmetus

Автоматизация мобильных приложений довольно молодая сфера: фреймворков много и многие проекты сталкиваются с проблемой выбора самого «быстрого, стабильного, простого в использовании». Также и мы около двух лет назад стояли перед выбором нового инструмента автоматизации тестирования Android приложений.
Все популярные инструменты так или иначе базировались на UIAutomator и Espresso, поэтому мы решили затестить их в чистом виде и сравнить с теми же Appium (самый популярный) и seeTest (использовался до этого, лучший среди платных на тот момент).

Из достоинств Appium можно выделить привычный многим WebDriver API, возможность использования большинства популярных языков и библиотек. Кроме этого, он широко используется во многих компаниях и позволяет писать тесты сразу под платформы iOS и Android. И, наконец, это бесплатное коробочное решение — что может быть лучше?

Так думали мы, пока не обнаружили следующие недостатки:
  • низкая стабильность Appium Server
  • нельзя взаимодействовать с публичными методами Activity (в 2018 году про создание backdoor в Appium рассказал в своей статье Николай Абалов из Badoo, прочитать можно здесь)
  • сильно уступает по скорости выполнения тестов Espresso

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

Итак, фреймворк был выбран, оставалось найти остальные компоненты:
  1. Runner — должен позволять запускать тесты параллельно и конфигурировать пулы устройств
  2. Reporter — должен предоставлять удобочитаемый отчет, которым мог бы пользоваться любой член команды

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии0

Пишем паническую кнопку под андроид (Часть 2)

Время на прочтение4 мин
Количество просмотров5.5K

Заглядываем под капот, решаем проблемы и баги. Как все устроено и что используется - ответы тут! С вами Алексей и сегодня речь пойдет именно от этом.

Читать далее
Всего голосов 6: ↑5 и ↓1+6
Комментарии5

Определение позы для нескольких людей с Mediapipe

Время на прочтение6 мин
Количество просмотров4.9K

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность