Get Free License

Couverture de code pour le test automatisé de l’interface utilisateur Android

Yana Gusti 02/07/2019

Parlons de test automatisé Android. Le métier de Ingénieur QA était autrefois associé aux personnes, qui «ne sont pas assez bons» pour devenir développeurs. J’ai entendu dire plusieurs fois que «le moyen le plus simple d’entrer dans la sphère informatique est de devenir testeur”.

Mais en fait, il est nécessaire d’étudier de nouvelles technologies et de s’améliorer constamment pour devenir un testeur professionnel.

1. Tendances de l’essai en 2017: intégration, automatisation et plus encore

La notion « Assurance qualité”Car la branche séparée de l’industrie informatique est apparue il n’y a pas si longtemps. Les départements de test à grande échelle n’existaient que dans les grandes entreprises de développement de logiciels / matériel informatique, où les erreurs étaient inadmissibles.

La révolution dans la création des normes est devenue la prochaine étape. Il est devenu évident que certaines règles doivent être respectées pour le bon fonctionnement des produits informatiques. Ainsi, les services d’appui ont semblé recevoir et les commentaires des clients et résoudre les problèmes.

top qa Priorités d’AQ

De nos jours, la plupart des PDG et des gestionnaires souhaitent que leurs produits répondent à toutes les exigences.

Entreprisescommencé à investir de plus en plus en phase de test, donc la profession de Ingénieur QA vient tout juste de commencer son développement.couverture de code, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

QA Budget

Les tendances de test les plus populaires en 2016 sont les suivantes:

1.test intégré – impliquer les testeurs au tout début du processus de développement et tout au long du cycle de vie d’un produit. Comme il est dit: Il est beaucoup moins coûteux de corriger un bogue dans une documentation que lors de la publication.

couverture de code, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA Bug vs fonctionnalité

2. test d’automatisation: aide à substituer les tests de régression, par exemple le produit est développé en utilisant la méthode agile et ainsi de suite.

couverture de code, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Test d’automatisation

3.services de nuage, qui fournissent des outils de test virtuels;

4.tests crowdsourced – le test, qui implique un grand nombre d’utilisateurs (efficace pour les tests bêta).

L’utilisation de ces outils est la clé pour fournir de meilleurs services de test mobile. L’avenir des tests appartient à l’automatisation.

2. L’avenir des tests appartient à l’automatisation

De nos jours, l’automatisation des processus devient populaire dans toutes les sphères de la vie humaine.

La société s’efforce de déléguer toutes les responsabilités de routine aux machines. Des choses qui semblaient impossibles il y a quelques années, à notre époque, sont devenues des processus ordinaires et les tests ne font pas exception.

Bien que, selon les données de “ÉTAT DES ESSAIS 2016”, le pourcentage de Ingénieurs QA Automation sur le marché est égal seulement8%, de plus en plus de clients demandent à exécuter les tests automatisés pour vérifier les programmes.

couverture de code, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA obtenir de qablog.practitest.com

Unité, automatisation de l’interface utilisateur, charge Les tests, ainsi que l’utilisation d’outils de test automatisés, gagnent en popularité pour la vérification de la compatibilité sur différents systèmes d’exploitation et périphériques.

Mais, comme il est apparu, cela ne suffit pas. Par conséquent, si vous n’utilisez pas les outils de calcul de la couverture de code, les tests automatisés ne garantissent pas le test de toutes les fonctions, scénarios de test et scénarios.

Trèfle, JaCoCo, Couverture de code (les outils standard de couverture de code IntellijIDEA) peuvent être utilisés à cette fin. Cependant, la plupart d’entre eux ont été conçus pour le calcul deCouverture du code de test unitaire (par exemple, lors du démarrage du test via Clover, le message “Clover Test Optimization ne prend en charge que les configurations JUnit”Est montré par l’IDE).

couverture de code, Clover, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Couverture de test de trèfle pour les tests unitaires

Sinon, il n’existe pas de solution prête à l’emploi et complète permettant de présenter la couverture de code des tests automatisés de l’interface utilisateur sur le marché.

3. Comment présenter les résultats du test automatisé Android pour l’interface utilisateur

Nous avons commencé à étudier ces problèmes à la demande des clients afin de leur présenter le résultat visuel de nos tests automatisés pour les tests d’applications mobiles.

Après avoir étudié des articles, des blogs et des forums, nous avons découvert le grand projet d’Oleksandr Kucherenko appelé Android Test + Espresso + JaCoCo. Il a crééAndroidJacocoTestRunner, que nous avons utilisé avec succès pour obtenir la couverture de code de nos tests automatisés.

Malheureusement, Espresso a toute une gamme de problèmes lors de l’écriture de code. Par exemple, cette bibliothèque ne fournit pas les méthodes de défilement prédéfinies, etc.

C’est la raison pour laquelle notre équipe a décidé d’élaborer le projet d’Oleksandr afin de lui permettre d’interagir avec la bibliothèque Robotium. Grâce à la simplicité et à la clarté du code source d’AndroidJacocoTestRunner, seules quelques lignes ont dû être modifiées:

  • changer le chemin d’accès à AndroidJacocoTestRunner dans build.gradle
defaultConfig { 
    applicationId "com.example.android"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "${ getBuildName() }"
    testInstrumentationRunner 
    "com.example.android.AndroidJacocoTestRunner"
}
  • changez la dépendance espresso en robotium et synchronisez build.gradle
androidTestCompile'com.jayway.android.robotium:robotium-solo:5.4.1'

Une fois que le projet a été nettoyé et reconstruit, l’IDE a averti de la réussite de la configuration 🙂

L’équipe a commencé à écrire du code. Code des tests écrits avec Robotium, ne diffère pas d’un code habituel et nous donne une chance d’obtenir un résultat graphique sans qu’il soit nécessaire d’écrire des conditions supplémentaires.

Par exemple, le tester l’autorisation dans l’application a été créé:

public class TestLogin extends 
ActivityInstrumentationTestCase2<SplashActivity> {
   private Solo solo;
   public TestLogin() {
      super(SplashActivity.class);
   }
   @Override
   public void setUp() throws Exception {
      super.setUp();
      solo = new Solo(this.getInstrumentation(), 
      getActivity());
   }
   @SmallTest
   public void testProfile() throws Exception{
   //check Logout or not
      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");
   }
   @Override
   public void tearDown() throws Exception {
      solo.finishOpenedActivities();
   }
}

Pour obtenir un résultat démonstratif, le test peut être lancé de deux manières:

1. à partir de la ligne de commande:gradlew: app: connectedAndroidTest

couverture de code, Robotium, JaCoCo, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Exécutez les tests

2. de Robotium à partir de l’IDE – créez un test Android dansModifier la configurationchoisirAndroidJacocoTestRunner et appuyez sur « Run ». Débutgradlew: app: jacocoTestReport avec une ligne de commande pour obtenir un résultat graphique.

couverture de code, Robotium, JaCoCo, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Exécuter des tests Robotium

Le résultat sous forme de tableau (fichier “index.html”) se trouve dans le répertoire <Nom du projet> appbuildreportscoveragedebug:

couverture de code, Robotium, JaCoCo, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Résultat des tests d’automatisation avec couverture de code

Il y a aussi une possibilité d’obtenir Résumé du test:

couverture de code, Robotium, JaCoCo, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Résultat du test d’automatisation avec couverture de code

et identification du test non passé et pourquoi:

couverture de code, Robotium, JaCoCo, tendances en matière de test, intégration, automatisation, couverture de test, interface utilisateur, tests d'automatisation, Android, EasyQA

Résultat des tests d’automatisation avec couverture de code

Conclusions

L’utilisation des outils de calcul de la couverture de code des tests automatisés augmente la vitesse et l’efficacité desQA ingénieur.

Il n’est pas nécessaire de créer des rapports manuels et de démontrer l’efficacité de votre travail. Le client reçoit le résultat clair, le testeur renonce à l’obligation de faire rapport manuellement. Donc, les deux côtés sont satisfaits :).

Bien que les tests automatisés soient beaucoup plus compliqués que les tests manuels. Alors apprenez-le, car il est intéressant, extraordinaire et prometteur. Et nous continuerons à étudier ce sujet dans nos prochains articles!

Vous pouvez également utiliser notre EasyQA outil de gestion de test utiliser plusieurs fonctionnalités utiles pour améliorer la qualité du logiciel, telles que:

  • construire le partage
  • attraper des accidents
  • construisez directement depuis GitHub ou GitLab
  • signaler un bug de l’application et d’autres.

Enregistrez un nouveau compte gratuitement!