O Agente de Teste de Apps é um agente de geração, gerenciamento e execução de casos de teste com tecnologia Gemini em Firebase. Você define metas de teste em linguagem natural, e o agente usa IA para entender e navegar no app, simular interações do usuário e fornecer resultados de teste detalhados.
Como o agente de teste de apps usa seus dados
O Agente de teste de apps é fornecido pelo Gemini em Firebase e é regido pelos mesmos termos. Consulte Como o Gemini no Firebase usa seus dados para mais informações sobre como o Gemini no Firebase usa seus dados.
Antes de começar
Registre seu app no Firebase, caso ainda não tenha feito isso.
Se você não estiver usando outros produtos do Firebase, basta criar um projeto e registrar seu app. Não é necessário adicionar SDKs ao app. No entanto, se você decidir usar outros produtos no futuro, conclua todas as etapas em Adicionar o Firebase usando o console do Firebase.
Criar um caso de teste
Para executar testes guiados por IA, o agente de teste de apps usa seus casos de teste de linguagem natural para executar testes no seu app.
Cada caso de teste é dividido em etapas, que serão executadas em sequência. As etapas permitem dividir o caso de teste em fases, cada uma com sua própria asserção. O agente pode realizar várias ações durante qualquer etapa.
Há duas maneiras de criar um caso de teste: usando um arquivo YAML ou o console do Firebase. Com os arquivos YAML, você gerencia os casos de teste por conta própria, geralmente em um repositório de código-fonte com controle de versões. Como alternativa, o Console do Firebase pode armazenar seus casos de teste remotamente com os dados da App Distribution.
Como usar arquivos YAML
O exemplo a seguir mostra um arquivo YAML que define dois casos de teste:
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
É possível organizar grupos de testes em um único arquivo e separar esses conjuntos de testes
em vários arquivos. Para adicionar um caso de teste de pré-requisito, adicione um ID ao
teste e faça referência a ele usando prerequisiteTestCaseId.
Como usar o console do App Distribution
Como alternativa, é possível criar e gerenciar seus casos de teste no Console do Firebase. Para criar um caso de teste, abra a página App Distribution do console Firebase e siga estas etapas:
- Na guia Casos de teste, clique em Novo caso de teste. Se você não quiser criar seu próprio caso de teste, modifique ou use o caso de teste de exemplo fornecido.
- Na caixa de diálogo Adicionar caso de teste, dê um nome ao caso de teste. Ele é usado para identificar o teste, mas é ignorado pelo agente.
- (Opcional) Selecione um Caso de teste de pré-requisito que contenha etapas de configuração para executar antes do teste principal. Se o teste de pré-requisito falhar, todo o teste será marcado como falha. As etapas e os resultados dos testes principais e de pré-requisito serão mostrados juntos nos resultados do teste.
- Considere dividir o teste em várias etapas clicando no botão Adicionar outra etapa.
- Dê a cada etapa uma meta que descreva o que o agente de teste de app precisa fazer durante essa etapa.
- (Opcional) Adicione uma Dica para fornecer mais informações e ajudar o agente de teste de apps a entender e navegar no app durante essa etapa.
- Adicione uma Declaração da tela final para ajudar o agente de teste de app a determinar quando a etapa foi concluída. Essa declaração só pode se referir ao que está visível na tela.
- Clique em Salvar quando terminar de personalizar o teste.
Exemplo de caso de teste
Confira a seguir um exemplo de como criar um caso de teste usando o agente de teste de apps:
Título de teste |
Carregamentos da página inicial |
Meta |
Carregar a página inicial |
Dica |
Navegue pelas telas de integração. Dispense todos os pop-ups. Não faça login. |
Declaração da tela final |
A página inicial do app principal está visível na tela, todas as imagens foram carregadas e nenhum erro é exibido. |
Executar um teste
A maneira de executar os testes depende de como você cria e gerencia os casos de teste. Se você definir casos de teste usando arquivos YAML, execute esses testes com a CLI do Firebase. Se você criar seus casos de teste no console do App Distribution, eles serão executados no console ou em uma das ferramentas da CLI do App Distribution.
Como usar arquivos YAML
Os casos de teste definidos em arquivos YAML podem ser executados usando a CLI do Firebase.
- Instale ou atualize para a versão mais recente da CLI do Firebase. Recomendamos que você faça download do binário autônomo para a CLI específica do seu SO.
- Faça login e teste se você consegue acessar seus projetos. Se você estiver usando a CLI do Firebase em um ambiente de CI, também será possível autenticar com uma conta de serviço ou usando login:ci.
Execute o comando
apptesting:execute. Exemplo:firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [options] [/path/to/app/binary] | |
|---|---|
--app
|
Obrigatório: ID do App do Firebase do seu aplicativo. Encontre o ID do app no console do Firebase, na página Configurações gerais.
|
--test-dir
|
Caminho para um diretório que contém arquivos YAML de casos de teste. O comando vai pesquisar várias vezes nesse diretório. Portanto, os arquivos podem ser organizados em subdiretórios. Se não for definido, "./tests" será usado por padrão. |
--test-devices ou --test-devices-file
|
Os dispositivos de teste em que você quer distribuir builds para o recurso do agente de teste de apps. É possível especificar os dispositivos de teste como uma lista de dispositivos de teste separada por ponto e vírgula: --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Também é possível especificar o caminho para um arquivo de texto simples que contenha uma lista de dispositivos de teste separada por ponto e vírgula: --test-devices-file
"/path/to/test-devices.txt" É possível pesquisar os modelos de dispositivos disponíveis usando a CLI gcloud. |
--test-non-blocking
|
Se definido, o comando vai iniciar os testes e retornar imediatamente em vez de esperar que eles sejam concluídos. |
--test-file-pattern
|
Um padrão de expressão regular. Somente os testes contidos em arquivos que correspondem a esse padrão serão executados. |
--test-name-pattern
|
Um padrão de expressão regular. Somente os testes com nomes de exibição que correspondem a esse padrão serão executados. |
/path/to/app/binary
|
Opcional: o caminho para o binário do seu app. Se omitido, o agente usará a última versão enviada para App Distribution no app especificado. |
Como usar o console do App Distribution
Para executar casos de teste armazenados no App Distribution, use o console do Firebase, a CLI do Firebase ou os plug-ins do Gradle ou do fastlane do App Distribution.
Importar e exportar casos de teste com arquivos YAML
A importação de casos de teste de arquivos YAML é útil quando você quer gerenciar casos de teste fora do console Firebase. Também pode ser útil exportar casos de teste para movê-los entre projetos. Você pode usar um LLM para refinar casos de teste atuais ou criar novos. É possível importar e exportar casos de teste da página "Casos de teste" no console do Firebase ou de maneira programática usando a CLI do Firebase. Para um exemplo de caso de teste YAML, consulte Criar um caso de teste YAML.
Ver os resultados do teste
É possível conferir os resultados dos testes na página Versões na guia Agente de teste de app de uma versão. O botão Ver detalhes abre a caixa de diálogo "Test Results" e mostra todos os problemas, capturas de tela do app e as ações que o Gemini fez durante o teste.
Se um teste incluir ações repetidas, você poderá conferir a execução original do teste guiado por IA ou limpar o cache.
Para saber mais sobre os resultados do teste, use a tabela a seguir:
| Ícone | Nome | Descrição |
|---|---|---|
| spark | Ação de IA | Indica que o agente do App Testing usou o Gemini para decidir realizar uma ação ou encerrar a etapa. |
| replay | Ação repetida | Indica que o agente do App Testing reproduziu uma ação de uma execução anterior bem-sucedida do teste. |
| spark | Declaração de IA | Indica que o agente de teste de apps usou o Gemini para validar uma declaração de tela final depois de reproduzir ações de uma execução anterior bem-sucedida do mesmo teste. |
Depurar os resultados do teste
Se os resultados do teste forem diferentes do esperado, você poderá depurar o teste usando a alternância Mostrar a visualização do agente em Ver detalhes na página "Resultados do teste". A visualização do agente mostra os elementos na tela que o agente de teste de apps conseguiu detectar ao usar as informações de acessibilidade do app. Se você quiser conferir melhor o que o agente viu, faça o download dessas informações no menu de ações flutuantes.
Também é possível usar o botão Ver artefatos na página "Resultados do teste" para conferir todos os vídeos, registros e artefatos do Cloud dos resultados do teste.
Limitações e problemas conhecidos
A visualização do agente de Teste de apps tem algumas limitações conhecidas:
- Como o agente de teste de apps usa a IA generativa para testar seu app, às vezes ele realiza ações diferentes, mas segue as mesmas instruções.
- O agente de teste de apps só oferece suporte às seguintes ações: tocar, inserir texto, deslizar para cima/para baixo/esquerda/direita, pressionar e manter pressionado, arrastar e soltar, voltar e esperar.
- O agente de Teste de apps tem problemas para executar testes que contêm apenas uma etapa que exige muitas ações para ser concluída. Ele tem um desempenho melhor quando tarefas complexas são divididas em várias etapas menores.
- Às vezes, o agente de teste de apps não rola para mostrar outros elementos fora da tela. Isso acontece com mais frequência quando não há indicação visual de rolagem. Como solução alternativa, o campo "dicas" pode ser usado para sugerir a rolagem.
- Às vezes, o agente de teste de apps tem problemas para contar, por exemplo, realizar uma ação um número específico de vezes.
- O agente de testes de apps não pode navegar pelo app se
FLAG_SECUREestiver ativado. Em vez de capturas de tela do app, ele vai mostrar apenas uma tela em branco.
Testar cotas
Durante a visualização, os testes guiados por IA serão oferecidos sem custo dentro de um limite de cota. O limite de cota padrão é de 200 testes por mês, por Projeto do Firebase.
Se você executar vários casos de teste ou o mesmo caso de teste em vários dispositivos, isso será considerado como vários testes. Por exemplo, se você executar dois casos de teste em dois dispositivos, isso vai contar como um total de quatro testes.
Para aumentar sua cota acima do limite padrão, entre em contato com o suporte do Firebase com seu caso de uso.