Guia de testes do Android 6.0

O Android 6.0 fornece uma oportunidade de garantir que os aplicativos funcionem na próxima versão da plataforma. Esta prévia inclui uma série de mudanças de comportamento e APIs que podem produzir impacto no aplicativo, como descrito em Visão geral da API e Mudanças de comportamento. No teste do aplicativo com a prévia, há algumas alterações de sistema específicas em que você deve se concentrar para garantir que os usuários tenham uma boa experiência.

Este guia descreve quais recursos de prévia você deve testar e como testá-los com o aplicativo. Você deve priorizar o teste destes recursos específicos da prévia devido ao grande impacto potencial no comportamento do aplicativo:

Teste de permissões

O novo modelo de permissões altera a maneira com que as permissões são alocadas ao aplicativo pelo usuário. Em vez de conceder todas as permissões durante o procedimento de instalação, o aplicativo deve pedir ao usuário permissões individuais em tempo de execução. Para os usuários, este comportamento fornece um controle mais granular sobre as atividades de cada aplicativo, bem como um melhor contexto para entender por que o aplicativo está solicitando uma permissão específica. Os usuários podem conceder ou anular as permissões concedidas a um aplicativo individualmente a qualquer momento. É provável que este recurso da prévia gere impacto no comportamento do aplicativo e impeça que alguns dos recursos do aplicativo funcionem ou faça com que funcionem em um estado prejudicado.

Esta alteração afeta todos os aplicativos em execução na nova plataforma, mesmo aqueles que não são voltados à nova versão da plataforma. A plataforma fornece um comportamento de compatibilidade limitado para aplicativos herdados. No entanto, você deve começar a planejar a migração do aplicativo para o novo modelo de permissões agora, com o objetivo de publicar uma versão atualizada do aplicativo no lançamento oficial da plataforma.

Dicas de teste

Use as seguintes dicas de teste para ajudar você a planejar e executar os testes de aplicativo com o novo comportamento das permissões.

  • Identifique as permissões atuais do aplicativo e os caminhos de código relacionados.
  • Teste o fluxo de usuários entre serviços e dados protegidos por permissão.
  • Teste várias combinações de permissões negadas/concedidas.
  • Use a ferramenta adb para gerenciar as permissões pela linha de comando:
    • Liste as permissões e os status por grupo:
      adb shell pm list permissions -d -g
    • Conceda ou negue uma ou mais permissões usando a seguinte sintaxe:
      adb shell pm [grant|revoke] <permission.name> ...
  • Analise o aplicativo para descobrir os serviços que usam permissões.

Estratégia de teste

A mudança de permissões afeta a estrutura e o desenvolvimento do aplicativo, além da experiência do usuário e dos fluxos fornecidos a eles. Você deve avaliar o uso atual de permissões do aplicativo e começar a planejar novos fluxos que deseja oferecer. O lançamento oficial da plataforma fornece comportamento de compatibilidade, mas é preciso planejar a atualização do aplicativo e não depender totalmente destes comportamentos.

Identifique as permissões de que o aplicativo realmente precisa e usa e, em seguida, encontre os diversos caminhos de código que usam os serviços protegidos por permissão. É possível fazer isto por meio de uma combinação de testes na nova plataforma e com análises de código. Nos testes, você deve se concentrar em usar as permissões em tempo de execução, alterando a targetSdkVersion do aplicativo para a versão da prévia. Para obter mais informações, consulte Configuração do Android N SDK.

Teste com várias combinações de permissões negadas e concedidas para destacar os fluxos de usuário que dependem de permissões. Caso uma dependência não seja óbvia ou lógica, considere refatorar ou compartimentalizar esse fluxo para eliminar a dependência ou esclarecer por que a permissão é necessária.

Para obter mais informações sobre o comportamento das permissões em tempo de execução, testes e práticas recomendadas, consulte a página Permissões do Developer Preview.

Teste de soneca e App em espera

Os recursos de economia de energia de App em espera e soneca limitam a quantidade de processamento em segundo plano que o aplicativo pode realizar quando um dispositivo está no estado ocioso ou enquanto não está em foco. As restrições que o sistema pode impor aos aplicativos inclui acesso limitado ou restrito a redes, suspensão de tarefas em segundo plano, suspensão de notificações, solicitações de soneca ignoradas e alarmes. Para garantir que o aplicativo se comporte adequadamente com essas otimizações de economia de energia, teste-o simulando esses estados de baixa energia.

Testar o aplicativo com Soneca

Para testar a Soneca com o aplicativo:

  1. Configure um dispositivo físico ou virtual com uma imagem do sistema Android N.
  2. Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.
  3. Execute o aplicativo e deixe-o ativo.
  4. Simule o dispositivo acessando o modo Soneca por meio da execução dos seguintes comandos:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Observe o comportamento do aplicativo quando o dispositivo for reativado. Certifique-se de que ele se recupere corretamente quando o dispositivo sair do modo Soneca.

Testar aplicativos com App em espera

Para testar o modo de App em espera:

  1. Configure um dispositivo físico ou virtual com uma imagem do sistema Android N.
  2. Conecte o dispositivo à máquina de desenvolvimento e instale o aplicativo.
  3. Execute o aplicativo e deixe-o ativo.
  4. Simule o aplicativo acessando o modo de espera por meio da execução dos seguintes comandos:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Simule o despertar do aplicativo usando o seguinte comando:
    $ adb shell am set-idle <packageName> false
  6. Observe o comportamento do aplicativo quando ele for despertado. Certifique-se de que ele se retorne corretamente do modo de espera. Particularmente, deve-se verificar se as notificações e os trabalhos de segundo plano do aplicativo continuam funcionando como o esperado.

Backup automático para aplicativos e identificadores específicos do dispositivo

Caso o aplicativo esteja persistindo algum identificador específico do dispositivo, como o ID de registro do GoogleCloud Messaging, no armazenamento interno, certifique-se de seguir as práticas recomendadas para excluir o local de armazenamento do backup automático, como descrito em Backup automático para aplicativos.