Kamera Görüntüsü Test Paketi (ITS), Android kamera tarafından üretilen görüntüler üzerinde testler çalıştırmak için kullanılan bir çerçevedir. ITS'deki her testin genel amacı, kamerayı belirli bir şekilde yapılandırmak, bir veya daha fazla çekim yapmak ve çekimlerde beklenen görüntü verilerinin bulunup bulunmadığını incelemektir. Testlerin çoğunda kameranın belirli bir hedef grafiğe yönlendirilmesi veya belirli bir yoğunlukta aydınlatılması gerekir.
ITS, cts/apps/CameraITS konumundaki CTS Doğrulayıcı test düzeneğinde yer alır.
Cihazlar, üçüncü taraf uygulamaları için kamera çerçevesi tarafından CTS'nin bir alt kümesi olarak tanıtılan desteklenen özelliklere karşılık gelen ITS testlerini geçmelidir.
Kurulum
ITS testlerini çalıştırmak için aşağıdakilerin ayarlanması gerekir:
- Test edilen cihaz (DUT)
- Bir ana makine (örneğin, Linux masaüstü veya dizüstü bilgisayar)
- Kameranın fotoğrafını çektiği sahne
Test edilen cihaz (DUT) kurulumu
DUT'u ayarlamak için aşağıdaki adımları uygulayın:
- DUT'u USB üzerinden bir ana makineye bağlayın.
- Ana makinenin ADB üzerinden test cihazına erişmesi için izin verin.
Cihaza CTS Verifier uygulamasını (
CtsVerifier.apk) yükleyin. Daha fazla bilgi için CTS Verifier'ı kullanma başlıklı makaleyi inceleyin.extract root/out/host/linux-x86/cts-verfier/android-cts-verifier.zipcd android-cts-verifieradb install -r -g CtsVerifier.apkDUT'ta varsayılan kamera uygulamasını başlatın ve test sırasında müdahaleyi önlemek için başlatma sırasında görünen tüm pencereleri temizleyin.
Ana makine kurulumu
ITS, ana makinenin USB üzerinden DUT'a bağlı olmasını, cihaz kontrolü ve iletişimi için ADB'yi kullanabilmesini ve gerekli yazılımın yüklü olmasını gerektirir.
Ana makinenizi ayarlamak için aşağıdaki yazılımların yüklü olduğundan emin olun.
Android SDK Platform Araçları
Android SDK Platform Tools'un yüklü olması ve ADB'nin, ana makinede çalışan kabuğun veya terminalin yürütülebilir yolunda olması gerekir. Android SDK Platform Araçları'nın herkese açık olarak yayınlanan sürümü için SDK Platform Araçları sürüm notlarına bakın.
Python
Python, ana makineye yüklenmiş olmalıdır. Uyumlu sürümlerin desteklenmesi için paketlenmiş bir Python dağıtımı kullanmanızı öneririz. Belirli bir sürüm için hangi Python ve paket sürümlerinin yükleneceği hakkında ayrıntılı bilgi edinmek için ilgili sürümün Kamera ITS sürüm notlarına bakın.
Mobly
Android 12 ve sonraki sürümlerde Mobly test çerçevesini yükleyin. Mobly, its_base_test sınıfında bir DUT ve grafik tablet ayarlamanıza olanak tanır. Mobly test çerçevesini yüklemek için şu komutu çalıştırın:
pip install moblyOrtam kurulumu
Test ortamını ayarlamak için şu komutu çalıştırın:
cd CameraITSsource build/envsetup.sh
Bu komut, Python yüklemesini kontrol eder, PYTHONPATH
ortam değişkenini ayarlar ve utils/*.py modüllerinde birim testlerini çalıştırır. Terminalde hata mesajı yoksa ortam, ITS testlerini çalıştırmaya hazırdır.
Sahne kurulumu
Sahneleri ayarlamak için otomasyon kolaylığı, güvenilirlik ve test verimliliği açısından Camera ITS-in-a-box kurulumunu kullanmanızı öneririz. ITS-in-a-box test düzenekleri, ITS için tüm aydınlatma, ortalama ve grafik değiştirme gereksinimlerini destekler. Ayrıca, kamera uzantıları testleri için ITS-in-a-box gereklidir.
Manuel test için şunlardan emin olun:
- DUT, tripoda yerleştirilmiş olmalıdır.
- DUT, her test için doğru sahneye yönlendirilir. (ITS test komut dosyası, yeni bir sahnede testlere başlamadan önce sahne kurulumunu değiştirme istemleri sağlar.)
- Test edilen cihaz, USB üzerinden ana makineye bağlı olmalıdır.
- Test çalıştırılırken test edilen cihaz hareket etmez.
- Sahne, sabit ve dalgalanmayan bir ışık kaynağıyla aydınlatılıyor. (Titreşime neden olduğundan floresan ışık kullanmayın.)
ITS test komut dosyası, kullanıcıdan yeni bir sahnede testlere başlamadan önce sahne kurulumunu değiştirmesini isteyen bir istem görüntüler.
Telefonun yönü, kameranın döndürme işlemi yapmadan fotoğraf çekecek şekilde ayarlanmalıdır. Bunu kontrol etmenin en kolay yolu, sahne 2'deki yüz sahnelerini kullanmaktır. Çoğu telefonda, arka kamera için telefon saat yönünün tersine, ön kamera için ise saat yönünde döndürülerek yatay yönde tutulur.
Yapılandırma dosyaları
Mobly test yatağını tanımlamak için Mobly çerçevesini kullanarak bir config.yml yapılandırma dosyası oluşturmanız gerekir. Aşağıda farklı kullanım alanlarına ilişkin örnekler verilmiştir.
Tablete dayalı sahneler için config.yml dosyası
Aşağıda, tablet tabanlı sahneler için bir config.yml dosyası örneği verilmiştir. Tablet tabanlı testlerde, test yatağı adında TABLET anahtar kelimesi bulunmalıdır. Başlatma sırasında Mobly test çalıştırıcısı, dosyadaki parametreleri başlatır ve bunları tek tek testlere iletir.
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
Test yatağını çağırmak için tools/run_all_tests.py komutunu çalıştırın. Kameraları veya sahneleri belirten komut satırı değerleri yoksa test, config.yml dosya değerleriyle çalıştırılır. Kameralar veya sahneler için komut satırı değerleri varsa bunlar, config.yml dosyasının TestParams bölümündeki değerleri geçersiz kılar.
Örneğin:
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
chart_scaling parametresi
Android 17 ve sonraki sürümlerde, chart_scaling parametresi TEST_BED_TABLET_SCENES için config.yml'ye dahil edilir. Bu parametre, daha geniş bir görüş alanına (FoV) sahip telefoto kamera cihazlarında grafik ölçeklendirme sorunlarını gidererek sahne kırpılmasını önler ve test sırasında cihazın doğru şekilde odaklanmasını sağlar.
chart_scaling için desteklenen değerler 1, 0.33, 0.5 veya 0.67'dir. Varsayılan değer None'tır. Bu yaklaşım, cihazların kendi özel gereksinimlerine göre uyarlanmış optimum ölçeklendirme faktörünü kullanmasına olanak tanır ve tüm cihazlarda işlevsel testlerin yapılmasını sağlar.
chart_scaling, None olarak ayarlanırsa testler, chart_scaling_logic kullanılarak ölçeklendirme faktörünü otomatik olarak belirler. Aksi takdirde, config.yml içinde belirtilen değer kullanılır veya ölçeklendirme kullanılamıyorsa hata işaretlenir.
Aşağıda, chart_scaling parametresini içeren bir örnek config.yml verilmiştir.
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
Kamera ITS tablosu ölçeklendirme özelliklerinin etkinleştirilmesi için test tarafında ayarlamalar yapılması gerekir. Kullandığınız bir test bunu desteklemiyorsa hata bildiriminde bulunun.
Aşağıda, chart_scaling parametresinin kullanıldığı örnek bir test tarafı değişikliği verilmiştir.
# load chart for scene
its_session_utils.load_scene(
cam, props, self.scene, self.tablet, self.chart_distance,
chart_scaling=self.chart_scaling)
sensor_fusion scene config.yml dosyası
Aşağıda, config_yml testleri için bir sensor_fusion dosyası örneği verilmiştir.
sensor_fusion testi için SENSOR_FUSION anahtar kelimesi test yatağı adında olmalıdır. Android 13 ve sonraki sürümlerde, önizleme ve video sabitleme testleri nedeniyle yalnızca sensör füzyonu için Arduino denetleyicisi desteklenir.
Android 12, Arduino ve Canakit kontrol cihazlarını destekler.
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
sensor_fusion testlerini sensör füzyon kutusu ile çalıştırmak için şunu çalıştırın:
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
Birden çok test yatağı config.yml dosyası
Aşağıda, birden fazla test yatağı (bir tablet test yatağı ve bir sensor_fusion test yatağı) içeren bir config.yml dosyası örneği verilmiştir. Doğru test yatağı, test edilen sahnelerle belirlenir.
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
config.yml dosyasını manuel olarak test etme
Aşağıda, manuel test için bir config.yml dosyası örneği verilmiştir. Android 14 ve sonraki sürümlerde, scene_extensions testleri hariç tüm testler için manuel test desteklenir. Manuel test için test yatağı adında MANUAL anahtar kelimesi bulunmalıdır.
Ayrıca, AndroidDevice bölümü tabletteki seri veya etiket bölümünü içeremez.
TestBeds:
- Name: TEST_BED_MANUAL
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
TestParams:
debug_mode: "False"
camera: 0
scene: 1
Gen2 rig testing config.yml dosyası
Aşağıda, bir config.yml test yatağına ait TEST_BED_GEN2 dosyası örneği verilmiştir.
Bu test yatağı, scene_ip testleri için kullanılır. Bu testlerde, Gen2 test düzeneği kullanılır.
Aşağıdaki örnekte, 2. nesil ekipman kullanılabildiğinde ve scene_ip testleri atlanmadığında test yatağı parametreleri gösterilmektedir.
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
Aşağıdaki örnekte, 2. nesil test düzeneği kullanılamadığında ve scene_ip testleri atlandığında test yatağı parametreleri gösterilmektedir.
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
scene_ip testini çalıştırmak için aşağıdaki komutlardan birini kullanın:
python tests/scene_ip/test_default_jca_ip.py -c config.ymlpython tools/run_all_tests.py camera=<camera-id> scenes=scene_ip
ITS testlerini çalıştırma
Bu bölümde, ITS testlerinin nasıl çalıştırılacağı açıklanmaktadır.
Testleri çağırma
Cihaz, ana makine (ortam dahil) ve fiziksel sahne kurulduktan sonra aşağıdaki işlemi kullanarak ITS testlerini çalıştırın.
CTS Verifier uygulamasını açın. Testler menüsünde Camera ITS Test'i (Kamera ITS Testi) seçin. Android 17 ve sonraki sürümlerde
sensor_fusionvefeature_combinationtestleri, Camera ITS Sensor Fusion Rig Test adlı ek bir etkinlikte yer alır.ITS testlerini ana makinede
CameraITS/dizininden çalıştırın. Örneğin, ön ve arka kameraları olan bir cihaz için aşağıdaki komutu çalıştırın:python tools/run_all_tests.pyKomut dosyası,
config.ymldosyasına göre kameralar ve test sahneleri arasında geçiş yapar. Hata ayıklama kurulumları için en hızlı geri dönüşü elde etmek amacıylascene2sahnelerinden birini tek bir testle çalıştırmanızı öneririz.Manuel test için, her sahnede ITS testleri grubunu çalıştırmaya başlamadan önce komut dosyası mevcut sahnenin fotoğrafını çeker, JPEG olarak kaydeder, JPEG'in yolunu konsola yazdırır ve kullanıcıdan görüntünün iyi olup olmadığını onaylamasını ister. Bu yakalama ve onaylama akışı, kullanıcı görüntünün iyi olduğunu onaylayana kadar döngüde kalır. Bu akıştaki mesajlar aşağıda verilmiştir.
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)Komut dosyasının her çalıştırılmasında, her ITS testi için
PASS,FAIL,FAIL*veyaSKIPgösteren bir günlük yazdırılır.FAIL*, testin başarısız olduğunu gösterir ancak test henüz zorunlu olmadığından CtsVerifier'aPASSolarak bildirilir.SKIP, cihaz test edilen temel özelliği duyurmadığı için testin başarılı olduğunu gösterir. Örneğin, bir cihaz DNG'yi desteklediği kamera arayüzleri üzerinden reklam yayınlamıyorsa DNG dosyası yakalamayla ilgili testler atlanır vePASSolarak sayılır.Testlerin test koşullarını karşıladığını onaylamak için yeşil onay işareti düğmesine dokunun. CTS Verifier test menüsündeki Camera ITS Test girişi yeşil renge döner ve telefonun Camera ITS'yi geçtiğini gösterir.
Paralel DUT testi
Android 14 veya sonraki sürümlerin yüklü olduğu cihazlarda eşzamanlı DUT testi desteklenir. Bu sayede, genel test sürecini hızlandırmak için birden fazla test düzeneğiyle birlikte DUT'ları paralel olarak test edebilirsiniz. Örneğin, paralel test sayesinde aynı anda bir ekipmanda kamera 0'ı, başka bir ekipmanda ise kamera 1'i test edebilirsiniz. Android 17 ve sonraki sürümlerde, Camera ITS testleri iki etkinliğe ayrıldığından bir DUT'ta sensor_fusion ve feature_combination testlerini, başka bir DUT'ta ise diğer testleri paralel olarak çalıştırabilirsiniz. Paralel test oturumlarıyla ilgili tüm testler, referans DUT'taki CTS Verifier oturumunda toplanır.
Manuel aydınlatma kontrolü paralel testle desteklenmediğinden Arduino aydınlatma kontrolü ile paralel test yapmanız gerekir. Aynı Arduino denetleyicisindeki farklı bir kanalın her bir düzeneğin aydınlatmasını kontrol ettiğinden emin olun.
Aşağıda, paralel olarak çalıştırılacak üç test yatağını tanımlayan örnek bir config.yml dosyası verilmiştir.
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"
Test yataklarını paralel olarak çalıştırmak için aşağıdaki komutu kullanın:
for i in 0 1 2; do python3 tools/run_all_tests.py testbed_index=$i num_testbeds=3 & done; waitToplu test sonuçlarını gönderme
Android 17 ve sonraki sürümlerde, derleme onayı için toplu Kamera ITS test sonuçları gönderebilirsiniz. CTS Verifier, birden fazla cihazda aynı anda birden fazla sahneyi test etmenize ve birden fazla CTS Verifier raporundaki (farklı test çalıştırmalarından veya cihazlardan) test sonuçlarını tek bir birleştirilmiş gönderimde toplamanıza olanak tanır.
Gönderme süreci
Derleme onayı için toplu Kamera ITS sonuçlarını göndermek üzere aşağıdaki adımları uygulayın:
- Cihazları hazırlayın: Test edilecek iki veya üç cihaz (DUT) toplayın. Bu cihazların hepsinin derleme parmak izi aynı olmalıdır.
- CTS Verifier'ı yükleyin: Sağlanan derleme gezgininden edinilebilen en yeni CTS Verifier APK'sını yükleyin.
Testleri paralel olarak yürütme:
- DUT'ları ayrı düzeneklere monte edin.
- Her cihazda eşzamanlı olarak farklı Kamera ITS sahnelerini çalıştırın.
- Rapor toplama: Her çalıştırmadan sonra CTS Verifier raporunu alın. Bu kapsamda, sahnelerin başarısız olduğu raporlar da yer alır. Sonraki çalıştırmalarda yalnızca başarısız olan sahneleri yeniden çalıştırın.
Rapor gönderme: Tüm cihazlardan toplanan birden fazla CTS Verifier raporunu yükleyin.
Sonuçları inceleyin: Raporlar yüklendikten sonra, toplu sonuçları inceleyin:
- Test Analizi bölümünde, yürütülen tüm sahnelerin tam listesi gösterilir.
Yürütülmeyen veya başarısız olan sahneler Başarısız bölümünde listelenir.
Şekil 1. Çekilmeyen veya başarısız olan sahnelerin dokümanları.
Geçiş sahneleri, Toplu Geçiş bölümünde listelenir.
Şekil 2. Toplu geçiş olarak kategorize edilen sahneler
Derleme onay durumu
Gerekli tüm sahneler, toplu raporlarda başarıyla tamamlandıktan sonra derleme onayı verilir.
DNG gürültü modeli
RAW veya DNG yakalama özelliğini tanıtan cihazlar, her bir RAW çekimin yakalama sonucu meta verilerinde gürültü modeli sağlamalıdır. Bu gürültü modeli, desteklediğini iddia eden cihazdaki her kamera (ör. ön ve arka kameralar) için kamera HAL'ına yerleştirilmelidir.
Gürültü modeli uygulama
Gürültü modeli uygulamak için aşağıdaki adımları uygulayarak gürültü modeli oluşturun ve modeli kamera HAL'ına yerleştirin.
Her kamera için bir gürültü modeli oluşturmak üzere
toolsdizinindekidng_noise_model.pykomut dosyasını çalıştırın. Bu işlem, bir C kodu snippet'i oluşturur. Kamerayı ayarlama ve ortamı yakalama hakkında daha fazla bilgi içinDngNoiseModel.pdfdizinindekitoolsbelgesine bakın.Cihaz için gürültü modelini uygulamak üzere C kodu snippet'ini kesip kamera HAL'ına yapıştırın.
Gürültü modeli doğrulama
tests/scene1_1/test_dng_noise_model.py
Otomatik ITS testi, kamera verilerinde sağlanan çekim pozlaması ve kazanç için gürültü değerlerinin doğru olduğunu doğrulayarak gürültü modelini doğrular.
Testleri az farkla geçme (PASS* test durumu)
Android 17 ve sonraki sürümlerde sınırlı geçiş (PASS*), bir testin geçtiğini ancak performans metriklerinin önceden tanımlanmış geçiş eşiğine çok yakın olduğunu gösterir. Test teknik olarak geçme ölçütlerini karşılıyor olsa da başarısızlık sınırına yakınlık, daha ayrıntılı bir inceleme yapılması gerektiğini gösteriyor.
Marjinal geçişin avantajları
PASS* durumu çeşitli avantajlar sunar:
Erken uyarı sistemi: Başarısız olmak üzere olan testleri belirleyerek ekiplerin sorunları tamamen başarısızlığa yol açmadan ele almasına olanak tanır.
Proaktif optimizasyon: Ekipleri, kabul edilebilir aralığın alt ucunda performans gösteren testleri ve kodları optimize etmeye teşvik ederek genel kararlılığı artırır.
Kaliteyi artırma: Küçük kod değişiklikleriyle gelecekte gerilemeye yatkın olabilecek alanları işaretleyerek daha yüksek bir kalite standardı korunmasına yardımcı olur.
Hata ayıklama süresini azaltma:
PASS*testleri erken yakalayarak gelecekteki tam hatalarda hata ayıklamak için gereken zaman ve çaba önemli ölçüde azaltılabilir.
PASS* ayrıntıları
PASS* durumu şunları içerir:
Eşik tanımlama: Kamera ITS'deki her ilgili test için belirli geçme eşikleri tanımlanır.
Otomatik algılama: Test otomasyon sistemi, tanımlanan eşiklere göre testleri
PASS*olarak algılar ve kategorilere ayırır.Uyarı mekanizması: Ekipler,
PASS*olarak işaretlenen tüm testler için otomatik uyarılar alır. Bu uyarılar, ekipleri belirli testi ve metriklerini incelemeye yönlendirir.Raporlama:
PASS*raporundaItsTestSummarytestlerinde olduğu gibi,not_yet_mandatedtestlerindeFail*ile benzer şekilde, test raporlarında ve kontrol panellerinde daha iyi görünürlük için sınırlı geçiş durumları net bir şekilde belirtilir. Daha fazla kafa karışıklığına yol açmamak için test, belirlenen eşiklerin içinde kalmaya devam ettiğinden yeşil durumunu korur.PASS*durumu yalnızca bir test sınıfı için geçerlidir, sahnenin tamamı için geçerli değildir. Örneğin, test_jitter ve test_metadataPASS*olsa bile Scene_0PASSolarak kabul edilebilir.İzleme: Performans verileri, bir cihazda az farkla geçen testlerde toplanır. Bu sayede, testler
PASSdurumuna geçerse OEM'lerin gelecekte yapacağı kamera iyileştirmeleri izlenebilir.
Aşağıda, PASS* ile ilgili test sonuçlarının bir örneği verilmiştir:
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'}}
İş ortaklarının şunları yapması önerilir:
PASS*uyarılarını izlemePASS*testlerinin temel nedenini araştırmaPASS*olarak tanımlanan testleri ve kodları proaktif bir şekilde optimize edin.
PASS* durumu, Kamera ITS testinin sağlamlığını ve güvenilirliğini artırmayı amaçlar. Bu sayede kararlı ve yüksek kaliteli bir ürün elde edilir.