Android Tutorial de teste de APP com estrutura de automação

Sua marca Android Testando?

Android é o maior operasistema de trabalho no mundo. Ao mesmo tempo, Android está fragmentado. existem toneladas de dispositivos e Android versões com as quais seu aplicativo deve ser compatível.

Android ensaio

Não importa quanto tempo você investe em design e implementação, erros são inevitáveis ​​e bugs aparecerão.

Android ensaio

Android Estratégia de teste

Um correto android estratégia de teste deve incluir o seguintewing

  1. Teste unitário
  2. Teste de integração
  3. OperaTeste Nacional
  4. Teste do sistema

Android Estratégia de teste

Testes unitários

Os testes unitários incluem conjuntos de um ou mais programas projetados para verificar um atomunidade ic de código-fonte, como um método ou uma classe.

Android plataforma vem pré-integrada Junit Estrutura 3.0. É uma estrutura de código aberto para automatizar Teste de Unidade. Android Testing Framework é uma ferramenta poderosa para o desenvolvedor escrever um programa de teste de unidade eficaz.

Integração de Android e JUnit Quadro
A integração de Android e JUnit quadro

Uma adição ao teste de unidade são os testes de interface do usuário (IU). Esses testes estão relacionados aos componentes de UI do seu aplicativo de destino. Os testes de UI garantem que seu aplicativo retorne a saída de UI correta em resposta à sequência de ações do usuário no dispositivo.

Ações comuns da interface do usuário no aplicativo
Ações comuns da UI do usuário no aplicativo

A maneira comum de realizar testes de IU no dispositivo é Android Instrumentação. Mas isso tem problemas de desempenho. Uma das melhores ferramentas para realizar testes de UI em Android is Robô.

Testes de integração

In Teste de integração, todos os módulos testados na unidade são combinados e verificados. Em Android, os testes de integração geralmente envolvem a verificação da integração comAndroid componentes como teste de serviço, teste de atividade, teste de provedor de conteúdo, etc.

Testes de Integração
Tipos de teste de integração em Android

Existem muitas estruturas de teste usadas para conduzir testes de integração para Android como Troyd, Robolectric, Robotium.

Operatestes nacionais

  • Operaadicionais também são chamados de testes funcionais ou testes de aceitação. São testes de alto nível projetados para verificar a integridade e a exatidão da aplicação.
  • In Android, FitNesse é uma estrutura de código aberto que facilita a condução operatestes adicionais para a aplicação alvo.

Testes de sistema

In Teste do sistema o sistema é testado como um todo e a interação entre os componentes, software e hardware é verificada.

In Android, o teste do sistema normalmente inclui

  • Testes de GUI
  • Testes de usabilidade
  • Testes de performance
  • Testes de estresse

Na lista acima, Teste de Desempenho recebe mais foco. Você pode usar ferramentas como Visualização de rastreamento para realizar teste de desempenho em Android .Esta ferramenta pode ajudá-lo a depurar seu aplicativo e traçar o perfil de seu desempenho.

Automated ANDROID TESTE

As android está fragmentado, são necessários testes em vários dispositivos. Mas isso também lhe custará dinheiro. Automatizado Android Os testes podem ajudar a reduzir custos

Benefícios da automação android ensaio

  • Reduza o tempo de execução de casos de teste
  • Aumente a produtividade do seu processo de desenvolvimento
  • Detecção antecipada de bugs, economia de custos na manutenção de software
  • Encontre e corrija rapidamente os bugs na implementação
  • Garanta a qualidade do software

Estudaremos o seguintewing 2 estruturas

  • Android Estrutura de teste
  • Estrutura de teste robolétrico

Android estrutura de teste

Uma das estruturas de teste padrão para Android aplicação é Android estrutura de teste. É uma estrutura de teste poderosa e fácil de usar, bem integrada com o Android Ferramentas SDK.

Android Estrutura de teste
Android estrutura de teste Archiarquitetura
  1. Pacote de aplicativos é o seu aplicativo de destino que precisa ser testado
  2. InstrumentaçãoTestRunner é o Caso de teste runner que executa o caso de teste no aplicativo de destino. Inclui:

2a) Ferramentas de teste: Ferramentas SDK para construção de teste. Eles estão integrados em Eclipse IDE ou execute como linha de comando.

2b) Macaco Runner: Uma ferramenta que fornece APIs para escrever programas que controlam um Android dispositivo ou emulador fora de Android código.

  1. Pacote de teste são organizados em projetos de teste. Este pacote segue a convenção de nomenclatura. Se o aplicativo em teste tiver um nome de pacote “com.mydomain.myapp”, o pacote de teste deverá ser “com.mydomain.myapp.test”. O pacote de teste inclui 2 objetos conforme abaixo:

3a) Classes de casos de teste: incluem métodos de teste a serem executados na aplicação alvo.

3b) Objetos simulados: incluem dados simulados que serão usados ​​como amostra de entrada para casos de teste.

Android Classes de casos de teste

Android Classes de casos de teste
AndroidDiagrama de classes TestCase
  1. Caso de teste inclui JUnit métodos para executar JUnit teste
  2. Suíte de teste é usado para executar um conjunto de casos de teste
  3. InstrumentaçãoTestSuite é um TestSuite que injeta Instrumentação em InstrumentationTestCase antes de executá-los.
  4. InstrumentaçãoTestRunner é o executor do caso de teste que executa o caso de teste no aplicativo de destino.
  5. AndroidCaso de teste se estende JUnit Caso de teste. Ele contém métodos para acessar recursos como Activity Context.
  6. ApplicationTestCase verifica as classes do Aplicativo em um ambiente controlado.
  7. InstrumentaçãoTestCase verifica um recurso ou comportamento específico do aplicativo de destino, por exemplo, verifica a saída da UI do aplicativo.
  8. ActivityTestCase é a classe base que oferece suporte ao teste das atividades do aplicativo.
  9. ProvedorTestCase é uma classe para testar ContentProvider único.
  10. ServiceTestCase é usado para testar classes de serviço em ambiente de teste. Ele também oferece suporte ao ciclo de vida do Serviço.
  11. SingeLauchActivityTestCase é usado para testar uma única atividade com um InstrumentationTestCase.
  12. ActivityUnitTestCase é usado para testar atividade isolada única.
  13. AtividadeInstrumentaçãoTestCase2 estende-se a JUnit Classe TestCase. Ele conecta você ao aplicativo de destino com instrumentação. Com esta classe, você pode acessar o componente GUI do aplicativo e enviar eventos de UI (pressionamento de tecla ou evento de toque) para a UI.

Abaixo está um exemplo de ActivityInstrumentationTestCase. Ele verifica a IU operação de Calculator appaplicação, verifique a exatidão das saídas da IU.

Teste de ActivityInstrumentationTestCase2
Exemplo de teste ActivityInstrumentationTestCase2

Estrutura de testes robolétricos

Testando usando Android Testar a estrutura com dispositivo ou emulador é difícil. Construir e executar testes é lento e exige muito esforço de desenvolvimento. Para corrigir esse problema, há outra opção – Roboelétrica estrutura de testes.

A estrutura Robolectric permite que você execute Android testes diretamente na JVM sem a necessidade de um dispositivo ou emulador.

Recursos avançados do Robolectric
Recursos avançados do Robolectric

Aulas de casos de teste robolétricos

Operação da Robolectric
Operação da Robolectric
  • Conforme mostrado acima, o Robolectric pode realizar o acompanhamentowing ações:
  • Registre-se e crie uma classe Shadow
  • Interceptar o carregamento de Android classe
  • Usa javaassist para substituir os corpos dos métodos de Android classe
  • Vincular objeto Shadow a Android classe
  • Isso permite que o código em teste seja executado sem Android ambiente.

Outras estruturas de teste

Além das estruturas de teste mencionadas acima, existem muitas outras estruturas de teste, como:

Mitos de Android ensaio

Muitas empresas desenvolvem android ensaio estratégias baseadas em equívocos comuns. Esta seção examina alguns mitos e realidades populares da Android teste.

Mito nº 1:Todos Android os dispositivos são iguais… testar em emuladores é suficiente

Vamos começar com um exemplo simples. Um aplicativo funciona perfeitamente em emuladores, mas em alguns dispositivos reais ele trava durante a execução

O aplicativo trava durante a execução em um dispositivo real
Aplicativo trava durante execução em dispositivo real

Emuladores são não suficiente para seus testes móveis. Você deve testar seu aplicativo em dispositivos reais.

Mito nº 2: Testar em alguns dispositivos comuns é suficiente

  • Em dispositivos diferentes, seu aplicativo parece diferente porque diferentes dispositivos têm hardware, tamanhos de tela, memória, etc. diferentes. Você deve testar seu aplicativo em diferentes dispositivos, versões de sistema operacional, redes de operadoras e locais.

Mito nº 3: Testes exploratórios antes do lançamento são suficientes

  • Geralmente, em todos os testes, projetamos os casos de teste e depois os executamos. Mas nos testes exploratórios, o design e a execução do teste serão feitos em conjunto.
  • Nos testes exploratórios, não há plano nem preparação, então o testador faria os testes que deseja. Algumas funções serão testadas repetidamente, enquanto algumas funções não serão testadas completamente.

Mito nº 4: Se houver algum bug no aplicativo, os usuários entenderão

  • Se o aplicativo não funcionar e apresentar bugs, os usuários desinstalarão seu aplicativo
  • Problemas de qualidade são o primeiro motivo para críticas negativas no Google Play. Isso afeta sua reputação e você perde a confiança do cliente.

Portanto é essencial ter um bom android estratégia de teste em vigor

Melhores práticas em Android ensaio

  • Os desenvolvedores de aplicativos devem criar os casos de teste ao mesmo tempo em que escrevem o código
  • Todos os casos de teste devem ser armazenados no controle de versão junto com o código-fonte
  • Use integração contínua e execute testes sempre que o código for alterado
  • Evite usar emuladores e dispositivos com acesso root