Android Tutorial de teste de APP com estrutura de automação
Sua marca Android Testando?
Android é o maior sistema operacional do mundo. Ao mesmo tempo, Android está fragmentado. existem toneladas de dispositivos e Android versões com as quais seu aplicativo deve ser compatível.
Não importa quanto tempo você investe em design e implementação, erros são inevitáveis e bugs aparecerão.
Android Estratégia de teste
Uma estratégia correta de teste do Android deve incluir o seguinte
- Teste unitário
- Teste de integração
- OperaTeste Nacional
- Teste do sistema
Testes unitários
Os testes de unidade incluem conjuntos de um ou mais programas projetados para verificar uma unidade atômica do código-fonte, como um método ou uma classe.
Android plataforma vem pré-integrada Junito 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.
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 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.
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 realização de testes operacionais para o aplicativo de destino.
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.
TESTE ANDROID automatizado
Como o Android é fragmentado, é necessário testar em uma multidão de dispositivos. Mas isso também custará dinheiro. Automatizado Android Os testes podem ajudar a reduzir custos
Benefícios dos testes automatizados de Android
- 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ção é Android estrutura de teste. É uma estrutura de teste poderosa e fácil de usar, bem integrada com o Android Ferramentas SDK.
- Pacote de aplicativos é o seu aplicativo de destino que precisa ser testado
- 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.
- 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
- Caso de teste inclui JUnit métodos para executar JUnit teste
- Suíte de teste é usado para executar um conjunto de casos de teste
- InstrumentaçãoTestSuite é um TestSuite que injeta Instrumentação em InstrumentationTestCase antes de executá-los.
- InstrumentaçãoTestRunner é o executor do caso de teste que executa o caso de teste no aplicativo de destino.
- AndroidCaso de teste se estende JUnit Caso de teste. Ele contém métodos para acessar recursos como Activity Context.
- ApplicationTestCase verifica as classes do Aplicativo em um ambiente controlado.
- InstrumentaçãoTestCase verifica um recurso ou comportamento específico do aplicativo de destino, por exemplo, verifica a saída da UI do aplicativo.
- ActivityTestCase é a classe base que oferece suporte ao teste das atividades do aplicativo.
- ProvedorTestCase é uma classe para testar ContentProvider único.
- ServiceTestCase é usado para testar classes de serviço em ambiente de teste. Ele também oferece suporte ao ciclo de vida do Serviço.
- SingeLauchActivityTestCase é usado para testar uma única atividade com um InstrumentationTestCase.
- ActivityUnitTestCase é usado para testar atividade isolada única.
- 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 operação da UI do aplicativo Calculadora, verifica a exatidão das saídas da UI.
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.
Aulas de casos de teste robolétricos
- Conforme mostrado acima, o Robolectric pode realizar as seguintes 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:
- 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.
- Expresso
- Appium
Mitos de Android Ensaios
Muitas empresas desenvolvem Android Ensaios 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
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 uma estratégia adequada de testes do Android.
Melhor práticas em Android Ensaios
- 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