Автоматические end-to-end тесты хороши тем, что позволяют сымитировать действия пользователя на сайте. Мы можем запрограммировать в скрипте теста действия типа открыть страницу, нажать на кнопку, ввести данные в поля ввода, нажать галочки и радиокнопки, отправить форму, и ждать на выходе нужный результат. Увидел текст "Ваше сообщение принято. Спасибо" - тест пройден. В ином случае - не пройден. Все прозрачно и понятно. Можно написать автотесты на все критично важные модели поведения пользователя на сайте, перед каждым обновлением кода на боевом сервере прогонять их и таким образом значительно повысить качество разработки. Но мы пойдем еще дальше...
Пользователь
Эффективный поиск XSS-уязвимостей
Про XSS-уязвимости известно давным-давно — казалось бы, нужен ли миру ещё один материал о них? Но когда Иван Румак, занимающийся тестированием безопасности, поделился методологией их поиска на нашей конференции Heisenbug, реакция зрителей оказалась очень положительной.
И спустя два года у этого доклада по-прежнему растут просмотры и лайки, это один из самых востребованных материалов Heisenbug. Поэтому теперь мы решили, что многим будет полезна текстовая версия, и сделали ее для Хабра.
Под катом — и текст, и видео. Далее повествование идет от лица Ивана.
Мониторинг пет-проектов на коленке: Netdata, Monitoror, N8N
Привет, я Паша из Ozon. В рабочее время занимаюсь тестированием поиска, а по вечерам надеваю маску инди-разработчика. И моя самая частая задача — написать скрипт → залить его на сервер → периодически мониторить, что сервер доступен. Эта статья как раз и будет строиться вокруг последнего пункта.
Вы наверняка в курсе, что существуют Grafana, Prometheus, Kibana, LogDNA и другие инструменты для мониторинга, визуализации и анализа данных. C первыми двумя я вплотную познакомился в Ozon, а про Kibana слышал когда-то давно и только в паре со словом «логи». Чтобы графики в Grafana рисовать — придется штат аналитиков нанять (ба-дум-тсс). Для пет-проекта это перебор, нужно что-то сильно проще (с точки зрения стоимости, простоты настройки и удобства). Ниже расскажу, какие готовые инструменты для мониторинга небольших пет-проектов я нашёл в пучинах интернета, а также оставлю комментарии и рекомендации по использованию.
Kaspresso tutorials. Часть 1. Запуск первого теста
Всем привет! Мы запускаем большую серию статей-туториалов о Kaspresso в частности и UI-тестах под Android в общем. Статьи планируются разного уровня сложности: первые материалы будут рассчитаны на людей, которые никогда не программировали и ничего не автоматизировали, в последних вы найдете хардовые детали реализаций разных сложных механизмов и инфраструктуру. То есть в совокупности весь туториал будет полезен как для тех, кто лишь начинает поэтапное погружение в автоматизацию с Kaspresso, так и для опытных разработчиков, которые могут найти разные полезные детали реализаций или почерпнуть интересные практики.
Мы знаем, что вы долго просили подобный туториал. И наконец-то мы нашли время и энергию, чтобы претворить это в жизнь!
Итак, в первой статье мы очень подробно рассмотрим, как подготовить рабочее окружение для работы с Kaspresso, как скачать и запустить первые тесты на эмуляторах и реальных девайсах, а также как посмотреть результаты первых прогонов. Статья идеально подойдет тем, кто не имеет никакого опыта в разработке или автоматизации.
Как симулировать плохую сеть под Linux, macOS и Windows
Clumsy 0.2
Все распределённые системы — базы данных, мобильные приложения, корпративные SaaS и так далее — следует разрабатывать с учётом сбоев. Например, компания Stripe во время тестов убивала случайные инстансы — и смотрела, что произойдёт. Компания Netflix рандомно уничтожала инстансы прямо в продакшне с помощью программы Chaos Monkey (проект Simian Army).
Симуляция сбоев — необходимое средство тестирования. Проблема в том, что ситуации не делятся только на чёрное и белое, Есть огромная «серая» зона, где сбои явно не выражены, а проявляются в плохих условиях сети: ненадёжное соединение, узкий канал, потери пакетов, высокая задержка, дубликаты пакетов и так далее.
Accompanist — первый аккорд. Обзор библиотеки для Jetpack Compose
Обычно новым фреймворкам не хватает хороших примеров использования, туториалов и инструментов. Но не в случае с Jetpack Compose: параллельно с разработкой фреймворка Google развивал репозиторий, богатый на примеры использования. Вырисовывался набор полезных утилит, переиспользуемых виджетов и прочих удобств для разработки.
Так из репозитория с примерами вырос Accompanist — набор библиотек для Jetpack Compose, которые можно добавить в свой проект как зависимость. В статье рассмотрим подробнее, какой инструментарий он предоставляет.
13 проектов для Python-программистов уровня intermediate
Проблема здесь в том, что некоторые проекты либо слишком просты, либо слишком сложны для разработчика среднего уровня. Эта статья — помощь программисту уровня intermediate. Она предоставляет несколько идей проектов, которые могут стать интересным вызовом для вас. Материал адаптирован на русский язык совместно с Алексеем Некрасовым, лидером направления Python в МТС, программным директором направления Python в Skillbox.
Используем join в SQLite-запросах Room для android
Совсем недавно вышла 2.4.0-alpha04 -версия Room, которая упрощают написание методов DAO и позволяет возвращать данные запросов в формате Map<key,value>. В этом посте мы вспомним про форматы JOIN в SQLite и напишем простой пример, демонстрирующий новую фичу в Room.
Быстрое и точное обнаружение аномалий по копулам (COPOD)
Выбросы или аномалии – это точки данных, которые отклоняются от нормы набора данных. Порой кажется, что они были получены с помощью какого-то другого механизма.
Обнаружение аномалий – это обычно задача обучения без учителя, цель которой состоит в выявлении подозрительных наблюдений в данных. Ограничение состоит в стоимости неправильного обозначения нормальных точек как аномалий и невозможности найти фактические аномалии.
Областью применения поиска аномалий может быть обнаружение вторжений в сеть, мониторинг качества данных и арбитраж цен на финансовых рынках.
Обнаружение выбросов на основе копул (COPOD) – это новый алгоритм обнаружения аномалий. В Python он реализован в пакете PyOD.
У этого алгоритма есть несколько ключевых функций, которые выделяют его среди конкурирующих алгоритмов:
Как управлять вашими секретами с git-crypt
Большинство программных проектов используют секреты – обычно, как ключи к удаленному API или данные для доступа к внешнему ресурсу, например к базе данных. Вашему приложению необходимы эти ключи во время работы, поэтому вам нужно предоставить их при развертывании приложения или на этапе подготовки окружения.
В данной статье я покажу вам, как использовать git-crypt так, чтобы вы могли безопасно хранить секреты ваших приложений в репозиториях исходного кода, даже публичных.
Создаем GAN с помощью PyTorch
Генеративно-состязательные сети (Generative Adversarial Networks — GAN), предложенные Goodfellow и др. в 2014 году, произвели революцию в области создания изображений в компьютерном зрении — никто не мог поверить, что эти потрясающие живые изображения на самом деле создаются машинами с нуля. И даже больше — люди раньше думали, что задача генерации невозможна, и были поражены мощью GAN, потому что традиционно в этой области просто не существует каких-либо эталонных данных, с которыми мы могли бы сравнить наши сгенерированные изображения.
В этой статье представлена простая идея, лежащая в основе создания GAN, за которой следует реализация сверточной GAN с помощью PyTorch и процедура ее обучения.
Автоматизация UI-тестирования в приложении Недвижимости на Android. Доклад Яндекса
— Начать хотелось бы с небольшого исторического экскурса.
Чтобы сделать продукт качественнее, нужно каждое утро натощак… Кликбейта не будет: оптимизируем тестирование
Меня зовут Андрей Непряхин, я руковожу отделом QA в компании AGIMA и расскажу, как мы подошли к процессу тестирования, чтобы сделать его более прозрачным, отлаженным и менее дорогостоящим. Но главная цель — повысить качество продукта. Это влияет на несколько очевидных метрик: лояльность наших клиентов, которые используют сайт, сервис или мобильное приложение, и выстраивание теплых и долгих отношений с нашим заказчиком, если мы говорим о разработке на аутсорсе.
Яндекс открывает датасеты Беспилотных автомобилей, Погоды и Переводчика, чтобы помочь решить проблему сдвига данных в ML
В рамках конкурса Shifts Challenge мы выкладываем в открытый доступ крупнейший в мире датасет для обучения беспилотных автомобилей, а также данные Яндекс.Переводчика и Погоды. Приглашаем исследователей в области машинного обучения присоединиться к поиску решения проблемы сдвига распределения данных в реальном мире по отношению к тому, с чем моделям приходится иметь дело при обучении.
Меня зовут Андрей Малинин, я старший исследователь в Yandex Research. Сегодня я расскажу о проблеме, о наших датасетах, а также о конкурсе, который мы проводим в рамках международной конференции NeurIPS 2021 совместно с учеными из Оксфордского и Кембриджского университетов.
Hilt+Retrofit+Coroutine
Настало время разобраться с интересной библиотекой Hilt, которая построена на базе Dagger, и которую рекомендует использовать https://developer.android.com при создании различных зависимостей в вашем проекте. Рассмотрим как можно безболезненно внедрить её в ваш проект, работающий на архитектуре MVVM и использующий Retrofit.
Чек-лист тестирования мобильных приложений
Миграция с LiveData на Kotlin’s Flow
LiveData была нужна нам еще в 2017 году. Паттерн наблюдателя облегчил нам жизнь, но такие опции, как RxJava, в то время были слишком сложными для новичков. Команда Architecture Components создала LiveData: очень авторитетный класс наблюдаемых хранилищ данных, разработанный для Android. Он был простым, чтобы облегчить начало работы, а для более сложных случаев реактивных потоков рекомендовалось использовать RxJava, используя преимущества интеграции между ними.
Allure-Android. Информативные отчеты для мобильной автоматизации
Автоматизация мобильных приложений довольно молодая сфера: фреймворков много и многие проекты сталкиваются с проблемой выбора самого «быстрого, стабильного, простого в использовании». Также и мы около двух лет назад стояли перед выбором нового инструмента автоматизации тестирования Android приложений.
Все популярные инструменты так или иначе базировались на UIAutomator и Espresso, поэтому мы решили затестить их в чистом виде и сравнить с теми же Appium (самый популярный) и seeTest (использовался до этого, лучший среди платных на тот момент).
Из достоинств Appium можно выделить привычный многим WebDriver API, возможность использования большинства популярных языков и библиотек. Кроме этого, он широко используется во многих компаниях и позволяет писать тесты сразу под платформы iOS и Android. И, наконец, это бесплатное коробочное решение — что может быть лучше?
Так думали мы, пока не обнаружили следующие недостатки:
- низкая стабильность Appium Server
- нельзя взаимодействовать с публичными методами Activity (в 2018 году про создание backdoor в Appium рассказал в своей статье Николай Абалов из Badoo, прочитать можно здесь)
- сильно уступает по скорости выполнения тестов Espresso
Для нас эти моменты были критичными, поэтому было принято решение собрать свой набор инструментов вокруг Espresso для построения экосистемы тестирования мобильных приложений.
Итак, фреймворк был выбран, оставалось найти остальные компоненты:
- Runner — должен позволять запускать тесты параллельно и конфигурировать пулы устройств
- Reporter — должен предоставлять удобочитаемый отчет, которым мог бы пользоваться любой член команды
Пишем паническую кнопку под андроид (Часть 2)
Заглядываем под капот, решаем проблемы и баги. Как все устроено и что используется - ответы тут! С вами Алексей и сегодня речь пойдет именно от этом.
Определение позы для нескольких людей с Mediapipe
Оценка позы человека из видео применяется в различных приложениях, таких как распознавание языка жестов и управление жестами всего тела. Существуют также применения в классификации последовательности движений при физической активности, такой как йога, упражнения и танцы, что позволяет количественно определять движения с помощью определения ориентиров на теле.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность