Detox: Ein Gray-Box-End-to-End-Test-Framework für mobile Apps
Detox ist ein Open-Source-End-to-End-Testframework, das speziell für React Native-Anwendungen entwickelt wurde. Es bietet eine robuste und zuverlässige Lösung zur Automatisierung Ihrer mobilen App-Tests und sorgt so für ein qualitativ hochwertiges Benutzererlebnis.
Wie sieht ein Detox-Test aus?
„Javascript
beschreiben('Anmeldeablauf', () => {
beforeEach(async () => {
Warten Sie auf device.reloadReactNative();
});
it('sollte sich erfolgreich anmelden', async () => {
wait element(by.id('email')).typeText('[email protected]');
Warten Sie auf element(by.id('password')).typeText('123456');
const loginButton = element(by.text('Login'));
Warten Sie auf loginButton.tap();
Warten Sie Expect(loginButton).not.toExist();
Warten Sie Expect(element(by.label('Welcome'))).toBeVisible();
});
});
`
Dieses Code-Snippet demonstriert einen einfachen Detox-Test für einen Anmeldebildschirm. Der Test interagiert mit der App auf einem realen Gerät oder Simulator und ahmt die Aktionen eines echten Benutzers nach.
Starten Sie jetzt mit Detox!
Über Detox
Detox ermöglicht es mobilen Entwicklungsteams, durch kontinuierliche Integrationsworkflows eine hohe Geschwindigkeit zu erreichen. Es macht umfangreiche manuelle QS-Tests überflüssig und bietet eine leistungsstarke Lösung zur Automatisierung von End-to-End-Tests.
Hauptmerkmale:
1. Interaktion zwischen echtem Gerät und Simulator: Detox testet Ihre mobile App, während sie auf einem echten Gerät oder Simulator läuft, und interagiert damit wie ein echter Benutzer.
2. Gray-Box-Tests: Detox verfolgt einen Grey-Box-Testansatz und bietet eine robustere und zuverlässigere Testumgebung als herkömmliche Black-Box-Tests.
3. Milderung von Schuppenbildung: Durch die Umstellung auf Gray-Box-Tests bekämpft Detox direkt die inhärente Schuppenbildung, die häufig mit End-to-End-Tests einhergeht.
Unterstützte React Native-Versionen
Detox bietet offiziellen Support für die React Native-Versionen 0.71.x, 0.72.x und 0.73.x ohne die „Neue Architektur“ von React Native. Während neuere Versionen und „Neue Architektur“ möglicherweise mit Detox funktionieren, wurden sie vom Detox-Team noch nicht vollständig getestet.
Obwohl Detox ältere React Native-Versionen offiziell nicht unterstützt, ist das Team bestrebt, die Kompatibilität aufrechtzuerhalten. Wenn Sie Probleme mit einer nicht unterstützten Version haben, öffnen Sie bitte ein Problem oder wenden Sie sich an den Detox Discord-Server, um Hilfe zu erhalten.
Bekannte Probleme mit React Native
Detox überwacht und behebt kontinuierlich alle bekannten Probleme, die mit React Native auftreten könnten. Detaillierte Informationen zu diesen Problemen und ihren Problemumgehungen finden Sie in der offiziellen Detox-Dokumentation.
Beginnen Sie mit Detox
Um mit der Verwendung von Detox für Ihre React Native-App zu beginnen, befolgen Sie die ausführliche Anleitung „Erste Schritte“ auf der Detox-Website. Diese Anleitung führt Sie durch den Einrichtungsprozess und stellt sicher, dass Detox innerhalb weniger Minuten ausgeführt wird.
Dokumentenseite
Entdecken Sie die vollständige Detox-Dokumentation, einschließlich ausführlicher Anleitungen, API-Referenzen und Tipps zur Fehlerbehebung, auf der offiziellen Detox-Website.
Grundprinzipien der Entgiftung
Detox stellt traditionelle End-to-End-Testprinzipien in Frage und nimmt eine neue Perspektive ein, um die inhärenten Schwierigkeiten mobiler Tests anzugehen. Erfahren Sie mehr über diese einzigartigen Prinzipien auf der Detox-Website.
Beitrag zur Entgiftung
Detox ist ein Open-Source-Projekt und Ihre Beiträge werden sehr geschätzt. Erkunden Sie im Detox-Repository Probleme, die mit „Hilfe gesucht“ gekennzeichnet sind, um Bereiche zu finden, in denen Ihre Fähigkeiten einen Unterschied machen können.
Wenn Sie auf einen Fehler stoßen oder einen Vorschlag für eine neue Funktion haben, öffnen Sie ein Problem im Detox-Repository. Um in den Kern von Detox einzutauchen und zu seiner Entwicklung beizutragen, lesen Sie den Detox Contribution Guide.
Lizenz
Detox wird unter der Apache-2.0-Lizenz veröffentlicht.
Darknet Object Detection Framework und YOLO
Downcodes bietet Ihnen eine aufschlussreiche Erkundung des leistungsstarken Darknet-Objekterkennungs-Frameworks und seines gefeierten YOLO-Algorithmus (You Only Look Once). Dieser umfassende Leitfaden befasst sich mit den wichtigsten Aspekten dieses weit verbreiteten Systems und ermöglicht Ihnen, seine Fähigkeiten für verschiedene Objekterkennungsaufgaben zu nutzen.
Fangen wir an!
Darknet: Das Framework
Darknet ist ein Open-Source-Framework für neuronale Netzwerke, das in C, C++ und CUDA geschrieben ist. Es bietet hohe Leistung und Flexibilität und ist daher eine beliebte Wahl für Forscher und Entwickler, die mit der Objekterkennung und anderen Computer-Vision-Aufgaben arbeiten.
YOLO: Der Algorithmus
YOLO (You Only Look Once) ist ein Echtzeit-Objekterkennungsalgorithmus, der im Darknet-Framework arbeitet. Sein innovativer Ansatz ermöglicht die Verarbeitung von Bildern in einem einzigen Durchgang und ermöglicht so eine schnelle und genaue Objekterkennung.
Hank.ais Unterstützung für Darknet/YOLO
Hank.ai, ein führendes KI-Unternehmen, spielt eine wichtige Rolle bei der Unterstützung der Darknet/YOLO-Community und stellt deren kontinuierliche Entwicklung und Zugänglichkeit sicher.
Ankündigung von Darknet V3 „Jazz“
Die neueste Version von Darknet, Version 3.x, mit dem treffenden Namen „Jazz“, führt eine Reihe von Erweiterungen und Verbesserungen ein, darunter:
Verbesserte Leistung: Darknet V3 verfügt über beeindruckende Leistungssteigerungen, die eine noch schnellere Verarbeitung von Bildern und Videos ermöglichen.
Neue API: Die Einführung einer neuen C- und C++-API vereinfacht die Integration von Darknet in Ihre Anwendungen weiter.
Erweiterte Beispiele: Die Aufnahme von neuem Beispielcode und neuen Beispielanwendungen in das src-examples-Verzeichnis bietet mehr praktische Lernmöglichkeiten.
Darknet/YOLO-Ressourcen
Offizielle Website: https://darknetcv.ai
FAQ: Finden Sie Antworten auf häufig gestellte Fragen und erfahren Sie mehr über Darknet/YOLO.
Discord-Server: Treten Sie der aktiven Darknet/YOLO-Community auf Discord für Diskussionen, Support und Zusammenarbeit bei.
Papiere
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
Allgemeine Informationen
Geschwindigkeit und Genauigkeit: Darknet/YOLO übertrifft andere Objekterkennungs-Frameworks in Bezug auf Geschwindigkeit und Genauigkeit durchweg.
Open Source: Das Framework und die zugehörigen Algorithmen sind vollständig Open Source und ermöglichen eine kostenlose Nutzung und Anpassung.
Plattformübergreifende Unterstützung: Darknet/YOLO läuft nahtlos auf verschiedenen Plattformen, einschließlich Linux, Windows und macOS.
Darknet-Version
Das Darknet-Projekt wurde mehreren Iterationen unterzogen, wobei jede Version neue Funktionen und Verfeinerungen einführte.
Version 0.x: Das ursprüngliche Darknet-Tool, entwickelt von Joseph Redmon.
Version 1.x: Verwaltet von Alexey Bochkovskiy.
Version 2.x „OAK“: Gesponsert von Hank.ai und gepflegt von Stéphane Charette.
Version 3.x „JAZZ“: Die neueste Version mit einer umfassenden API und Leistungsverbesserungen.
Vortrainierte MSCOCO-Gewichte
Um schnell loslegen zu können, bietet Darknet/YOLO vorab trainierte Gewichte für verschiedene YOLO-Versionen an, die auf dem beliebten MSCOCO-Datensatz trainiert wurden, der 80 gängige Objektklassen umfasst.
Vortrainierte Gewichte für:
1. YOlov2
2. YOlov3
3. YOlov4
4. YOLOv7
Diese vorab trainierten Gewichte stehen im Darknet-Repository zum Download zur Verfügung.
Beispielverwendung:
`Bash
Vorab trainierte Gewichte herunterladen (YOLOv4-tiny)
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights
Führen Sie die Objekterkennung für ein Bild aus
darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg
Führen Sie die Objekterkennung für ein Video aus
darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi
`
Darknet aufbauen
Darknet erfordert C++17 oder neuer, OpenCV und verwendet CMake zum Erstellen.
Baumöglichkeiten:
1. Google Colab: Verwenden Sie die gleichen Anweisungen wie für Linux.
2. Linux CMake-Methode:
* Voraussetzungen:
* build-essential, git, libopencv-dev, cmake (Installation mit dem Paketmanager Ihrer Distribution)
* CUDA (optional): Für GPU-Beschleunigung. Laden Sie es von https://developer.nvidia.com/cuda-downloads herunter und installieren Sie es.
* cuDNN (optional): Herunterladen und installieren von https://developer.nvidia.com/rdp/cudnn-download oder https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn- Paketmanager-Installationsübersicht.
* Build-Schritte:
`Bash
mkdir ~/srccd ~/src
Git-Klon https://github.com/hank-ai/darknet
CD Darknet
mkdir-Build
CD-Build
cmake -DCMAKEBUILDTYPE=Release ..
Erstellen Sie ein -j4-Paket
sudo dpkg -i darknet-VERSION.deb
`
3. Windows CMake-Methode:
* Voraussetzungen:
* Git, CMake, NSIS, Visual Studio 2022 Community: Installation mit Winget.
* Microsoft VCPKG: Zum Erstellen von OpenCV installieren.
* Build-Schritte:
`Bash
CDC:
mkdir c:src
cd c:src
Git-Klon https://github.com/microsoft/vcpkg
cd vcpkg
Bootstrap-vcpkg.bat
.vcpkg.exe integrieren installieren
.vcpkg.exe integriert Powershell
.vcpkg.exe installiere opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
CD ..
Git-Klon https://github.com/hank-ai/darknet.git
CD Darknet
mkdir-Build
CD-Build
cmake -DCMAKEBUILDTYPE=Release -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
`
Nutzung von Darknet
CLI: Darknet bietet eine Befehlszeilenschnittstelle für verschiedene Aufgaben, darunter:
* Objekterkennung: Objekte in Bildern und Videos erkennen.
* Training: Trainieren Sie benutzerdefinierte Objekterkennungsmodelle.
* Leistungsbewertung: Messen Sie die Genauigkeit Ihrer Modelle.
DarkHelp: DarkHelp ist eine alternative, robuste CLI mit zusätzlichen Funktionen wie Objektverfolgung und Kacheln.
Beispiel-CLI-Befehle:
`Bash
Überprüfen Sie die Darknet-Version
Darknet-Version
Führen Sie die Objekterkennung für ein Bild aus
Darknet-Detektortest car.data car.cfg car_best.weights image1.jpg
Trainieren Sie ein neues Netzwerk
Darknet-Detektor -map -dont_show train Animals.data Animals.cfg
`
Ausbildung
DarkMark: Ein Tool zum Kommentieren von Bildern, Generieren von Trainingsdaten und Verwalten Ihrer Darknet/YOLO-Projekte.
Manuelle Einrichtung: Für mehr Kontrolle können Sie die für das Training erforderlichen Dateien manuell erstellen, darunter:
* Konfigurationsdatei (.cfg): Definiert die Netzwerkarchitektur und Hyperparameter.
* Namensdatei (.names): Listet die Objektklassen auf, die Sie erkennen möchten.
* Datendatei (.data): Gibt die Trainings- und Validierungsdatensätze an.
* Anmerkungsdateien (.txt): Enthalten Begrenzungsrahmenkoordinaten für Ihre Trainingsbilder.
Schritte für das manuelle Training:
1. Trainingsdaten vorbereiten: Kommentieren Sie Ihre Bilder mit DarkMark oder einem anderen Anmerkungstool.
2. Konfigurationsdatei erstellen: Kopieren Sie eine vorhandene Konfigurationsdatei (z. B. yolov4-tiny.cfg) und ändern Sie sie für Ihren spezifischen Datensatz.
3. Namensdatei erstellen: Listen Sie Ihre Objektklassen in einer Textdatei auf.
4. Datendatei erstellen: Geben Sie Pfade zu Ihren Trainings- und Validierungsdatensätzen an.
5. Trainieren Sie das Modell:
`Bash
Darknet-Detektor -map -dont_show train Animals.data Animals.cfg
`
Andere Tools und Links
DarkHelp: https://github.com/hank-ai/darkhelp
Darknet/YOLO-FAQ: https://darknetcv.ai/faq
Stéphanes YouTube-Kanal: https://www.youtube.com/channel/UC3c1x727824J8oV8YfH57A
Darknet/YOLO Discord-Server: https://discord.gg/zSq8rtW
Roadmap
Kurzfristige Ziele:
Verbessern Sie die Befehlszeilenanalyse für eine bessere Benutzererfahrung.
Optimieren Sie den Code für eine verbesserte Leistung.
Verbessern Sie die Konsistenz und Lesbarkeit des Codes.
Mittelfristige Ziele:
Ersetzen Sie char durch std::string, um die Codesicherheit zu erhöhen.
Optimieren Sie den Einsatz von cv::Mat für eine effiziente Bildverarbeitung.
Erweitern Sie die Unterstützung für Bildformate und Kanäle.
Langfristige Ziele:
Unterstützung für Nicht-NVIDIA-GPUs hinzufügen.
Führen Sie gedrehte Begrenzungsrahmen und Winkelunterstützung ein.
Implementieren Sie Schlüsselpunkte/Skelette und Heatmaps für eine komplexere Objekterkennung.
Entdecken Sie Segmentierungsfunktionen.
Abschluss
Darknet und YOLO haben den Bereich der Objekterkennung revolutioniert und bieten ein leistungsstarkes und flexibles Framework für Forscher, Entwickler und Enthusiasten gleichermaßen. Indem Sie den Open-Source-Charakter nutzen, die verfügbaren Ressourcen erkunden und sich an der aktiven Community beteiligen, können Sie Darknet/YOLO für eine breite Palette innovativer Anwendungen nutzen.
Downcodes hofft, dass Ihnen dieser umfassende Leitfaden ein solides Verständnis von Darknet und YOLO vermittelt hat, sodass Sie sich selbstbewusst auf die Reise der Objekterkennung begeben können!