Camera Image Test Suite (ITS) adalah framework untuk menjalankan pengujian pada gambar yang dihasilkan oleh kamera Android. Tujuan umum setiap pengujian di ITS adalah mengonfigurasi kamera dengan cara tertentu, mengambil satu atau beberapa foto, dan memeriksa foto untuk melihat apakah foto tersebut berisi data gambar yang diharapkan. Banyak pengujian memerlukan kamera untuk diarahkan ke target bagan tertentu atau diterangi dengan intensitas tertentu.
ITS terletak di test harness CTS Verifier di
cts/apps/CameraITS.
Perangkat harus lulus tes ITS yang sesuai dengan fitur yang didukung yang diiklankan oleh framework kamera untuk aplikasi pihak ketiga sebagai subset CTS.
Penyiapan
Untuk menjalankan pengujian ITS, hal berikut harus disiapkan:
- Perangkat yang sedang diuji (DUT)
- Mesin host (misalnya, desktop atau laptop Linux)
- Adegan yang difoto kamera
Penyiapan perangkat yang diuji (DUT)
Untuk menyiapkan DUT, ikuti langkah-langkah berikut:
- Hubungkan DUT ke mesin host melalui USB.
- Memberikan izin bagi host untuk mengakses DUT melalui ADB.
Instal aplikasi CTS Verifier (
CtsVerifier.apk) ke perangkat. Untuk mengetahui informasi selengkapnya, lihat Menggunakan CTS Verifier.extract root/out/host/linux-x86/cts-verfier/android-cts-verifier.zipcd android-cts-verifieradb install -r -g CtsVerifier.apkDi DUT, luncurkan aplikasi kamera default dan tutup semua jendela yang muncul saat peluncuran untuk menghindari gangguan selama pengujian.
Penyiapan host
ITS mengharuskan mesin host terhubung ke DUT melalui USB, dapat menggunakan ADB untuk kontrol dan komunikasi perangkat, serta telah menginstal software yang diperlukan.
Untuk menyiapkan mesin host, pastikan software berikut telah diinstal.
Android SDK Platform Tools
Fitur Platform Android SDK harus diinstal dan ADB harus berada di jalur yang dapat dieksekusi dari shell atau terminal yang berjalan di komputer host. Untuk versi alat Platform Android SDK yang dirilis secara publik, lihat catatan rilis SDK Platform Tools.
Python
Python harus diinstal di mesin host. Sebaiknya gunakan distribusi Python yang dibundel untuk memastikan dukungan bagi versi yang kompatibel. Untuk mengetahui detail tentang versi Python dan paket yang akan diinstal untuk rilis tertentu, lihat catatan rilis ITS Kamera untuk rilis yang sesuai.
Mobly
Untuk Android 12 dan yang lebih tinggi, instal framework pengujian Mobly. Mobly memungkinkan Anda menyiapkan DUT dan tablet diagram di class its_base_test. Untuk menginstal framework pengujian Mobly, jalankan:
pip install moblyPenyiapan lingkungan
Untuk menyiapkan lingkungan pengujian, jalankan:
cd CameraITSsource build/envsetup.sh
Perintah ini memeriksa penginstalan Python, menyiapkan variabel lingkungan PYTHONPATH, dan menjalankan pengujian unit pada modul utils/*.py. Jika tidak ada
error yang ditampilkan di terminal, lingkungan siap untuk menjalankan pengujian ITS.
Penyiapan adegan
Untuk menyiapkan adegan, sebaiknya gunakan penyiapan Camera ITS-in-a-box untuk memudahkan otomatisasi, keandalan, dan efisiensi dalam pengujian. ITS-in-a-box mendukung semua persyaratan pencahayaan, pemusatan, dan perubahan diagram untuk ITS. Selain itu, ITS-in-a-box diperlukan untuk pengujian ekstensi kamera.
Untuk pengujian manual, pastikan hal berikut:
- DUT dipasang pada tripod
- DUT diarahkan ke adegan yang benar untuk setiap pengujian. (Skrip pengujian ITS memberikan perintah untuk mengubah penyiapan adegan sebelum memulai pengujian di adegan baru.)
- DUT terhubung ke mesin host melalui USB.
- DUT tidak bergerak selama pengujian berjalan.
- Adegan diterangi dengan sumber cahaya yang stabil dan tidak berfluktuasi. (Jangan menggunakan lampu neon karena akan menyebabkan kedipan.)
Skrip pengujian ITS menampilkan perintah yang meminta pengguna mengubah penyiapan adegan sebelum memulai pengujian di adegan baru.
Orientasi ponsel harus disetel agar kamera mengambil gambar tanpa rotasi. Cara termudah untuk memeriksanya adalah dengan adegan wajah di scene2. Sebagian besar ponsel memiliki orientasi lanskap dengan ponsel diputar berlawanan arah jarum jam untuk kamera belakang dan diputar searah jarum jam untuk kamera depan.
File konfigurasi
Dengan menggunakan framework Mobly, Anda harus membuat file konfigurasi config.yml untuk
menentukan testbed Mobly. Berikut adalah contoh untuk berbagai kasus penggunaan.
File config.yml adegan berbasis tablet
Berikut adalah contoh file config.yml untuk adegan berbasis tablet. Untuk pengujian berbasis tablet, kata kunci TABLET harus ada di nama testbed. Selama
inisialisasi, runner pengujian Mobly melakukan inisialisasi parameter dalam file
dan meneruskannya ke pengujian individual.
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
Untuk memanggil test bed, jalankan tools/run_all_tests.py. Jika tidak ada nilai command line yang menentukan kamera atau adegan, pengujian akan dijalankan dengan nilai file config.yml. Jika ada nilai command line untuk kamera atau adegan, nilai ini akan menggantikan nilai di bagian TestParams file config.yml.
Contoh:
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
Parameter chart_scaling
Di Android 17 dan yang lebih tinggi, parameter chart_scaling
disertakan dalam config.yml untuk TEST_BED_TABLET_SCENES. Parameter ini mengatasi masalah penskalaan diagram untuk perangkat kamera tele dengan ruang pandang (FoV) yang lebih luas, mencegah pemangkasan adegan, dan menerapkan fokus perangkat yang tepat selama pengujian.
Nilai yang didukung untuk chart_scaling adalah 1, 0.33, 0.5, atau 0.67, dengan
None sebagai default. Pendekatan ini memungkinkan perangkat menggunakan faktor penskalaan optimal yang disesuaikan dengan persyaratan spesifiknya, sehingga mempertahankan pengujian fungsional di semua perangkat.
Jika chart_scaling disetel ke None, pengujian akan otomatis menentukan
faktor penskalaan menggunakan chart_scaling_logic. Jika tidak, nilai yang ditentukan dalam
config.yml akan digunakan, atau error akan ditandai jika penskalaan tidak tersedia.
Berikut adalah contoh config.yml dengan parameter 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
Penyesuaian sisi pengujian diperlukan untuk mengaktifkan kemampuan penskalaan diagram ITS Kamera. Jika pengujian yang Anda gunakan tidak mendukung hal ini, laporkan bug.
Berikut adalah contoh perubahan sisi pengujian dengan parameter 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)
File sensor_fusion scene config.yml
Berikut adalah contoh file config_yml untuk pengujian sensor_fusion.
Untuk pengujian sensor_fusion, kata kunci SENSOR_FUSION harus ada di nama testbed. Android 13 dan yang lebih tinggi hanya mendukung pengontrol Arduino untuk penggabungan sensor karena pengujian pratinjau dan stabilisasi video.
Android 12 mendukung pengontrol Arduino dan 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
Untuk menjalankan pengujian sensor_fusion dengan
kotak penggabungan sensor, jalankan:
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
File config.yml beberapa testbed
Berikut adalah contoh file config.yml dengan beberapa platform pengujian, platform pengujian tablet dan platform pengujian sensor_fusion. Testbed yang benar ditentukan
oleh adegan yang diuji.
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
Pengujian manual file config.yml
Berikut adalah contoh file config.yml untuk pengujian manual. Android 14
dan yang lebih tinggi mendukung pengujian manual untuk semua pengujian kecuali pengujian
scene_extensions. Untuk pengujian manual, kata kunci MANUAL harus ada di nama testbed.
Selain itu, bagian AndroidDevice tidak dapat menyertakan bagian serial atau label untuk tablet.
TestBeds:
- Name: TEST_BED_MANUAL
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
debug_mode: "False"
camera: 0
scene: 1
File config.yml pengujian platform Gen2
Berikut adalah contoh file config.yml dari testbed TEST_BED_GEN2.
Testbed ini digunakan untuk pengujian scene_ip, yang menggunakan
rig Gen2](/docs/compatibility/cts/camera-its-box-gen2).
Contoh berikut menunjukkan parameter testbed saat rig Gen2 tersedia dan pengujian scene_ip tidak dilewati.
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
Contoh berikut menunjukkan parameter testbed saat rig Gen2 tidak tersedia dan pengujian scene_ip dilewati.
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
Untuk menjalankan pengujian scene_ip, gunakan salah satu perintah berikut:
python tests/scene_ip/test_default_jca_ip.py -c config.ymlpython tools/run_all_tests.py camera=<camera-id> scenes=scene_ip
Menjalankan pengujian ITS
Bagian ini menjelaskan cara menjalankan pengujian ITS.
Memanggil pengujian
Setelah perangkat, mesin host (termasuk lingkungan), dan adegan fisik disiapkan, jalankan pengujian ITS menggunakan proses berikut.
Buka aplikasi CTS Verifier. Di menu pengujian, pilih Camera ITS Test. Untuk Android 17 dan yang lebih tinggi, pengujian
sensor_fusiondanfeature_combinationberada dalam aktivitas tambahan bernama Camera ITS Sensor Fusion Rig Test.Dari mesin host, jalankan pengujian ITS dari direktori
CameraITS/. Misalnya, untuk perangkat dengan kamera depan dan belakang, jalankan perintah berikut:python tools/run_all_tests.pySkrip melakukan iterasi melalui kamera dan adegan pengujian berdasarkan file
config.yml. Untuk konfigurasi proses debug, sebaiknya jalankan salah satu adeganscene2dengan satu pengujian untuk penyelesaian tercepat.Untuk pengujian manual, sebelum mulai menjalankan serangkaian pengujian ITS di setiap adegan, skrip mengambil gambar adegan saat ini, menyimpannya sebagai JPEG, mencetak jalur ke JPEG ke konsol, dan meminta pengguna untuk mengonfirmasi apakah gambar tersebut sudah sesuai. Alur ambil dan konfirmasi ini berulang hingga pengguna mengonfirmasi bahwa gambar tersebut sudah sesuai. Berikut adalah pesan dalam alur ini.
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)Setiap kali dijalankan, skrip akan mencetak log yang menampilkan
PASS,FAIL,FAIL*, atauSKIPuntuk setiap pengujian ITS.FAIL*menunjukkan bahwa pengujian gagal, tetapi karena pengujian belum diwajibkan, pengujian akan dilaporkan sebagaiPASSke CtsVerifier.SKIPmenunjukkan bahwa pengujian lulus karena perangkat tidak mengiklankan kemampuan dasar yang sedang diuji. Misalnya, jika perangkat tidak mengiklankan melalui antarmuka kamera bahwa perangkat mendukung DNG, pengujian terkait pengambilan file DNG akan dilewati dan dihitung sebagaiPASS.Untuk mengonfirmasi bahwa pengujian telah memenuhi persyaratan pengujian, ketuk tombol tanda centang hijau. Entri Camera ITS Test di menu pengujian CTS Verifier akan berwarna hijau dan menandakan bahwa ponsel telah lulus Camera ITS.
Pengujian DUT paralel
Perangkat yang menjalankan Android 14 atau yang lebih tinggi mendukung pengujian DUT paralel. Hal ini memungkinkan Anda menguji DUT secara paralel dengan beberapa rig untuk mempercepat pengujian secara keseluruhan. Misalnya, pengujian paralel memungkinkan Anda menguji kamera 0 di satu
rig dan kamera 1 di rig lain secara bersamaan. Untuk Android
17 dan yang lebih tinggi, karena pengujian ITS Kamera dibagi menjadi
dua aktivitas, Anda dapat menjalankan pengujian sensor_fusion dan feature_combination
di satu DUT, dan pengujian lainnya di DUT lain secara paralel. Semua pengujian untuk sesi pengujian paralel digabungkan pada sesi CTS Verifier di DUT referensi.
Anda harus menjalankan pengujian paralel dengan kontrol pencahayaan Arduino, karena kontrol pencahayaan manual tidak didukung dengan pengujian paralel. Pastikan saluran yang berbeda pada pengontrol Arduino yang sama mengontrol pencahayaan untuk setiap rig.
Berikut adalah contoh file config.yml yang menentukan tiga testbed untuk dijalankan secara paralel.
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"
Untuk menjalankan testbed secara paralel, gunakan perintah berikut:
for i in 0 1 2; do python3 tools/run_all_tests.py testbed_index=$i num_testbeds=3 & done; waitMengirimkan hasil pengujian gabungan
Di Android 17 dan yang lebih tinggi, Anda dapat mengirimkan hasil pengujian ITS Kamera gabungan untuk persetujuan build. CTS Verifier memungkinkan Anda menguji beberapa adegan secara bersamaan di beberapa perangkat, dan menggabungkan hasil pengujian dari beberapa laporan CTS Verifier (dari perangkat atau proses pengujian yang berbeda) ke dalam satu pengiriman terpadu.
Proses pengiriman
Untuk mengirimkan hasil ITS Kamera gabungan untuk persetujuan build, ikuti langkah-langkah berikut:
- Siapkan perangkat: Kumpulkan dua hingga tiga perangkat yang diuji (DUT) yang semuanya memiliki sidik jari build yang sama persis.
- Instal CTS Verifier: Instal APK CTS Verifier terbaru, yang dapat diperoleh dari penjelajah build yang disediakan.
Jalankan pengujian secara paralel:
- Pasang DUT di rig terpisah.
- Jalankan adegan ITS Kamera yang berbeda di setiap perangkat secara bersamaan.
- Pengumpulan laporan: Tarik laporan CTS Verifier setelah setiap kali dijalankan. Hal ini mencakup laporan yang adegannya gagal. Hanya jalankan ulang adegan yang gagal pada proses berikutnya.
Kirim laporan: Upload beberapa laporan CTS Verifier yang dikumpulkan dari semua perangkat.
Tinjau hasil: Setelah laporan diupload, tinjau hasil gabungannya:
- Bagian Analisis Pengujian menampilkan daftar lengkap semua adegan yang dijalankan.
Adegan yang tidak dieksekusi atau gagal tercantum di bagian Gagal.
Gambar 1. Dokumentasi adegan yang tidak dieksekusi atau gagal.
Adegan yang dilalui tercantum di bagian Aggregated Pass.
Gambar 2. Adegan yang dikategorikan sebagai Lulus Gabungan
Status persetujuan build
Persetujuan build diberikan setelah semua adegan yang diperlukan berhasil diselesaikan di seluruh laporan gabungan.
Model derau DNG
Perangkat yang mengiklankan kemampuan untuk merekam RAW atau DNG harus menyediakan model derau dalam metadata hasil pengambilan gambar setiap foto mentah. Model derau ini harus disematkan ke HAL kamera untuk setiap kamera (misalnya, kamera depan dan belakang) di perangkat yang menyatakan dukungan.
Implementasi model derau
Untuk menerapkan model derau, ikuti langkah-langkah berikut untuk membuat model derau dan menyematkan model ke dalam HAL kamera.
Untuk membuat model derau untuk setiap kamera, jalankan skrip
dng_noise_model.pydi direktoritools. Tindakan ini akan menghasilkan cuplikan kode C. Untuk informasi selengkapnya tentang cara menyiapkan kamera dan lingkungan pengambilan gambar, lihat dokumenDngNoiseModel.pdfdi direktoritools.Untuk menerapkan model derau untuk perangkat, potong dan tempel cuplikan kode C ke dalam HAL kamera.
Validasi model derau
Pengujian ITS otomatis tests/scene1_1/test_dng_noise_model.py memvalidasi model derau dengan memverifikasi bahwa nilai derau untuk eksposur dan gain bidikan yang diberikan dalam data kamera sudah benar.
Pengujian yang lulus dengan margin (status pengujian PASS*)
Di Android 17 dan yang lebih tinggi, lulus bersyarat (PASS*)
menunjukkan bahwa pengujian telah lulus, tetapi metrik performanya sangat mendekati
nilai minimum lulus yang telah ditentukan. Meskipun secara teknis pengujian memenuhi kriteria
lulus, kedekatan dengan batas kegagalan menunjukkan perlunya pemeriksaan
lebih lanjut.
Manfaat lulus dengan batas bawah
Status PASS* menawarkan beberapa manfaat:
Sistem peringatan dini: Mengidentifikasi pengujian yang hampir gagal, sehingga tim dapat mengatasi masalah sebelum menyebabkan kegagalan total.
Pengoptimalan proaktif: Mendorong tim untuk mengoptimalkan pengujian dan kode yang berperforma di ujung bawah rentang yang dapat diterima, sehingga meningkatkan stabilitas secara keseluruhan.
Kualitas yang ditingkatkan: Membantu mempertahankan standar kualitas yang lebih tinggi dengan menandai area yang mungkin rentan terhadap regresi di masa mendatang dengan perubahan kode kecil.
Mengurangi waktu proses debug: Dengan menangkap
PASS*pengujian lebih awal, waktu dan upaya yang diperlukan untuk men-debug kegagalan penuh di masa mendatang dapat dikurangi secara signifikan.
Detail PASS*
Status PASS* mencakup hal berikut:
Menentukan nilai minimum: Nilai minimum kelulusan marjinal tertentu ditentukan untuk setiap pengujian yang relevan di Camera ITS.
Deteksi otomatis: Sistem otomatisasi pengujian mendeteksi dan mengategorikan pengujian sebagai
PASS*berdasarkan nilai minimum yang ditentukan.Mekanisme pemberitahuan: Tim menerima pemberitahuan otomatis untuk setiap pengujian yang ditandai sebagai
PASS*, yang mengarahkan mereka untuk menyelidiki pengujian tertentu dan metriknya.Pelaporan: Status lulus marginal ditunjukkan dengan jelas dalam laporan pengujian dan dasbor untuk visibilitas yang lebih baik sebagai
PASS*dalam laporanItsTestSummary, mirip denganFail*untuk pengujiannot_yet_mandated. Pengujian mempertahankan status hijau, karena terus lulus dalam batas yang ditetapkan, untuk menghindari kebingungan lebih lanjut. StatusPASS*hanya berlaku untuk class pengujian, bukan seluruh adegan. Misalnya, Scene_0 dapat dianggapPASSmeskipun test_jitter dan test_metadata adalahPASS*.Pemantauan: Data performa dikumpulkan pada pengujian yang lulus secara marginal di perangkat. Hal ini memungkinkan pemantauan peningkatan kualitas kamera pada masa mendatang yang dilakukan oleh OEM jika pengujian ini bertransisi ke status
PASS.
Berikut adalah contoh hasil pengujian dengan 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'}}
Partner dianjurkan untuk:
- Memantau pemberitahuan
PASS* - Menyelidiki penyebab utama pengujian
PASS* - Mengoptimalkan pengujian dan kode yang diidentifikasi sebagai
PASS*
Status PASS* bertujuan untuk meningkatkan keandalan dan keandalan pengujian ITS Kamera, sehingga menghasilkan produk yang stabil dan berkualitas tinggi.