La suite de tests ITS (Image Test Suite) de l'appareil photo est un framework permettant d'exécuter des tests sur les images produites par un appareil photo Android. L'objectif général de chaque test dans ITS est de configurer la caméra d'une manière spécifique, de capturer une ou plusieurs prises de vue et de les examiner pour voir si elles contiennent les données d'image attendues. Pour de nombreux tests, l'appareil photo doit être pointé sur un tableau cible spécifique ou être éclairé à une intensité spécifique.
ITS se trouve dans le harnais de test CTS Verifier, dans cts/apps/CameraITS.
Les appareils doivent réussir les tests ITS correspondant aux fonctionnalités compatibles annoncées par le framework de l'appareil photo pour les applications tierces en tant que sous-ensemble de CTS.
Configuration
Pour exécuter les tests ITS, vous devez configurer les éléments suivants :
- Un appareil testé (DUT)
- Une machine hôte (par exemple, un ordinateur de bureau ou portable Linux)
- Scène photographiée par la caméra
Configuration de l'appareil testé
Pour configurer un DUT, procédez comme suit :
- Connectez le DUT à une machine hôte via USB.
- Accordez à l'hôte l'autorisation d'accéder à l'appareil en test via ADB.
Installez l'application CTS Verifier (
CtsVerifier.apk) sur l'appareil. Pour en savoir plus, consultez Utiliser CTS Verifier.extract root/out/host/linux-x86/cts-verfier/android-cts-verifier.zipcd android-cts-verifieradb install -r -g CtsVerifier.apkSur le DUT, lancez l'application d'appareil photo par défaut et fermez toutes les fenêtres qui s'affichent au lancement pour éviter toute interférence pendant le test.
Configuration de l'hôte
ITS exige que la machine hôte soit connectée au DUT via USB, qu'elle puisse utiliser ADB pour le contrôle et la communication de l'appareil, et que le logiciel requis soit installé.
Pour configurer votre machine hôte, assurez-vous que les logiciels suivants sont installés.
Outils de plate-forme du SDK Android
Les outils de plate-forme du SDK Android doivent être installés et ADB doit se trouver dans le chemin d'exécution du shell ou du terminal qui s'exécute sur la machine hôte. Pour la version publique des outils de plate-forme du SDK Android, consultez les notes de version des outils de plate-forme du SDK.
Python
Python doit être installé sur la machine hôte. Nous vous recommandons d'utiliser une distribution Python groupée pour garantir la compatibilité avec les versions. Pour savoir quelles versions de Python et de packages installer pour une version spécifique, consultez les notes de version ITS de l'appareil photo correspondant.
Mobly
Pour Android 12 et versions ultérieures, installez le framework de test Mobly. Mobly vous permet de configurer un DUT et une tablette graphique dans la classe its_base_test. Pour installer le framework de test Mobly, exécutez la commande suivante :
pip install moblyConfiguration de l'environnement
Pour configurer l'environnement de test, exécutez la commande suivante :
cd CameraITSsource build/envsetup.sh
Cette commande vérifie l'installation de Python, configure la variable d'environnement PYTHONPATH et exécute des tests unitaires sur les modules utils/*.py. Si aucune erreur n'est affichée dans le terminal, l'environnement est prêt à exécuter les tests ITS.
Configuration de la scène
Pour configurer les scènes, nous vous recommandons d'utiliser la configuration Camera ITS-in-a-box pour faciliter l'automatisation, la fiabilité et l'efficacité des tests. Les bancs d'essai ITS-in-a-box répondent à toutes les exigences d'éclairage, de centrage et de changement de graphique pour ITS. ITS-in-a-box est également requis pour tester les extensions de caméras.
Pour les tests manuels, assurez-vous des points suivants :
- L'appareil à tester est placé sur un trépied
- Le DUT est pointé sur la scène appropriée pour chaque test. Le script du test ITS fournit des invites pour modifier la configuration de la scène avant de commencer les tests dans une nouvelle scène.
- Le DUT est connecté à la machine hôte via USB.
- Le DUT ne bouge pas pendant l'exécution du test.
- La scène est éclairée par une source de lumière stable, sans fluctuation. (N'utilisez pas de lumière fluorescente, car elle introduit un scintillement.)
Le script de test ITS affiche une invite demandant à l'utilisateur de modifier la configuration de la scène avant de commencer les tests dans une nouvelle scène.
L'orientation du téléphone doit être définie de sorte que l'appareil photo prenne des images sans rotation. Le moyen le plus simple de vérifier cela est d'utiliser les scènes de visage de la scène 2. Sur la plupart des téléphones, le téléphone est en orientation paysage et est tourné dans le sens inverse des aiguilles d'une montre pour la caméra arrière et dans le sens des aiguilles d'une montre pour la caméra avant.
Fichiers de configuration
À l'aide du framework Mobly, vous devez créer un fichier de configuration config.yml pour définir le banc d'essai Mobly. Vous trouverez ci-dessous des exemples pour différents cas d'utilisation.
Fichier config.yml des scènes basées sur une tablette
Voici un exemple de fichier config.yml pour les scènes sur tablette. Pour les tests sur tablette, le mot clé TABLET doit figurer dans le nom du banc d'essai. Lors de l'initialisation, le programme d'exécution des tests Mobly initialise les paramètres du fichier et les transmet aux tests individuels.
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
Pour appeler le banc d'essai, exécutez tools/run_all_tests.py. S'il n'existe aucune valeur de ligne de commande spécifiant des caméras ou des scènes, le test est exécuté avec les valeurs du fichier config.yml. S'il existe des valeurs de ligne de commande pour les caméras ou les scènes, elles remplacent les valeurs de la section TestParams du fichier config.yml.
Exemple :
python tools/run_all_tests.pypython tools/run_all_tests.py camera=1python tools/run_all_tests.py scenes=2,1,0python tools/run_all_tests.py camera=0 scenes=scene_telepython tools/run_all_tests.py camera=0.4 scenes=4,scene6_tele
Paramètre chart_scaling
Dans Android 17 et versions ultérieures, le paramètre chart_scaling est inclus dans config.yml pour TEST_BED_TABLET_SCENES. Ce paramètre résout les problèmes de mise à l'échelle des graphiques pour les appareils photo téléobjectif avec un champ de vision plus large, ce qui empêche le recadrage de la scène et assure une mise au point correcte de l'appareil pendant les tests.
Les valeurs acceptées pour chart_scaling sont 1, 0.33, 0.5 ou 0.67, avec None comme valeur par défaut. Cette approche permet aux appareils d'utiliser un facteur de scaling optimal adapté à leurs exigences spécifiques, tout en conservant les tests fonctionnels sur tous les appareils.
Si chart_scaling est défini sur None, les tests déterminent automatiquement le facteur d'échelle à l'aide de chart_scaling_logic. Sinon, la valeur spécifiée dans config.yml est utilisée, ou une erreur est signalée si la mise à l'échelle n'est pas disponible.
Voici un exemple de config.yml avec le paramètre chart_scaling.
TestBeds:
- Name: TEST_BED_TABLET_SCENES # Need 'tablet' in name for tablet scenes
# Use TEST_BED_MANUAL for manual testing and remove below lines:
# - serial <tablet_id>
# label: tablet
# Test configuration for scenes[0:4, 6]
Controllers:
AndroidDevice:
- serial: <device-id> # quotes needed if serial id entirely numeric
label: dut
- serial: <tablet-id> # quotes needed if serial id entirely numeric
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # quotes needed
lighting_cntl: <controller-type> # can be arduino or "None"
lighting_ch: <controller-channel>
camera: <camera-id>
scene: <scene-name> # if <scene-name> runs all scenes
foldable_device: "False" # "True" if testing foldable device
chart_scaling: "None" # use the values available for scene to be tested
resultstore_upload: "False" # "True" if results should be uploaded to ResultStore
Des ajustements côté test sont nécessaires pour activer les fonctionnalités de mise à l'échelle des graphiques ITS de l'appareil photo. Si un test que vous utilisez ne le prend pas en charge, signalez un bug.
Voici un exemple de modification du côté test avec le paramètre chart_scaling.
# load chart for scene
its_session_utils.load_scene(
cam, props, self.scene, self.tablet, self.chart_distance,
chart_scaling=self.chart_scaling)
Fichier sensor_fusion scene config.yml
Voici un exemple de fichier config_yml pour les tests sensor_fusion.
Pour les tests sensor_fusion, le mot clé SENSOR_FUSION doit figurer dans le nom du banc d'essai. Android 13 et versions ultérieures ne prennent en charge que le contrôleur Arduino pour la fusion de capteurs en raison des tests de prévisualisation et de stabilisation vidéo.
Android 12 est compatible avec les manettes Arduino et Canakit.
Testbeds
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion/test_sensor_fusion.py
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: arduino
rotator_ch: 1
camera: 0
Pour exécuter des tests sensor_fusion avec la boîte de fusion de capteurs, exécutez la commande suivante :
python tools/run_all_tests.py scenes=sensor_fusionpython tools/run_all_tests.py scenes=sensor_fusion camera=0python tools/run_all_tests.py scenes=scene_flash,feature_combinationpython tools/run_all_tests.py scenes=checkerboard camera=1
Fichier config.yml pour plusieurs bancs d'essai
Voici un exemple de fichier config.yml avec plusieurs bancs d'essai, un banc d'essai pour tablette et un banc d'essai sensor_fusion. Le banc d'essai approprié est déterminé par les scènes testées.
Testbeds
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False"
chart_loc_arg: ""
camera: 0
scene: <scene-name> # if <scene-name> runs all scenes
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion/test_sensor_fusion.py
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: arduino # cntl can be arduino or canakit
rotator_ch: 1
camera: 0
Fichier config.yml pour les tests manuels
Voici un exemple de fichier config.yml pour les tests manuels. Android 14 et versions ultérieures sont compatibles avec les tests manuels pour tous les tests, à l'exception des tests scene_extensions. Pour les tests manuels, le mot clé MANUAL doit figurer dans le nom du banc d'essai.
De plus, la section AndroidDevice ne peut pas inclure de section de numéro de série ni de libellé pour une tablette.
TestBeds:
- Name: TEST_BED_MANUAL
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
debug_mode: "False"
camera: 0
scene: 1
Fichier config.yml de test du rig Gen2
Voici un exemple de fichier config.yml d'un banc d'essai TEST_BED_GEN2.
Ce banc d'essai est utilisé pour les tests scene_ip, qui utilisent un banc de test de deuxième génération](/docs/compatibility/cts/camera-its-box-gen2).
L'exemple suivant montre les paramètres du banc d'essai lorsque le banc Gen2 est disponible et que les tests scene_ip ne sont pas ignorés.
Testbeds
- Name: TEST_BED_GEN2
# Test configuration for scene_ip/test_default_jca_ip.py
Controllers:
AndroidDevice:
- serial: <device-id> # quotes needed if serial id entirely numeric
label: dut
TestParams:
debug_mode: "False" # quotes are needed here
chart_distance: 30
rotator_cntl: gen2_rotator # gen2 rig specific. "None" if gen2 rig not available
rotator_ch: 0
camera: <camera-id>
foldable_device: "False" # "True" if testing foldable device
tablet_device: "False" # "True" if testing tablet device
lighting_cntl: gen2_lights # gen2 rig specific. "None" if gen2 rig not available
lighting_ch: 1
scene: scene_ip
L'exemple suivant montre les paramètres du banc d'essai lorsque le banc Gen2 n'est pas disponible et que les tests scene_ip sont ignorés.
Testbeds
- Name: TEST_BED_GEN2
# Test configuration for scene_ip/test_default_jca_ip.py
Controllers:
AndroidDevice:
- serial: <device-id> # quotes needed if serial id entirely numeric
label: dut
TestParams:
debug_mode: "False" # quotes are needed here
chart_distance: 30
rotator_cntl: "None" # gen2 rig specific. "None" if gen2 rig not available
rotator_ch: <controller-channel>
camera: <camera-id>
foldable_device: "False" # "True" if testing foldable device
tablet_device: "False" # "True" if testing tablet device
lighting_cntl: "None" # gen2 rig specific. "None" if gen2 rig not available
lighting_ch: <controller-channel>
scene: scene_ip
Pour exécuter le test scene_ip, utilisez l'une des commandes suivantes :
python tests/scene_ip/test_default_jca_ip.py -c config.ymlpython tools/run_all_tests.py camera=<camera-id> scenes=scene_ip
Exécuter les tests ITS
Cette section décrit comment exécuter les tests ITS.
Appeler des tests
Une fois l'appareil, la machine hôte (y compris l'environnement) et la scène physique configurés, exécutez les tests ITS en suivant la procédure ci-dessous.
Ouvrez l'application CTS Verifier. Dans le menu des tests, sélectionnez Camera ITS Test (Test ITS de la caméra). Pour Android 17 et versions ultérieures, les tests
sensor_fusionetfeature_combinationse trouvent dans une activité supplémentaire nommée Camera ITS Sensor Fusion Rig Test.Sur la machine hôte, exécutez les tests ITS à partir du répertoire
CameraITS/. Par exemple, pour un appareil équipé de caméras avant et arrière, exécutez la commande suivante :python tools/run_all_tests.pyLe script parcourt les caméras et les scènes de test en fonction du fichier
config.yml. Pour déboguer les configurations, nous vous recommandons d'exécuter l'une des scènesscene2avec un seul test pour obtenir les résultats le plus rapidement possible.Pour les tests manuels, avant de commencer à exécuter l'ensemble des tests ITS sur chaque scène, le script prend une photo de la scène actuelle, l'enregistre au format JPEG, imprime le chemin d'accès au fichier JPEG dans la console et demande à l'utilisateur de confirmer si l'image est correcte. Ce flux capture and confirm (capturer et confirmer) se répète jusqu'à ce que l'utilisateur confirme que l'image est correcte. Voici les messages de ce flux.
Preparing to run ITS on camera 0 Start running ITS on camera: 0 Press Enter after placing camera 0 to frame the test scene: scene1_1 The scene setup should be: A grey card covering at least the middle 30% of the scene Running vendor 3A on device Capture an image to check the test scene Capturing 1 frame with 1 format [yuv] Please check scene setup in /tmp/tmpwBOA7g/0/scene1_1.jpg Is the image okay for ITS scene1_1? (Y/N)Chaque exécution du script affiche un journal indiquant
PASS,FAIL,FAIL*ouSKIPpour chaque test ITS.FAIL*indique que le test a échoué, mais comme il n'est pas encore obligatoire, il sera signalé commePASSà CtsVerifier.SKIPindique que le test a été réussi, car l'appareil n'a pas annoncé la fonctionnalité sous-jacente testée. Par exemple, si un appareil n'indique pas via les interfaces de caméras qu'il est compatible avec le format DNG, les tests liés à la capture de fichiers DNG sont ignorés et comptabilisés commePASS.Pour confirmer que les tests répondent aux exigences, appuyez sur le bouton avec la coche verte. L'entrée Camera ITS Test (Test ITS de l'appareil photo) du menu de test CTS Verifier devient alors verte, ce qui signifie que le téléphone a réussi le test Camera ITS.
Test parallèle des DUT
Les appareils équipés d'Android 14 ou version ultérieure sont compatibles avec les tests parallèles de l'appareil en cours de test. Cela vous permet de tester les DUT en parallèle avec plusieurs plates-formes pour accélérer les tests globaux. Par exemple, les tests parallèles vous permettent de tester la caméra 0 dans un rig et la caméra 1 dans un autre rig en même temps. Pour Android 17 et versions ultérieures, les tests Camera ITS étant divisés en deux activités, vous pouvez exécuter les tests sensor_fusion et feature_combination sur un DUT, et d'autres tests sur un autre DUT en parallèle. Tous les tests des sessions de tests parallèles sont agrégés dans la session CTS Verifier sur le DUT de référence.
Vous devez effectuer des tests parallèles avec le contrôle de l'éclairage Arduino, car le contrôle manuel de l'éclairage n'est pas compatible avec les tests parallèles. Assurez-vous qu'un canal différent sur le même contrôleur Arduino contrôle l'éclairage de chaque plate-forme.
Voici un exemple de fichier config.yml qui définit trois bancs d'essai à exécuter en parallèle.
TestBeds:
- Name: TEST_BED_TABLET_SCENES_INDEX_0
Controllers:
AndroidDevice:
- serial: <device-id-0>
label: dut
- serial: <tablet-id-0>
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False"
lighting_cntl: "arduino"
lighting_ch: <controller-channel-0>
camera: 0
scene: <scene-name> # if <scene-name> left as-is runs all scenes
foldable_device: "False"
- Name: TEST_BED_TABLET_SCENES_INDEX_1
Controllers:
AndroidDevice:
- serial: <device-id-1>
label: dut
- serial: <tablet-id-1>
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False"
lighting_cntl: "arduino"
lighting_ch: <controller-channel-1>
camera: 1
scene: <scene-name> # if <scene-name> left as-is runs all scenes
foldable_device: "False"
# TEST_BED_SENSOR_FUSION represents testbed index 2
# Parallel sensor_fusion is currently unsupported due to Arduino requirements
- Name: TEST_BED_SENSOR_FUSION
# Test configuration for sensor_fusion
Controllers:
AndroidDevice:
- serial: <device-id>
label: dut
TestParams:
fps: 30
img_size: 640,480
test_length: 7
debug_mode: "False"
chart_distance: 25
rotator_cntl: "arduino"
rotator_ch: <controller-channel-2>
camera: <camera-id>
foldable_device: "False"
tablet_device: "False"
lighting_cntl: "None"
lighting_ch: <controller-channel>
scene: "sensor_fusion"
Pour exécuter les bancs d'essai en parallèle, utilisez la commande suivante :
for i in 0 1 2; do python3 tools/run_all_tests.py testbed_index=$i num_testbeds=3 & done; waitEnvoyer les résultats de test agrégés
Dans Android 17 et versions ultérieures, vous pouvez envoyer des résultats agrégés des tests ITS de l'appareil photo pour l'approbation de la compilation. CTS Verifier vous permet de tester simultanément plusieurs scènes sur plusieurs appareils et d'agréger les résultats des tests de plusieurs rapports CTS Verifier (provenant de différentes exécutions de tests ou appareils) dans un seul envoi unifié.
Procédure d'envoi
Pour envoyer les résultats agrégés de la suite de tests ITS de la caméra afin d'approuver la compilation, procédez comme suit :
- Préparez les appareils : rassemblez deux ou trois appareils testés (DUT) qui ont tous exactement la même empreinte de compilation.
- Installez CTS Verifier : installez le dernier APK CTS Verifier, que vous pouvez obtenir à partir de l'explorateur de versions fourni.
Exécuter des tests en parallèle :
- Montez les DUT dans des bancs de test distincts.
- Exécutez différentes scènes Camera ITS sur chaque appareil simultanément.
- Collecte des rapports : récupérez le rapport CTS Verifier après chaque exécution. Cela inclut les rapports où des scènes ont échoué. Ne réexécutez que les scènes ayant échoué lors des exécutions suivantes.
Envoyer des rapports : importez plusieurs rapports CTS Verifier collectés sur tous les appareils.
Examiner les résultats : une fois les rapports importés, examinez les résultats agrégés :
- La section Analyse du test affiche la liste complète de toutes les scènes exécutées.
Les scènes non exécutées ou ayant échoué sont listées dans la section Échec.
Figure 1. Documentation des scènes qui n'ont pas été exécutées ou qui ont échoué.
Les scènes de dépassement sont listées dans la section Dépassement agrégé.
Figure 2. Scènes classées comme "Pass agrégé"
État d'approbation du build
L'approbation de la compilation est accordée une fois que toutes les scènes requises ont été traitées avec succès dans les rapports agrégés.
Modèle de bruit DNG
Les appareils qui annoncent la possibilité de capturer des images au format RAW ou DNG doivent fournir un modèle de bruit dans les métadonnées des résultats de capture de chaque prise de vue RAW. Ce modèle de bruit doit être intégré au HAL de l'appareil photo pour chaque appareil photo (par exemple, les caméras avant et arrière) sur l'appareil qui revendique la prise en charge.
Implémentation du modèle de bruit
Pour implémenter un modèle de bruit, suivez ces étapes pour générer un modèle de bruit et l'intégrer au HAL de l'appareil photo.
Pour générer un modèle de bruit pour chaque caméra, exécutez le script
dng_noise_model.pydans le répertoiretools. Cette opération génère un extrait de code C. Pour en savoir plus sur la configuration de la caméra et de l'environnement de capture, consultez le documentDngNoiseModel.pdfdans le répertoiretools.Pour implémenter le modèle de bruit pour l'appareil, coupez et collez l'extrait de code C dans le HAL de l'appareil photo.
Validation du modèle de bruit
Le test ITS automatisé tests/scene1_1/test_dng_noise_model.py valide le modèle de bruit en vérifiant que les valeurs de bruit pour l'exposition et le gain du cliché fournies dans les données de la caméra sont correctes.
Tests réussis de justesse (état du test : "RÉUSSITE*")
Dans Android 17 et versions ultérieures, la mention Réussite limite (PASS*) indique qu'un test a réussi, mais que ses métriques de performances sont très proches du seuil de réussite prédéfini. Bien que le test réponde techniquement aux critères de réussite, la proximité de la limite d'échec suggère qu'un examen plus approfondi est nécessaire.
Avantages du statut "Accepté avec réserve"
L'état PASS* présente plusieurs avantages :
Système d'alerte précoce : identifie les tests qui sont sur le point d'échouer, ce qui permet aux équipes de résoudre les problèmes avant qu'ils n'entraînent des échecs complets.
Optimisation proactive : encourage les équipes à optimiser les tests et le code qui se situent dans la partie inférieure de la plage acceptable, ce qui améliore la stabilité globale.
Qualité améliorée : permet de maintenir un niveau de qualité plus élevé en signalant les zones susceptibles de régresser à l'avenir avec des modifications mineures du code.
Réduction du temps de débogage : en détectant les tests
PASS*de manière précoce, vous pouvez réduire considérablement le temps et les efforts nécessaires pour déboguer les échecs complets à l'avenir.
Détails de PASS*
L'état PASS* inclut les éléments suivants :
Définition des seuils : des seuils de réussite marginaux spécifiques sont définis pour chaque test pertinent dans Camera ITS.
Détection automatisée : le système d'automatisation des tests détecte et classe les tests comme
PASS*en fonction des seuils définis.Mécanisme d'alerte : les équipes reçoivent des alertes automatiques pour tous les tests signalés comme
PASS*, ce qui leur permet d'examiner le test spécifique et ses métriques.Rapports : les états de réussite limite sont clairement indiqués dans les rapports de test et les tableaux de bord pour une meilleure visibilité. Ils sont représentés par
PASS*dans le rapportItsTestSummary, commeFail*pour les testsnot_yet_mandated. Le test conserve l'état "Vert", car il continue de réussir dans les seuils établis, pour éviter toute confusion. L'étatPASS*ne s'applique qu'à une classe de test, et non à l'ensemble de la scène. Par exemple, Scene_0 peut être considéré commePASSmême si test_jitter et test_metadata sontPASS*.Surveillance : les données sur les performances sont collectées sur les tests qui réussissent de justesse sur un appareil. Cela permet de surveiller les futures améliorations apportées à la caméra par les OEM si ces tests passent à l'état
PASS.
Voici un exemple de résultats de test avec PASS* :
INFO:root:Reporting camera 1 ITS results to CtsVerifier
INFO:root:ITS results to CtsVerifier: {'scene0': {'result': 'PASS', 'TEST_STATUS': [{'test': 'test_jitter', 'status': 'PASS*'}, {'test': 'test_metadata', **'status': 'PASS*'**}, {'test': 'test_request_capture_match', 'status': 'PASS'}, {'test': 'test_sensor_events', 'status': 'PASS'}, {'test': 'test_solid_color_test_pattern', 'status': 'PASS'}, {'test': 'test_test_patterns', 'status': 'SKIP'}, {'test': 'test_tonemap_curve', 'status': 'SKIP'}, {'test': 'test_unified_timestamps', 'status': 'PASS'}, {'test': 'test_vibration_restriction', 'status': 'PASS'}], 'mpc_metrics': [], 'performance_metrics': [], 'feature_query_proto': [], 'feature_query_proto_path': [], 'summary': '/tmp/CameraITS_zojk4sdr/cam_id_1/scene0/scene_test_summary.txt', 'start': 1754330630345, 'end': 1754330764534}, 'scene1_1': {'result': 'NOT_EXECUTED'}, 'scene1_2': {'result': 'NOT_EXECUTED'}, 'scene1_3': {'result': 'NOT_EXECUTED'}, 'scene2_a': {'result': 'NOT_EXECUTED'}, 'scene2_b': {'result': 'NOT_EXECUTED'}, 'scene2_c': {'result': 'NOT_EXECUTED'}, 'scene2_d': {'result': 'NOT_EXECUTED'}, 'scene2_e': {'result': 'NOT_EXECUTED'}, 'scene2_f': {'result': 'NOT_EXECUTED'}, 'scene2_g': {'result': 'NOT_EXECUTED'}, 'scene3': {'result': 'NOT_EXECUTED'}, 'scene4': {'result': 'NOT_EXECUTED'}, 'scene6': {'result': 'NOT_EXECUTED'}, 'scene7': {'result': 'NOT_EXECUTED'}, 'scene8': {'result': 'NOT_EXECUTED'}, 'scene9': {'result': 'NOT_EXECUTED'}, 'scene_extensions/scene_hdr': {'result': 'NOT_EXECUTED'}, 'scene_extensions/scene_low_light': {'result': 'NOT_EXECUTED'}, 'scene_tele/scene6_tele': {'result': 'NOT_EXECUTED'}, 'scene_tele/scene7_tele': {'result': 'NOT_EXECUTED'}, 'scene_video': {'result': 'NOT_EXECUTED'}, 'scene5': {'result': 'NOT_EXECUTED'}, 'sensor_fusion': {'result': 'NOT_EXECUTED'}, 'feature_combination': {'result': 'NOT_EXECUTED'}, 'scene_flash': {'result': 'NOT_EXECUTED'}, 'scene_ip': {'result': 'NOT_EXECUTED'}}
Nous encourageons les partenaires à :
- Surveiller les alertes
PASS* - Rechercher la cause des tests
PASS* - Optimiser de manière proactive les tests et le code identifiés comme
PASS*
L'état PASS* vise à améliorer la robustesse et la fiabilité des tests Camera ITS, ce qui permet d'obtenir un produit stable et de haute qualité.