Cobertura de código para teste automatizado de interface do usuário do Android

Yana Gusti 11/07/2019

Vamos falar sobre o teste automatizado do Android. A profissão de Engenheiro de QA  costumava ser associado com as pessoas, que “não são boas o suficiente” para se tornarem um desenvolvedor. Eu ouvi por várias vezes que “ a maneira mais fácil de entrar na esfera de TI é se tornar um testador

Mas, na verdade, é necessário estudar novas tecnologias e melhorar constantemente para se tornar um testador profissional.

1. Tendências de 2017 em testes:
integração, automação e muito mais

A noção ” Garantia da Qualidade ”Como o ramo separado da indústria de TI apareceu há não muito tempo atrás. Os departamentos de testes em grande escala existiam apenas em grandes empresas de desenvolvimento de software / hardware, onde os erros eram inadmissíveis.

Revolução na criação dos padrões tornou-se o próximo passo. Ficou claro que certas regras devem ser obedecidas para o correto funcionamento dos produtos de TI. Assim, os departamentos de suporte parecem receber e os feedbacks dos clientes e resolver problemas.

qa superiorPrioridades de controle de qualidade

Atualmente, a maioria dos CEOs e gerentes quer que seus produtos atendam a todos os requisitos.

Empresas começou a investir  cada vez mais no processo de teste, portanto a profissão de Engenheiro de QA  está apenas no começo de seu desenvolvimento.

cobertura de código, tendências em testes, integração, automação, cobertura de teste, interface do usuário, testes de automação, Android, EasyQAOrçamento de controle de qualidade

As tendências de testes mais populares em 2016 são as seguintes :

1 teste integrado  – envolver testadores no início do processo de desenvolvimento e durante todo o ciclo de vida de um produto. Como se diz: É muito mais barato consertar bug em uma documentação do que durante o lançamento.

cobertura de código, tendências em testes, integração, automação, cobertura de teste, interface do usuário, testes de automação, Android, EasyQABug vs Feature

2 teste de automação : ajuda a substituir o teste de regressão, por exemplo, o produto é desenvolvido usando o método ágil e assim por diante.

cobertura de código, tendências em testes, integração, automação, cobertura de teste, interface do usuário, testes de automação, Android, EasyQATeste de automação

3 serviços de nuvem , que fornecem ferramentas de teste virtual;
4 teste de crowdsourcing  – teste, que envolve um grande número de usuários (efetivo para teste beta).

A utilização dessas ferramentas é a chave para fornecer melhores serviços de testes móveis. O futuro dos testes pertence à automação

 

2. O futuro do teste pertence à automação

Atualmente, a automação de processos se torna popular em todas as esferas da vida humana.

A sociedade está se esforçando para delegar todas as responsabilidades rotineiras às máquinas. Coisas que pareciam impossíveis há alguns anos atrás, em nosso tempo, se transformaram em processos comuns e o teste não é uma exceção.

Embora, de acordo com os dados de “STATE OF TESTING 2016” , a porcentagem de Engenheiros de automação de controle de qualidade  no mercado é igual apenas 8% , mais e mais clientes exigem executar os testes automatizados para verificar os programas.

cobertura de código, tendências em testes, integração, automação, cobertura de teste, interface do usuário, testes de automação, Android, EasyQAobter de qablog.practitest.com

Unidade, automação de interface do usuário, carga  testes, bem como o uso de ferramentas de teste automatizadas, ganham popularidade para verificar a compatibilidade em diferentes sistemas operacionais e dispositivos.

Mas, como apareceu, isso não é suficiente. Consequentemente, se você não usar as ferramentas para calcular a cobertura de código, os testes automatizados não garantirão o teste de todas as funções, casos de teste e cenários.

Trevo , JaCoCo , Cobertura de código  (as ferramentas padrão de cobertura de código IntellijIDEA) podem ser usadas para essa finalidade. No entanto, a maioria deles foi projetada para o cálculo de Cobertura do código de teste da unidade  (por exemplo, ao iniciar o teste via Clover, a mensagem “ O Clover Test Optimization suporta apenas configurações JUnit ”É mostrado pelo IDE).

cobertura de código, Clover, tendências em testes, integração, automação, cobertura de testes, UI, testes de automação, Android, EasyQA

Cobertura de teste de trevo para testes unitários

Caso contrário, não há solução pronta e em escala real para apresentar a cobertura de código de testes automatizados de interface do usuário no mercado.

 

3. Como apresentar os resultados do teste automatizado android para interface do usuário

Começamos a investigar essas questões na demanda de clientes para apresentar o resultado visual de nossos testes automatizados para testes de aplicativos móveis.

Depois de investigar alguns artigos, blogs e fóruns, encontramos o grande projeto de Oleksandr Kucherenko chamado Android Test + Espresso + JaCoCo. Ele criou AndroidJacocoTestRunner , que usamos com sucesso para obter a cobertura de código dos nossos testes automatizados.

Infelizmente, o Espresso tem uma série de problemas ao escrever códigos. Por exemplo, esta biblioteca não fornece os métodos de rolagem prontos e assim por diante.

Esta é a razão pela qual nossa equipe decidiu elaborar o projeto de Oleksandr para que ele possa interagir com a biblioteca Robotium. Graças à simplicidade e clareza do código fonte do AndroidJacocoTestRunner, apenas algumas linhas tiveram que ser alteradas:

 

  • altere o caminho para o AndroidJacocoTestRunner em build.gradle
defaultConfig {
    applicationId "com.example.android"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "$ {getBuildName ()}"
    testInstrumentationRunner
    "com.example.android.AndroidJacocoTestRunner"
}
  • mude o café expresso da dependência ao robotium e sincronize o build.gradle
androidTestCompile'com.jayway.android.robotium: robotium-solo: 5.4.1 '

Após o projeto ter sido limpo e reconstruído, o IDE notificou a configuração aprovada com sucesso 🙂

A equipe começou a escrever código. Código dos testes escritos com Robótica , não difere de um código normal e nos dá a chance de obter um resultado gráfico e não há necessidade de escrever nenhuma condição adicional.

Por exemplo, o teste para autorização no aplicativo  foi criado:

classe pública TestLogin estende
ActivityInstrumentationTestCase2 <SplashActivity> {
   solo solo privado;
   public TestLogin () {
      super (SplashActivity.class);
   }
   @Sobrepor
   public void setUp () lança Exception {
      super.setUp ();
      solo = new Solo (this.getInstrumentation (),
      getActivity ());
   }
   @SmallTest
   public void testProfile () lança exceção {
   // check Logout ou não
      if (solo.waitForView (R.id.search_button)) {
         solo.clickOnText ("Staff");
         solo.scrollToBottom ();
         solo.clickOnText ("Logout");
      }
      solo.typeText (0, "username");
      solo.clickOnView (solo.getView (R.id.etPassword_ASM));
      solo.typeText (1, "123456");
      solo.clickOnText ("LOG IN");
   }
   @Sobrepor
   public void tearDown () lança exceção {
      solo.finishOpenedActivities ();
   }
}

Para obter um resultado demonstrativo, o teste pode ser iniciado de duas maneiras:
1. a partir da linha de comando: gradlew: app: connectedAndroidTest
Cobertura de código, Robotium, JaCoCo, tendências em testes, integração, automação, cobertura de testes, UI, testes de automação, Android, EasyQA

Executar testes de robótica

2. do IDE – crie o Android Test em Editar configuração escolha AndroidJacocoTestRunner  e pressione “Run”. Começar gradlew: app: jacocoTestReport  com uma linha de comando para obter um resultado gráfico.

Cobertura de código, Robotium, JaCoCo, tendências em testes, integração, automação, cobertura de testes, UI, testes de automação, Android, EasyQA

Executar testes de robótica

O resultado na forma de tabela (arquivo “index.html”) pode ser encontrado no diretório <nome do projeto> appbuildreportscoveragedebug:

Cobertura de código, Robotium, JaCoCo, tendências em testes, integração, automação, cobertura de testes, UI, testes de automação, Android, EasyQA

Resultado do teste de automação com cobertura de código

Também existe a possibilidade de obter Resumo do teste :

Cobertura de código, Robotium, JaCoCo, tendências em testes, integração, automação, cobertura de testes, UI, testes de automação, Android, EasyQA

Resultado do teste de automação com cobertura de código

e veja qual teste não passou e por quê:

Cobertura de código, Robotium, JaCoCo, tendências em testes, integração, automação, cobertura de testes, UI, testes de automação, Android, EasyQA

Resultado do teste de automação com cobertura de código

Conclusões

O uso das ferramentas para calcular a cobertura de código de testes automatizados aumenta a velocidade ea eficiência de Trabalho do engenheiro de controle de qualidade .

Não há necessidade de criar relatórios manuais e demonstrar a eficácia do seu trabalho. O cliente recebe o resultado claro, o testador se demite da obrigação de relatar manualmente. Então ambos os lados estão satisfeitos :).

Embora o teste automatizado seja muito mais complicado que o manual. Então aprenda, como é interessante, extraordinário e promissor. E continuaremos investigando esse tópico em nossos próximos artigos!

Você também pode usar nosso Ferramenta de gerenciamento de testes EasyQA  para usar vários recursos úteis para melhorar a qualidade do software, como:

 

  • construir compartilhamento
  • travar falhas
  • obtenha construção diretamente do GitHub ou GitLab
  • relatar um bug do aplicativo e de outros.

Registre uma nova conta gratuitamente!