O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Câmera ITS-in-a-Box

O Android Camera Image Test Suite (ITS) faz parte do Android Compatibility Test Suite (CTS) Verifier e inclui testes que verificam o conteúdo da imagem. O CTS Verifier suporta automação de teste ITS com Câmera ITS-in-a-box; o suporte para testes manuais cobre todos os fatores de forma do dispositivo Android.

O ITS-in-a-box inclui os seguintes benefícios:

  • Automação. Nenhuma intervenção humana é necessária durante o teste.
  • Solução de problemas fácil. A consistência do ambiente de teste leva a menos erros de configuração e aumenta a reprodutibilidade.
  • Eficiência. A capacidade de tentar novamente para câmera / cena individual melhora a eficiência da execução do teste.

Começando

O ITS-in-a-box consiste em uma caixa de plástico que é cortada a laser de desenhos de projeto auxiliado por computador (CAD), um tablet gráfico e um dispositivo em teste (DUT). Você pode usar o amplo campo de visão (WFoV) ITS-in-a-box, que é capaz de testar câmeras WFoV (FoV> 90 graus) e RFoV (FoV <90 graus), ou o campo regular de -view (RFoV) ITS-in-a-box.

Para começar a usar a câmera ITS-in-a-box:

  1. Comprar ou construir uma WFOV ou RFoV ITS-in-a-box.
  2. Configurar um tablet com câmera de seu software.
  3. Executar testes .
  4. Obter resultados a partir do DUT.

Configurando o tablet

Esta seção fornece instruções passo-a-passo para a criação de um comprimido para uso com o Camera testes SEUS localizados no CameraITS diretório. Estas instruções usam um Pixel C como exemplo de tablet. Para obter informações sobre requisitos de tablet e recomendações, consulte requisitos Tablet .

Nota: A câmara SEUS scripts Python definir automaticamente as seguintes opções no tablet para você:
Configurações> Tela> Suspensão> Após 30 minutos de inatividade
Brilho adaptável> DESLIGADO

  1. Carregue o tablet e ligue-o. Se for solicitado a configurar uma conta, ignore (Camera ITS não requer nenhuma conta emparelhada com o tablet).
  2. Atualize o tablet para Android 7.0 ou superior. Android 6.xe versões inferiores não suportam ITS de câmera.
  3. Ativar o modo de desenvolvedor .
  4. Retorno para Configurações e selecione Opções do desenvolvedor.
    Habilitar opções
    • Sobre
    • Fique acordado
    • Depuração USB (Isso permite que o host para executar o tablet no modo de depuração. Quando você conectar o tablet ao host pela primeira vez, as instruções tablet Permitir depuração USB? Se o tablet não exibir a depuração rápida, desconecte e reconecte o tábua.)
    Desativar opções
    • Atualizações automáticas do sistema
    • Verificar aplicativos por USB
  5. Determinar DUT e IDs gráfico executando $ adb devices para listar os dispositivos disponíveis. Para determinar device_id e chart_id , plug and dispositivos desligar e observar os dispositivos que conectar e desconectar.
  6. Realize três execuções de teste para suprimir dicas e prompts do usuário que podem obscurecer os gráficos na tela do tablet.
    1. Posicione o tablet voltado para cima em uma mesa (não fixe o tablet no painel traseiro da caixa).
    2. Execute o seguinte comando:
      python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
      
      cenas 2 e 3 exigem que o tablet para exibir uma imagem, por isso as instruções tablet Permitir unidade para acessar fotos, mídia e arquivos em seu dispositivo? . Desmarque esta rápidas (e evitar prompts futuros) pressionando Permitir.
    3. Execute o comando novamente. Os prompts tablet Mantenha uma cópia deste arquivo? e sugere o Google Drive. Limpar este aviso (e evitar prompts futuros), pressionando no ícone Drive depois Cancelar para upload para dirigir.
    4. Finalmente, execute tools/run_all_tests.py e confirme que as cenas mudar automaticamente, como os ciclos de script através de diferentes cenas. Embora a maioria dos testes falhe (já que a câmera não está apontada para o gráfico), você pode verificar se o tablet percorre as cenas corretamente sem exibir nenhum prompt ou outros pop-ups na tela.

Executando testes

Antes de executar o ITS-in-a-box, certifique-se de que sua configuração de teste inclui o seguinte hardware e software:

  • Um (1) ITS-in-a-box
  • Um (1) tablet de alta resolução de 10 "para exibir cenas, S / N: 5811000011
  • Um (1) DUT com o aplicativo CTS Verifier 7.0_8 + instalado. DUT de exemplo:
    • Um (1) Pixel NOF26W para o teste da câmera traseira (0), S / N: FA6BM0305016. Para instalar o aplicativo CTS Verificador, unzip android-cts-verifier.zip em seguida, executar
      adb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
      

Execução de cenas baseadas em tablet

Para executar as cenas de 0 a 4, 6 e scene_change na câmera traseira:

cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0

Exemplo:

Câmera 0 S / N: FA6BM0305016
Figura 1. Câmara 0 S / N: FA6BM0305016

Tentando novamente as cenas

Você pode tentar novamente as cenas para uma única câmera:

  • Para repetir cenas em uma única câmera:
    python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
    

Cena 5 de corrida

Cena 5 requer configuração especial com iluminação específica (para detalhes, consulte CameraITS.pdf em CTS Verificador, que você pode baixar em Compatibilidade Test Suite downloads ). Você deve executar a cena 5 separadamente (fora da caixa).

cena da câmera 5
Figura cena 2. Câmera 5

Para executar a cena 5 para câmeras frontal e traseira em um único dispositivo:

python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5

Obtendo resultados

Você pode visualizar os resultados durante o teste e salvar os resultados concluídos como um relatório.

  • Ver resultados. Para salvar os resultados de ITS da câmera como um relatório:
    1. Press Pass e salvar o relatório.
      relatório ITS da câmera
      Figura 3. Camera seu relatório
    2. Relatórios de puxar a partir do dispositivo:
      adb -s FA6BM0305016 pull /sdcard/verifierReports
      
    3. Descompacte o arquivo de relatório e vista test_result.xml .
      relatórios de câmera ITS
      Figura 4. câmera relata seu

Requisitos do tablet

Os tablets devem ter um tamanho de tela de cerca de 10 polegadas com uma resolução de tela superior a 1920 x 1200 pixels. O brightness valor deve ser definido em config.yml de acordo com o modelo de comprimido. A tabela abaixo lista os tablets recomendados para teste de ITS junto com as versões de lançamento do Android para o DUT com o qual os tablets funcionam.

Dispositivo Tamanho da tela
(polegadas)
Tamanho da tela
(píxeis)
Dimensões do tablet
(polegadas)
Exibição
brilho
DUT com suporte
SO
Lenovo Tab M10 Plus 10,3 1920 x 1200 9,61 x 6,03 x 0,32 192 Android 12+
Samsung Galaxy Tab A7 10,4 2.000 x 1.200 9,75 x 6,2 x 0,28 192 Android 12+
Chuwi Hi9 Air 10.1 10,1 2560 x 1600 9,52 x 6,77 x 0,31 192 Android 7 ou 7
Asus ZenPad 3 9,7 2048 x 1536 9,47 x 6,44 x 0,28 192 Android 7 ou 7
Huawei MediaPad m5 10,8 2560 x 1600 10,18 x 6,76 x 0,29 192 Android 7 ou 7
Pixel C 10,2 2560 x 1800 9,53 x 7,05 x 0,28 96 Android 7 ou 7
Sony Xperia Z4 10,1 2560 x 1600 10 x 6,57 x 0,24 192 Android 7 ou 7

Perguntas frequentes (FAQs)

P1: Como determino quais equipamentos de teste preciso para o meu dispositivo?

Os RFoV SEUS-in-a-box Revisão 1 câmeras testes RFoV para cena 0 a cena 4 testes no CameraITS/tests diretório. RFoV é definido como 60 ° <FoV <90 °. Para câmeras FoV maiores, as luzes podem aparecer nas imagens ou os gráficos podem cobrir uma área muito pequena no FoV, afetando os resultados do teste.

Os WFOV SEUS-in-a-box revisão 2 Testes câmeras WFOV para cena 0 a cena 4 testes no CameraITS/tests diretório. WFOV é definido como FoV> = 90 °. É funcionalmente idêntico à revisão 1, mas maior. O equipamento de teste da revisão 2 pode testar câmeras RFoV e WFoV no Android 9 e superior.

A caixa de fusão de sensores testa a sincronização de câmara / giroscópio compensado de temporização e multi-câmara sistemas frame com testes em scenes=sensor_fusion . Um deslocamento de menos do que 1 ms de tempo de câmara / giroscópio é necessário para o REALTIME bandeira característica e VR / AR aplicações.

Dispositivos multi-câmara podem ser testados com uma única sonda para testes estáticos SEUS e um equipamento de fusão de sensores, se a câmara tem o REALTIME bandeira característica.

Um conjunto de configurações de exemplo é fornecido na tabela abaixo.

Exemplo FoVs da câmera TEMPO REAL? Plataformas recomendadas Notas
1 75 ° Não Rev 1 Android 7.0 ou superior
2 75 ° sim Rev 1 + fusão de sensor Android 9 ou superior
3 75 ° + 95 ° sim Rev 2 + fusão de sensor Android 9 ou superior

Q2: Como posso designar qual equipamento de teste está em uso?

Para designar a bancada de teste correta, certifique-se de que o parâmetro de distância do gráfico esteja correto. A plataforma de teste rev1 (RFoV) tem distância de gráfico de 31 cm, e a plataforma de rev2 (WFoV) tem distância de gráfico de 22 cm. Por padrão, a distância do gráfico é definida para 31 cm.

Android 10 a Android 11

Para identificar o equipamento de teste correto em Android 10 a 11 adicionar o dist bandeira na linha de comando. O valor padrão para dist é 31 . Execute o seguinte comando para alterar o chart_distance parâmetro.
python tools/run_all_tests.py ... chart=# dist=22

Android 12

Para identificar o equipamento de teste correto em Android 12 você pode editar o arquivo config.yml para mudar o chart_distance parâmetro.
edit config.yml
chart_distance: 31.0 → chart_distance: 22.0

Q3: Como posso controlar o brilho do tablet?

Por padrão, o brilho do tablet é definido para 96.

Para alterar o brilho em tablets com Android 7.0 a Android 9, execute:

edit tools/wake_up_screen.py
DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192

Para alterar o brilho em tablets rodando Android 10 a 11, o valor pode ser alterado na linha de comando, adicionando o brightness da bandeira:

python tools/run_all_tests.py device=# camera=# chart=# brightness=192

Para alterar o brilho em tablets com Android 12, execute:

edit config.yml
brightness: 96 → brightness: 192

Q4: como faço para depurar um único teste?

Os testes podem ser executados individualmente para fins de depuração, mas os resultados não são relatados para CtsVerifier.apk a menos que toda a cena é executado.

Para executar uma cena individual no Android 11 e inferior:

  1. Carregar uma cena, adicionando a scenes bandeira em tools/run_all_tests.py :
    python tools/run_all_tests.py device=# camera=# chart=# scenes=#
    
  2. Press Control + C para testes Parada após a cena é registado como carregado a stdout .

    Se a cena correta já estiver na tela, ative a tela:

    python tools/wake_up_screen.py screen=#
    
  3. Execute um teste individual.

    python tests/scene#/test_*.py device=# camera=#

    Parcelas são então gerados no diretório local e stdout e stderr são impressos na tela.

    Para obter mais informações para depuração, adicione print declarações ao script. Para aumentar a saída de teste para depurar, adicione o debug=True bandeira.

    python tests/scene#/test_*.py device=# camera=# debug=True

Os resultados são impressos na tela local e as imagens são salvas no diretório local em vez do gerado /tmp/tmp### diretório ao executar tools/run_all_tests.py .

Para executar uma cena individual no Android 12:

  1. Edite o config.yml arquivo.

    edit config.yml
    camera: <camera-id> → camera:  0
    scene: <scene-name> → scene: scene1_1
  2. Execute o teste individual.

    python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
    

Os resultados são impressos na /tmp/logs/mobly/TEST_BED_TABLET_SCENES/ diretório classificado por tempo de execução.

P5: Por que preciso executar os testes de falha como uma cena inteira em vez de reexecutar os testes individualmente?

Os testes podem ser executados individualmente para fins de depuração, mas os resultados não são relatados para CtsVerifier.apk a menos que toda a cena é executado.

O ITS da câmera garante que os aplicativos de terceiros tenham uma interface de câmera compatível. Semelhante a uma unidade de teste, cada teste salienta uma única especificação na câmara. Para detectar um comportamento não confiável, espera-se que esses testes passem como um grupo em uma cena inteira. Por exemplo, embora um único teste não confiável possa passar na repetição de uma cena inteira, é difícil para vários testes não confiáveis ​​passarem.

Como um exemplo extremo, considere o caso onde há 10 testes em uma cena que cada um tem uma probabilidade de 50% de retornar PASS . Executando cada teste individualmente, há uma grande chance de um operador conseguir que a câmera seja aprovada no ITS da câmera. No entanto, se os testes forem executados em conjunto como uma cena, há apenas 0,1% de chance de a cena passar.

P6: Como executo uma única cena ou reordeno as cenas de execução?

Por padrão, o script tools/run_all_tests.py corre todas as cenas em ordem. No entanto, as cenas podem ser executados individualmente ou em uma ordem específica e ser comunicada ao CtsVerifier.apk .

Para executar uma cena individual (por exemplo, cena 2) ou executar mais de uma cena em uma ordem específica no Android 11 ou inferior:

python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2

Para executar uma cena individual ou executar mais de uma cena em uma ordem específica no Android 12:

python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2

Os parâmetros adicionais são definidas na config.yml arquivo.

P7: Vários testes de cena 1 falham com a configuração do tablet, mas passam com um gráfico de papel. O que está errado?

Certifique-se de que o tablet e o ambiente de teste atendam às especificações a seguir.

Especificações do tablet

Certifique-se de que o tablet atenda às seguintes especificações:

  • Tamanho da tela (polegadas): 10 polegadas
  • Tamanho da tela (pixels): maior que 1920 x 1200 pixels

Para mais detalhes, consulte requisitos Tablet .

Brilho do tablet

Os testes podem não obter resultados corretos se o brilho da tela do tablet estiver muito baixo.

Para mais detalhes, consulte Como posso controlar o brilho tablet?

Nível de iluminação da caixa (requer medidor de lux)

Certifique-se de que o valor de lux desejado na abertura do tablet esteja entre 100 e 300.

Se o nível de lux é muito alto, scene1/test_param_flash_mode.py retornos FAIL . Se o nível de lux for muito baixo, vários testes falham.

P8: Como faço para depurar testes de fusão de sensores?

  1. Certifique-se que você está em um dialout grupo.

    groups | egrep ‘dialout'
  2. Certifique-se de que o controlador de fusão do sensor esteja conectado, determinando se a Microchip Technology está conectada à porta USB.

    lsusb
    …
    Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc.
    …
    
  3. Execute o teste várias vezes para obter uma distribuição das tentativas de teste com os comandos a seguir.

    No Android 11 ou inferior:

    python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
    

    No Android 12:

    python tools/run_sensor_fusion_box.py num_runs=10
    

    Os parâmetros adicionais são definidas na config.yml arquivo.

    Saídas executados estão em /tmp/tmp### pasta criada sob os sensor_fusion_# pastas, onde # é o número prazo. Os motivos comuns de falha são:

    1. O telefone não está centralizado corretamente.
    2. Não foram encontrados recursos suficientes na imagem (geralmente um FoV ou problema de iluminação).
    3. O retornado FAIL é válido, eo tempo de deslocamento entre a câmara eo giroscópio devem ser corrigidos.

P9: Quais informações devo incluir ao relatar um bug de teste?

Ao relatar um bug de teste, inclua os arquivos e imagens gerados para o teste.

  1. Se você executou o teste através de tools/run_all_tests.py , anexar um zipado /tmp/ diretório para o bug.
  2. Se você executou o teste sozinho, anexe todas as saídas de tela e imagens geradas ao bug.

Inclua também um relatório de bug. Depois que o teste em questão falhar, use o seguinte comando para gerar um relatório de bug e anexar o arquivo zip gerado ao bug.

adb -s device_id bugreport

P10: Como faço para remover as barras de navegação em tablets 16:10 que obscurecem a cena?

Para tablets com proporção de 16:10 (ou superior), a barra de navegação pode obscurecer parte da cena. Para ocultar a barra de navegação, use o seguinte comando adb para o tablet.

adb -s device_id shell settings put global policy_control immersive.full=*