Android Tutorial de Teste de Aplicativos com Framework de Automação
⚡ Resumo Inteligente
Android Os testes de aplicativos verificam uma versão em um cenário de dispositivos fragmentado, combinando verificações de unidade, integração, operacionais e de sistema com estruturas de automação que são executadas em um dispositivo ou diretamente na JVM.
Porque Android Testando?
Android é o maior sistema operacional do mundo. Ao mesmo tempo, Android está fragmentado: existem inúmeros dispositivos e Android versões com as quais seu aplicativo deve ser compatível.
Não importa quanto tempo você invista em design e implementação, erros são inevitáveis e bugs aparecerão.
Android Estratégia de teste
Um correto Android A estratégia de teste deve incluir o seguinte:
- Teste unitário
- Teste de integração
- OperaTeste Nacional
- Teste do sistema
Testes unitários
Os testes unitários são conjuntos de programas projetados para verificar uma unidade atômica de código-fonte, como um método ou uma classe.
O Android A plataforma já vem pré-integrada com o JUnit Framework 3.0. É um framework de código aberto para automatizar Teste de UnidadeE permite que os desenvolvedores escrevam programas de teste de unidade eficazes.
Um complemento aos testes unitários são os testes de interface do usuário (UI). Eles abrangem os componentes da interface do usuário do seu aplicativo e garantem que ele retorne a saída correta para uma sequência de ações do usuário no dispositivo.
A forma mais comum de realizar testes de interface do usuário em um dispositivo é Android Instrumentação. Mas isso tem problemas de desempenho. Uma das melhores ferramentas para realizar testes de UI em Android is Robotium.
⚠️ Nota de versão: JUnit 3 classes como InstrumentaçãoTestCase foram descontinuados na API 24; os projetos atuais usam AndroidTeste X, Espresso e o UI Automator. Robotium Não teve nenhum lançamento desde 2016.
Testes de integração
In Teste de integração, todos os módulos testados unitariamente são combinados e verificados. Em Android Isso geralmente significa verificar a integração com componentes como Serviço, Atividade e Teste de Provedor de Conteúdo.
Muitas estruturas de teste são usadas para realizar testes de integração para Android, como Troyd, Robolectric e Robotium.
Operatestes nacionais
OperaOs testes funcionais, também chamados de testes de aceitação, são testes de alto nível que verificam a integridade e a correção do aplicativo.
In Android, FitNesse É uma estrutura de código aberto que facilita a execução de testes operacionais na 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 Tracavaliar realizar testes de desempenho em AndroidEsta ferramenta pode ajudá-lo a depurar sua aplicação e analisar seu desempenho. TracO eview agora está obsoleto em favor do Perfilador de CPU.
Operações Android Testes
As Android é fragmentado, os testes em muitos dispositivos são necessários e isso custa dinheiro. Automatizado Android Os testes ajudam a reduzir esses 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 as 2 estruturas a seguir
- Android Estrutura de teste
- Estrutura de teste robolétrico
Android estrutura de teste
Uma das estruturas de teste padrão para Android aplicações é o Android estrutura de testes. Está bem integrada com o Android As ferramentas do SDK e sua arquitetura possuem três partes.
- O pacote de aplicação é a aplicação de destino que precisa ser testada.
- InstrumentationTestRunner é o Caso de teste Executor de testes que executa casos de teste no aplicativo de destino. Inclui:
- Ferramentas de teste: Ferramentas SDK para criação de testes. Elas são integradas ao IDE ou executadas a partir da linha de comando.
- Macaco Runner: Uma ferramenta que fornece APIs para escrever programas que controlam um Android dispositivo ou emulador fora de Android código.
- O pacote de testes é organizado em projetos de teste e segue uma convenção de nomenclatura. Se o aplicativo em teste tiver o nome de pacote “com.mydomain.myapp”, o pacote de testes deverá ser “com.mydomain.myapp.test”. O pacote de testes inclui 2 objetos:
- Classes de casos de teste: Incluir métodos de teste a serem executados na aplicação de destino.
- Objetos simulados: Inclui dados fictícios que serão usados como entrada de amostra para casos de teste.
Android Classes de casos de teste
- O caso de teste inclui JUnit métodos para executar JUnit teste
- O TestSuite é usado para executar um conjunto de casos de teste.
- InstrumentationTestSuite é um conjunto de testes que injeta instrumentação em InstrumentationTestCase antes de executá-los.
- O InstrumentationTestRunner executa casos de teste no aplicativo de destino.
- AndroidTestCase estende JUnit Caso de teste com métodos para acessar recursos como o contexto da atividade.
- ApplicationTestCase verifica as classes do aplicativo em um ambiente controlado.
- O InstrumentationTestCase verifica uma funcionalidade ou comportamento específico, por exemplo, a saída da interface do usuário do aplicativo.
- ActivityTestCase é uma classe base que oferece suporte ao teste de atividades do aplicativo.
- ProviderTestCase é uma classe para testar um único ContentProvider.
- O ServiceTestCase testa classes de serviço em um ambiente de teste e oferece suporte ao ciclo de vida do serviço.
- O SingleLaunchActivityTestCase é usado para testar uma única Activity com um InstrumentationTestCase.
- Caso de teste da unidade de atividade É utilizado para testar uma única atividade isolada.
- Instrumentação de AtividadeTesteCaso2 estende o JUnit A classe TestCase conecta você ao aplicativo de destino por meio de instrumentação, permitindo que você acesse componentes da interface gráfica do usuário e envie eventos da interface do usuário, como pressionamentos de teclas ou toques na tela.
Abaixo está um exemplo de ActivityInstrumentationTestCase. Ele verifica a operação da interface do usuário de um aplicativo de calculadora e verifica a correção das saídas da interface do usuário.
Estrutura de testes robolétricos
Testando usando o Android A criação e execução de testes com um dispositivo ou emulador é complexa. O processo é lento e exige muito esforço de desenvolvimento. Para solucionar esse problema, existe uma alternativa: o framework de testes Robolectric.
Robolectric permite que você execute Android Os testes são executados diretamente na JVM sem a necessidade de um dispositivo ou emulador.
Aulas de casos de teste robolétricos
O Robolectric pode executar as seguintes ações:
- Registre-se e crie uma classe Shadow
- Interceptar o carregamento de Android classe
- Uso Javainsistir em sobrescrever 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 um Android ambiente.
Outras estruturas de teste
Além das estruturas de teste mencionadas acima, existem muitas outras, como:
- Android Relatório Junit, um executor de teste de instrumentação personalizado para Android que gera relatórios XML para integração com outras ferramentas.
- Espresso
- Appium
Mitos de Android Testes
Muitas empresas desenvolvem Android Testes 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 os mesmos, então testar em emuladores é suficiente.
Um aplicativo pode funcionar perfeitamente em emuladores, mas apresentar falhas durante a execução em alguns dispositivos reais.
Emuladores não são suficientes para seus testes em dispositivos móveis. Você precisa testar seu aplicativo em dispositivos reais.
Mito nº 2: Testar em alguns dispositivos comuns é suficiente.
A aparência do seu aplicativo varia de acordo com o dispositivo, pois o hardware, o tamanho da tela e a memória diferem. Teste em diversos dispositivos, versões de sistema operacional, redes de operadoras e locais.
Mito nº 3: Testes exploratórios imediatamente antes do lançamento são suficientes.
- Na maioria dos testes, projetamos casos de teste e depois os executamos; no teste exploratório, o projeto e a execução acontecem simultaneamente.
- Não há planejamento nem preparação, então o testador executa os testes que bem entender. Algumas funções são testadas repetidamente, enquanto outras nunca são testadas.
Mito nº 4: Se houver alguns erros no aplicativo, os usuários entenderão.
- Se o aplicativo não funcionar e apresentar erros, os usuários irão desinstalá-lo.
- Problemas de qualidade são o principal motivo para avaliações negativas em Google Jogar assim prejudica sua reputação e faz você perder a confiança dos clientes.
Portanto, é essencial ter um adequado Android Estratégia de testes implementada.
Melhor práticas em Android Testes
- 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 em um sistema de controle de versão, juntamente com o código-fonte.
- Use integração contínua e execute testes sempre que o código for alterado
- Evite depender apenas de emuladores e dispositivos com root; confirme os resultados em hardware real com um inspetor como o uiautomatorviewer





