Detox: система сквозного тестирования мобильных приложений «серого ящика»
Detox — это среда комплексного тестирования с открытым исходным кодом, специально разработанная для приложений React Native. Он предлагает надежное и надежное решение для автоматизации тестирования мобильных приложений, обеспечивающее высокое качество пользовательского опыта.
Как выглядит детокс-тест?
`javascript
описать('Последовательность входа в систему', () => {
beforeEach(async () => {
ожидайте устройство.reloadReactNative();
});
it('должен войти в систему успешно', async () => {
await element(by.id('email')).typeText('[email protected]');
await element(by.id('password')).typeText('123456');
const loginButton = element(by.text('Login'));
дождитесь входа в систему.tap();
ожидайте ожидания (loginButton).not.toExist();
ждут ожидания (элемент (by.label («Добро пожаловать»))).toBeVisible();
});
});
`
Этот фрагмент кода демонстрирует простой тест Detox для экрана входа в систему. Тест взаимодействует с приложением на реальном устройстве или симуляторе, имитируя действия реального пользователя.
Начните курс Детокса прямо сейчас!
О Детоксе
Detox позволяет командам мобильных разработчиков достигать высокой скорости за счет использования рабочих процессов непрерывной интеграции. Он устраняет необходимость в обширном ручном тестировании качества, предоставляя мощное решение для автоматизации сквозного тестирования.
Ключевые особенности:
1. Взаимодействие с реальным устройством и симулятором. Detox тестирует ваше мобильное приложение, когда оно работает на реальном устройстве или симуляторе, взаимодействуя с ним так же, как реальный пользователь.
2. Тестирование «серого ящика». Detox использует подход тестирования «серого ящика», обеспечивая более надежную и надежную среду тестирования, чем традиционное тестирование «черного ящика».
3. Уменьшение нестабильности: переходя к тестированию «серого ящика», Detox напрямую устраняет присущую ему нестабильность, часто связанную со сквозными тестами.
Поддерживаемые версии React Native
Detox обеспечивает официальную поддержку версий React Native 0.71.x, 0.72.x и 0.73.x без «новой архитектуры» React Native. Хотя более новые версии и «Новая архитектура» могут работать с Detox, они еще не были полностью протестированы командой Detox.
Хотя Detox официально не поддерживает старые версии React Native, команда стремится поддерживать совместимость. Если у вас возникли какие-либо проблемы с неподдерживаемой версией, откройте проблему или обратитесь за помощью на сервер Detox Discord.
Известные проблемы с React Native
Detox постоянно отслеживает и устраняет любые известные проблемы, которые могут возникнуть с React Native. Подробную информацию об этих проблемах и способах их решения можно найти в официальной документации Detox.
Начни с детоксикации
Чтобы начать использовать Detox для вашего приложения React Native, следуйте подробному руководству по началу работы на веб-сайте Detox. Это руководство проведет вас через процесс установки, гарантируя, что Detox запустится в течение нескольких минут.
Сайт документов
Изучите полную документацию Detox, включая подробные руководства, ссылки на API и советы по устранению неполадок, на официальном сайте Detox.
Основные принципы детоксикации
Detox бросает вызов традиционным принципам сквозного тестирования, принимая новый взгляд на решение проблем, присущих мобильному тестированию. Узнайте об этих уникальных принципах на сайте Detox.
Вклад в детоксикацию
Detox — это проект с открытым исходным кодом, и ваш вклад высоко ценится. Изучите проблемы, помеченные пометкой «Требуется помощь» в репозитории Detox, чтобы найти области, где ваши навыки могут иметь значение.
Если вы столкнулись с ошибкой или у вас есть предложение по новой функции, откройте проблему в репозитории Detox. Чтобы погрузиться в суть Детокса и внести свой вклад в его развитие, обратитесь к Руководству по детоксикации.
Лицензия
Detox выпускается под лицензией Apache-2.0.
Платформа обнаружения объектов Darknet и YOLO
Downcodes предлагает вам подробное исследование мощной системы обнаружения объектов Darknet и ее знаменитого алгоритма YOLO (вы смотрите только один раз). В этом подробном руководстве рассматриваются ключевые аспекты этой широко распространенной системы, что позволяет вам использовать ее возможности для решения различных задач по обнаружению объектов.
Начнем!
Даркнет: Основа
Darknet — это платформа нейронных сетей с открытым исходным кодом, написанная на C, C++ и CUDA. Он предлагает высокую производительность и гибкость, что делает его популярным выбором для исследователей и разработчиков, занимающихся обнаружением объектов и другими задачами компьютерного зрения.
ЙОЛО: Алгоритм
YOLO (You Only Look Once) — это алгоритм обнаружения объектов в реальном времени, работающий в рамках даркнета. Инновационный подход позволяет обрабатывать изображения за один проход, обеспечивая быстрое и точное обнаружение объектов.
Поддержка Hank.ai для Darknet/YOLO
Hank.ai, ведущая компания в области искусственного интеллекта, играет важную роль в поддержке сообщества Darknet/YOLO, обеспечивая его постоянное развитие и доступность.
Анонсируем Darknet V3 «Джаз»
Последняя версия Darknet, версия 3.x, метко названная «Джаз», содержит ряд усовершенствований и усовершенствований, в том числе:
Повышенная производительность: Darknet V3 может похвастаться впечатляющим приростом производительности, что позволяет обрабатывать изображения и видео еще быстрее.
Новый API: введение нового API C и C++ еще больше упрощает интеграцию Darknet в ваши приложения.
Расширенные примеры: включение новых примеров кода и приложений в каталог src-examples предоставляет больше возможностей для практического обучения.
Ресурсы Даркнета/YOLO
Официальный сайт: https://darknetcv.ai.
Часто задаваемые вопросы: найдите ответы на распространенные вопросы и узнайте больше о Darknet/YOLO.
Сервер Discord: присоединяйтесь к активному сообществу Darknet/YOLO на Discord для обсуждений, поддержки и сотрудничества.
Статьи
YOLOv7: https://arxiv.org/abs/2207.02662
Scaled-YOLOv4: https://arxiv.org/abs/2102.05909
YOLOv4: https://arxiv.org/abs/2004.10934
YOLOv3: https://pjreddie.com/media/files/papers/YOLOv3.pdf
Общая информация
Скорость и точность: Darknet/YOLO неизменно превосходит другие системы обнаружения объектов с точки зрения скорости и точности.
Открытый исходный код: платформа и связанные с ней алгоритмы имеют полностью открытый исходный код, что позволяет бесплатно использовать и настраивать.
Межплатформенная поддержка: Darknet/YOLO безупречно работает на различных платформах, включая Linux, Windows и macOS.
Даркнет-версия
Проект Darknet претерпел несколько итераций, каждая версия добавляла новые функции и усовершенствования.
Версия 0.x: оригинальный инструмент Darknet, разработанный Джозефом Редмоном.
Версия 1.x: Поддерживается Алексеем Бочковским.
Версия 2.x «ДУБ»: спонсируется Hank.ai и поддерживается Стефаном Шареттом.
Версия 3.x «JAZZ»: последняя версия, представляющая комплексный API и улучшенную производительность.
MSCOCO Предварительно обученные веса
Чтобы быстро начать работу, Darknet/YOLO предлагает предварительно обученные веса для различных версий YOLO, обученных на популярном наборе данных MSCOCO, который включает 80 распространенных классов объектов.
Предварительно обученные веса для:
1. ЙОЛОв2
2. ЙОЛОв3
3. ЙОЛОв4
4. YOLOv7
Эти предварительно обученные веса доступны для загрузки в репозитории Darknet.
Пример использования:
`бить
Загрузите предварительно подготовленные веса (YOLOv4-tiny)
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
Запустить обнаружение объектов на изображении
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
Запустите обнаружение объектов на видео
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
Создание даркнета
Для Darknet требуется C++17 или новее, OpenCV и для сборки используется CMake.
Варианты постройки:
1. Google Colab: используйте те же инструкции, что и для Linux.
2. Метод Linux CMake:
* Предпосылки:
* build-essential, git, libopencv-dev, cmake (установите с помощью менеджера пакетов вашего дистрибутива)
* CUDA (необязательно): для ускорения графического процессора. Загрузите и установите с https://developer.nvidia.com/cuda-downloads.
* cuDNN (необязательно): загрузите и установите с https://developer.nvidia.com/rdp/cudnn-download или https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn- обзор менеджера-установки-пакетов.
* Этапы сборки:
`бить
mkdir ~/srccd ~/src
клон git https://github.com/hank-ai/darknet
компакт-диск даркнет
сборка mkdir
сборка компакт-диска
cmake -DCMAKEBUILDTYPE=Выпустить ..
сделать пакет -j4
sudo dpkg -i darknet-ВЕРСИЯ.deb
`
3. Метод Windows CMake:
* Предпосылки:
* Git, CMake, NSIS, сообщество Visual Studio 2022: установите с помощью winget.
* Microsoft VCPKG: установите для сборки OpenCV.
* Этапы сборки:
`бить
CDC:
mkdir c:src
компакт-диск c: источник
git-клон https://github.com/microsoft/vcpkg
компакт-диск vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe интегрировать установку
.vcpkg.exe интегрирует PowerShell
.vcpkg.exe install opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
компакт-диск ..
клон git https://github.com/hank-ai/darknet.git
компакт-диск даркнет
сборка mkdir
сборка компакт-диска
cmake -DCMAKEBUILDTYPE=Выпуск -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake ..
msbuild.exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln
msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
Использование даркнета
CLI: Darknet предоставляет интерфейс командной строки для различных задач, в том числе:
* Обнаружение объектов: обнаружение объектов на изображениях и видео.
* Обучение: обучение пользовательским моделям обнаружения объектов.
* Оценка производительности: Измерьте точность ваших моделей.
DarkHelp: DarkHelp — это альтернативный надежный интерфейс командной строки с дополнительными функциями, такими как отслеживание объектов и мозаика.
Примеры команд CLI:
`бить
Проверьте версию даркнета
даркнет-версия
Запустить обнаружение объектов на изображении
Тест детектора даркнета cars.data cars.cfg cars_best.weights image1.jpg
Обучите новую сеть
Детектор даркнета -map -dont_show train животные.данные животные.cfg
`
Обучение
DarkMark: инструмент для аннотирования изображений, создания обучающих данных и управления проектами Darknet/YOLO.
Ручная настройка. Для большего контроля вы можете вручную создать необходимые файлы для обучения, в том числе:
* Файл конфигурации (.cfg): определяет сетевую архитектуру и гиперпараметры.
* Файл имен (.names): содержит список классов объектов, которые вы хотите обнаружить.
* Файл данных (.data): определяет наборы данных для обучения и проверки.
* Файлы аннотаций (.txt): содержат координаты ограничивающей рамки для ваших обучающих изображений.
Шаги для ручного обучения:
1. Подготовьте данные для обучения. Аннотируйте изображения с помощью DarkMark или другого инструмента для аннотирования.
2. Создайте файл конфигурации. Скопируйте существующий файл конфигурации (например, yolov4-tiny.cfg) и измените его для вашего конкретного набора данных.
3. Создайте файл имен. Перечислите классы объектов в текстовом файле.
4. Создайте файл данных. Укажите пути к наборам данных для обучения и проверки.
5. Обучите модель:
`бить
Детектор даркнета -map -dont_show train животные.данные животные.cfg
`
Другие инструменты и ссылки
DarkHelp: https://github.com/hank-ai/darkhelp
Часто задаваемые вопросы по Darknet/YOLO: https://darknetcv.ai/faq
Канал Стефана на YouTube: https://www.youtube.com/channel/UC3c1x727824J8oV8YfH57A
Discord-сервер Darknet/YOLO: https://discord.gg/zSq8rtW
Дорожная карта
Краткосрочные цели:
Улучшите анализ командной строки для лучшего взаимодействия с пользователем.
Оптимизируйте код для повышения производительности.
Повышайте согласованность и читаемость кода.
Среднесрочные цели:
Замените char на std::string для повышения безопасности кода.
Оптимизируйте использование cv::Mat для эффективной обработки изображений.
Расширьте поддержку форматов изображений и каналов.
Долгосрочные цели:
Добавьте поддержку графических процессоров сторонних производителей.
Добавьте вращающиеся ограничивающие рамки и угловую поддержку.
Внедряйте ключевые точки/скелеты и тепловые карты для более сложного обнаружения объектов.
Изучите возможности сегментации.
Заключение
Darknet и YOLO произвели революцию в области обнаружения объектов, предложив мощную и гибкую среду для исследователей, разработчиков и энтузиастов. Приняв природу открытого исходного кода, исследуя доступные ресурсы и участвуя в активном сообществе, вы можете использовать Darknet/YOLO для широкого спектра инновационных приложений.
Компания Downcodes надеется, что это подробное руководство дало вам четкое представление о Darknet и YOLO, что позволит вам с уверенностью приступить к поиску объектов!