相機 ITS 總覽

相機影像測試套件 (ITS) 是一種架構,可對 Android 相機產生的影像執行測試。ITS 中每項測試的一般目標,都是以特定方式設定攝影機、拍攝一或多張相片,然後檢查相片是否含有預期的圖像資料。許多測試都要求攝影機對準特定目標圖表,或以特定強度照明。

ITS 位於 cts/apps/CameraITS 的 CTS 驗證器測試架構中。裝置必須通過 ITS 測試,才能支援相機架構為第三方應用程式宣傳的功能,這類測試是 CTS 的子集。

設定

如要執行 ITS 測試,必須完成下列設定:

  • 測試裝置 (DUT)
  • 主體機器 (例如 Linux 桌機或筆電)
  • 攝影機拍攝的場景

設定受測裝置 (DUT)

如要設定 DUT,請按照下列步驟操作:

  1. 透過 USB 將 DUT 連接至主體機器。
  2. 在 DUT 上設定開發人員選項:
    • 開啟「不鎖定螢幕」和「USB 偵錯」
    • 關閉「自動系統更新」和「透過 USB 驗證應用程式」
  3. 授予權限,允許主機透過 ADB 存取 DUT。
  4. 在裝置上安裝 CTS Verifier 應用程式 (CtsVerifier.apk)。詳情請參閱「使用 CTS 驗證器」。

    extract root/out/host/linux-x86/cts-verfier/android-cts-verifier.zip
    cd android-cts-verifier
    adb install -r -g CtsVerifier.apk
  5. 在 DUT 上啟動預設的相機應用程式,並清除啟動時顯示的所有視窗,以免干擾測試。

主辦人設定

ITS 需要主體機器透過 USB 連接至 DUT,能夠使用 ADB 控制及與裝置通訊,並安裝必要軟體。

如要設定主體機器,請確認已安裝下列軟體。

Android SDK 平台工具

您必須安裝 Android SDK Platform Tools,且 ADB 必須位於主機上執行的殼層或終端機可執行路徑中。如需 Android SDK Platform Tools 的公開發布版本,請參閱「SDK Platform Tools 版本資訊」。

Python

主體機器必須安裝 Python。建議使用隨附的 Python 發行版本,確保支援相容版本。如要瞭解特定版本應安裝的 Python 和套件版本,請參閱對應版本的 Camera ITS 版本資訊。

Mobly

如果是 Android 12 以上版本,請安裝 Mobly 測試架構。Mobly 可讓您在 its_base_test 類別中設定 DUT 和圖表平板電腦。如要安裝 Mobly 測試架構,請執行下列指令:

pip install mobly

環境設定

如要設定測試環境,請執行下列指令:

cd CameraITS
source build/envsetup.sh

這項指令會檢查 Python 安裝作業、設定 PYTHONPATH 環境變數,並對 utils/*.py 模組執行單元測試。如果終端機未列印任何錯誤,表示環境已準備就緒,可以執行 ITS 測試。

場景設定

如要設定場景,建議使用攝影機 ITS-in-a-box 設定,方便自動化、提升測試的可靠性和效率。ITS-in-a-box 測試裝置支援 ITS 的所有照明、置中和圖表變更需求。此外,測試相機擴充功能時,也需要 ITS-in-a-box。

如要手動測試,請確認下列事項:

  • DUT 位於三腳架上
  • DUT 會在每次測試中對準正確的場景。ITS 測試腳本會在新的場景中開始測試前,提供提示來變更場景設定)。
  • DUT 透過 USB 連接至主體機器。
  • 測試執行期間,DUT 不會移動。
  • 場景的光源穩定,不會閃爍。(請勿使用螢光燈,因為螢光燈會造成閃爍。)

ITS 測試腳本會顯示提示,要求使用者先變更場景設定,再開始測試新場景。

手機方向必須設定為相機拍攝的圖片不會旋轉。如要檢查這點,最簡單的方法是使用 scene2 中的臉部場景。大多數手機會以橫向模式顯示,後置鏡頭會逆時針旋轉,前置鏡頭則會順時針旋轉。

設定檔

使用 Mobly 架構時,您必須建立 config.yml 設定檔,定義 Mobly 測試平台。以下是不同用途的範例。

平板電腦型場景 config.yml 檔案

以下是平板電腦場景的 config.yml 檔案範例。如要進行平板電腦測試,測試平台名稱必須包含 TABLET 關鍵字。初始化期間,Mobly 測試執行器會初始化檔案中的參數,並將這些參數傳遞至個別測試。

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

如要叫用測試平台,請執行 tools/run_all_tests.py。如果沒有指定攝影機或場景的命令列值,系統會使用 config.yml 檔案值執行測試。如果攝影機或場景有指令列值,這些值會覆寫 config.yml 檔案 TestParams 區段中的值。例如:

python tools/run_all_tests.py
python tools/run_all_tests.py camera=1
python tools/run_all_tests.py scenes=2,1,0
python tools/run_all_tests.py camera=0 scenes=scene_tele
python tools/run_all_tests.py camera=0.4 scenes=4,scene6_tele

chart_scaling 參數

在 Android 17 以上版本中,chart_scaling 參數會納入 TEST_BED_TABLET_SCENESconfig.yml。這個參數可解決視野 (FoV) 較廣的望遠相機裝置的圖表縮放問題,避免裁剪場景,並在測試期間強制裝置對焦。

chart_scaling 支援的值為 10.330.50.67,預設值為 None。這種做法可讓裝置使用根據特定需求調整的最佳縮放比例,在所有裝置上維持功能測試。

如果 chart_scaling 設為 None,測試會使用 chart_scaling_logic 自動判斷縮放比例。否則會使用 config.yml 中指定的值,如果無法縮放,系統會標示錯誤。

以下是含有 chart_scaling 參數的 config.yml 範例

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

如要啟用相機 ITS 圖表縮放功能,必須進行測試端調整。如果您使用的測試不支援這項功能,請回報錯誤。

以下是含有 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)

sensor_fusion 場景 config.yml 檔案

以下是 sensor_fusion 測試的 config_yml 檔案範例。如要進行 sensor_fusion 測試,關鍵字 SENSOR_FUSION 必須位於測試平台名稱中。由於預覽和影片穩定性測試,Android 13 以上版本僅支援 Arduino 控制器進行感應器融合。Android 12 支援 Arduino 和 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

如要使用感應器融合盒執行 sensor_fusion 測試,請執行下列指令:

python tools/run_all_tests.py scenes=sensor_fusion
python tools/run_all_tests.py scenes=sensor_fusion camera=0
python tools/run_all_tests.py scenes=scene_flash,feature_combination
python tools/run_all_tests.py scenes=checkerboard camera=1

多個測試平台 config.yml 檔案

以下是 config.yml 檔案範例,其中包含多個測試平台,包括平板電腦測試平台和 sensor_fusion 測試平台。正確的測試平台取決於測試的場景。

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 檔案

以下是手動測試的 config.yml 檔案範例。Android 14 以上版本支援所有測試的手動測試,但 scene_extensions 測試除外。如要進行手動測試,測試平台名稱必須包含 MANUAL 關鍵字。 此外,平板電腦的 AndroidDevice 區段不得包含序號或標籤區段。

TestBeds:
  - Name: TEST_BED_MANUAL
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut

    TestParams:
      debug_mode: "False"
      camera: 0
      scene: 1

第 2 代測試設備的 config.yml 檔案

以下是 TEST_BED_GEN2 測試平台的 config.yml 檔案範例。 這個測試平台用於 scene_ip 測試,該測試使用第 2 代裝置](/docs/compatibility/cts/camera-its-box-gen2)。以下範例顯示 Gen2 測試平台可用,且未略過 scene_ip 測試時的測試平台參數。

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

以下範例顯示 Gen2 測試機架無法使用,且 scene_ip 測試已略過時的測試平台參數。

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 測試,請使用下列其中一個指令:

python tests/scene_ip/test_default_jca_ip.py -c config.yml
python tools/run_all_tests.py camera=<camera-id> scenes=scene_ip

執行 ITS 測試

本節說明如何執行 ITS 測試。

叫用測試

設定裝置、主體機器 (包括環境) 和實體場景後,請按照下列程序執行 ITS 測試。

  1. 開啟 CTS Verifier 應用程式。在測試選單中,選取「Camera ITS Test」。 如果是 Android 17 以上版本,sensor_fusionfeature_combination 測試會位於名為「Camera ITS Sensor Fusion Rig Test」的額外活動中。

  2. 在主體機器上,從 CameraITS/ 目錄執行 ITS 測試。舉例來說,如果裝置有前置和後置鏡頭,請執行下列指令:

    python tools/run_all_tests.py

    腳本會根據 config.yml 檔案,逐一檢查攝影機和測試場景。如要偵錯設定,建議您執行其中一個 scene2 場景,並進行單一測試,以加快處理速度。

    如要進行手動測試,請先在每個場景中執行一組 ITS 測試,然後讓指令碼拍攝目前場景的相片、儲存為 JPEG、將 JPEG 的路徑列印到控制台,並要求使用者確認圖片是否正常。這個「擷取並確認」流程會重複執行,直到使用者確認圖片正常為止。以下是這個流程中的訊息。

    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)
    

    每次執行指令碼時,系統都會列印記錄,顯示每個 ITS 測試的結果 (PASSFAILFAIL*SKIP)。FAIL* 表示測試失敗,但由於測試尚未強制執行,因此測試會向 CtsVerifier 回報為 PASSSKIP 表示測試通過,因為裝置未宣傳受測的基礎功能。舉例來說,如果裝置未透過攝影機介面宣傳支援 DNG,系統就會略過與 DNG 檔案擷取相關的測試,並將其計為 PASS

  3. 如要確認測試符合測試規定,請輕觸綠色勾號按鈕。CTS 驗證器測試選單中的「Camera ITS Test」項目會變成綠色,表示手機已通過 Camera ITS。

平行 DUT 測試

搭載 Android 14 以上版本的裝置支援平行 DUT 測試。這樣一來,您就能使用多個裝置同時測試 DUT,加快整體測試速度。舉例來說,平行測試可讓您同時測試一個裝置中的攝影機 0 和另一個裝置中的攝影機 1。如果是 Android 17 以上版本,由於 Camera ITS 測試會分成兩項活動,因此您可以在一個 DUT 上執行 sensor_fusionfeature_combination 測試,同時在另一個 DUT 上執行其他測試。所有平行測試工作階段的測試都會匯總到參考 DUT 的 CTS 驗證器工作階段。您必須使用 Arduino 照明控制裝置執行並行測試,因為並行測試不支援手動照明控制。請務必確保同一 Arduino 控制器上的不同通道,可控制每個裝置的照明。

以下是 config.yml 檔案範例,定義了三個要平行執行的測試平台。

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"

如要平行執行測試平台,請使用下列指令:

for i in 0 1 2; do python3 tools/run_all_tests.py testbed_index=$i num_testbeds=3 & done; wait

提交匯總測試結果

在 Android 17 以上版本中,您可以提交匯總的 Camera ITS 測試結果,以取得建構版本核准。CTS Verifier 可讓您在多部裝置上同時測試多個場景,並將多份 CTS Verifier 報告 (來自不同測試執行作業或裝置) 的測試結果彙整成一份統一的提交內容。

提交程序

如要提交匯總的攝影機 ITS 結果以供建構核准,請按照下列步驟操作:

  1. 準備裝置:收集兩到三部受測裝置 (DUT),這些裝置必須具有完全相同的版本指紋。
  2. 安裝 CTS Verifier:安裝最新的 CTS Verifier APK,可從提供的建構版本瀏覽器取得。
  3. 平行執行測試:

    1. 將 DUT 安裝在不同的支架上。
    2. 在每部裝置上同時執行不同的 Camera ITS 場景。
    3. 報表集合:每次執行後,請擷取 CTS Verifier 報表。包括場景失敗的報告。在後續執行中,只會重新執行失敗的場景。
  4. 提交報告:上傳從所有裝置收集的多個 CTS 驗證器報告。

  5. 查看結果:上傳報表後,請查看匯總結果:

    • 「測試分析」部分會顯示所有已執行的場景完整清單。
    • 未執行或失敗的場景會列在「失敗」部分。

      result-aggregation-image-1

      圖 1. 未執行或失敗的場景文件。

    • 通過的場景會列在「匯總通過」部分下方。

      result-aggregation-image-2

      圖 2. 歸類為「匯總通過」的場景

建構作業核准狀態

如果匯總報表顯示所有必要場景都已順利完成,系統就會核准建構版本。

DNG 雜訊模型

如果裝置宣稱可擷取 RAW 或 DNG 格式的相片,則必須在每張 RAW 相片的擷取結果中繼資料中提供雜訊模型。對於聲稱支援的裝置,這個雜訊模型必須嵌入每個攝影機 (例如前置和後置攝影機) 的攝影機 HAL 中。

實作噪音模型

如要實作雜訊模型,請按照下列步驟產生雜訊模型,並將模型嵌入攝影機 HAL。

  1. 如要為每部攝影機生成雜訊模型,請在 tools 目錄中執行 dng_noise_model.py 指令碼。這會輸出 C 程式碼片段。如要進一步瞭解如何設定攝影機及擷取環境,請參閱 tools 目錄中的 DngNoiseModel.pdf 文件。

  2. 如要為裝置實作雜訊模型,請將 C 程式碼片段剪下並貼到攝影機 HAL 中。

噪音模型驗證

tests/scene1_1/test_dng_noise_model.py 自動化 ITS 測試會驗證雜訊模型,確認相機資料中提供的拍攝曝光和增益雜訊值是否正確。

勉強通過的測試 (PASS* 測試狀態)

在 Android 17 以上版本中,「邊緣通過」 (PASS*) 表示測試已通過,但效能指標非常接近預先定義的通過門檻。雖然測試結果在技術上符合通過標準,但接近失敗界線,因此建議仔細檢查。

邊緣通過的好處

PASS* 狀態有下列優點:

  • 預警系統:找出即將失敗的測試,讓團隊在問題導致測試徹底失敗前解決問題。

  • 主動最佳化:鼓勵團隊最佳化測試和程式碼,以提升整體穩定性。

  • 提升品質:標記可能因程式碼小幅變更而導致日後回歸的區域,有助於維持較高的品質標準。

  • 縮短偵錯時間:及早發現 PASS* 測試,可大幅減少日後偵錯完整失敗所需的時間和精力。

PASS* 詳細資料

PASS* 狀態包括:

  • 定義閾值:針對 Camera ITS 中的每個相關測試,定義具體的及格邊緣閾值。

  • 自動偵測:測試自動化系統會根據定義的門檻,偵測測試並將其分類為 PASS*

  • 警示機制:如果任何測試標示為 PASS*,團隊就會收到自動警示,引導他們調查特定測試及其指標。

  • 報告:測試報告和資訊主頁會清楚指出邊緣通過狀態,方便您查看,如ItsTestSummary報告中的 PASS* 所示,與not_yet_mandated測試的 Fail* 類似。測試會維持綠色狀態,因為測試結果仍符合既定門檻,避免造成進一步混淆。PASS* 狀態僅適用於測試類別,不適用於整個場景。舉例來說,即使 test_jitter 和 test_metadata 是 PASS*,Scene_0 仍可視為 PASS

  • 監控:系統會收集裝置上勉強通過測試的成效資料。如果這些測試轉換為 PASS 狀態,即可監控 OEM 未來的相機改善項目。

以下是使用 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'}}

建議合作夥伴採取下列行動:

  • 監控 PASS* 則快訊
  • 調查 PASS* 項測試的根本原因
  • 主動最佳化標示為 PASS* 的測試和程式碼

PASS* 狀態旨在提升 Camera ITS 測試的穩定性和可靠性,進而打造穩定且高品質的產品。