Skip to content

Test unitaires et test coverage

Arthur Schamroth edited this page Dec 9, 2021 · 3 revisions

Testing

Nous avons déjà implémenté deux test unitaires concernant la connexion d'utilisateur à l'application, ainsi qu'un test unitaire concernant la bonne utilisation de la map. Toutes deux ne sont pas encore fonctionnelles puisque nous devons encore régler quelques points concernant ces deux fonctions.
Nous n'avons pas encore su réellement implémenter de tests car à ce jour, nous n'avons pas encore suffisamment de différents points du projet à traiter.
Concernant les tests unitaires, nous en avons déjà aborder deux ci-dessus mais nous allons également implémenter des test concernant le bon fonctionnement du scan sur des code barre de différents produits, l'ajout de différents points sur la map, le bon fonctionnement des différents formulaires, ... .
Nous avons prévu de réaliser un ensemble de tests d'intégration concernant chaque point important de l'application tels que l'enregistrement et la réception de collectes/dépôts de la base de données, la réception des données d'utilisateur depuis la DB, l'inscription de nouveaux utilisateurs via Google ou autre, ... .
Quelques tests end-to-end tels que le fait pour un nouvel utilisateur de pouvoir s'inscrire, recevoir un mail de confirmation d'inscription, d'avoir accès à sa position sur la carte de l'application, de pouvoir y ajouter de nouvelles collectes, de pouvoir inviter d'autres personnes, modifier ses collectes, avoir accès à ses données personnelles, ... .
Nous avons intégrer dans le cadre de notre projet un système d'auto déploiement et surtout un système de tests automatiques lors de merge d'une branche vers la branche main. Ces tests sont ainsi directement exécutés lors de ces merges via un Github Action implémenté sur notre Git, ce Github Action nous permet de vérifier que tous nos tests passent correctement et ce malgré les nouvelles entrées de commit liées à ce merge mais agit également comme un Linter et nous permet de vérifier la syntaxe globale de nos commits.
Voici l'aperçu d'une succession de tests assez simples issus de notre projet et qui s'exécute automatiquement via notre Github Action :

image

Et voici l'aperçu du terminal Git lors de l'exécution de ces tests :

image

Code Coverage

Nous n'avons pas encore de code coverage puisque nous n'avons pas encore suffisamment de tests à traiter, mais nous nous sommes renseignés et savons que des outils tels que JaCoCo ou tout simplement les outils de test coverage intégrés à android studio code qui sont très utilisés pour obtenir facilement son code coverage. Nous nous sommes finalement orientés vers la solution proposée par Android Studio pour obtenir notre code coverage. Voici un aperçu d'un résultat de test coverage sur Android Studio. Il s'agit d'un des premiers tests exécutés sur notre projet, à terme le pourcentage de coverage sera bien supérieur.

image

Ainsi, nous pouvons visualiser facilement le pourcentage de classes et de méthode déjà testées et ce qu'il nous reste à faire, il s'agit d'un outil très pratique pour facilement visualiser ce qu'il nous reste à faire.

Clone this wiki locally