Le métier de Testeur Informatique

blog image

Les systèmes et les applications sont essentiels aux opérations commerciales, et c'est le travail des ingénieurs logiciels, des développeurs et des testeurs de s'assurer qu'ils fonctionnent comme prévu.

Pourtant, quand vous demandez à une équipe de développement si elle réalise des tests unitaires, elle dira toujours oui. Quand vous creusez, la signification du terme « test unitaire» est très variable : test manuel spécifié par un document, test automatisé d’IHM, classe de test et etc. Finalement peu de projets industrialisent leurs tests unitaires avec des Framework dédiés. Que faut-il savoir sur les tests des systèmes d’information (SI) ?


Ce qu’il faut savoir sur les tests

  • Les tests peuvent dans certains cas reposer sur des scénarios de tests ou des cas de tests. On parle de tests scénarisés. Mais lorsque les tests ne sont pas basés sur des scénarios prédéfinis on parle de tests exploratoires. 
  • Les tests peuvent êtres manuels ou automatisés. L’un n’exclut pas l’autre, au contraire ils sont complémentaires. Pour un résultat efficace il est recommandé d’employer les deux formes absolument ; car l’automate ne peut pas tout vérifier tel que l’humain qui est doté d’un sens critique. Toutefois, l’Intelligence Artificielle révolutionne en ce moment l’apport des tests automatisés en repoussant chaque jour les limites algorithmiques.
  • Les tests les plus exécutés en développement sont les tests unitaires et les tests systèmes.
  • Le test fonctionnel permet de tester une fonctionnalité. Il ne vérifie pas le rendu en tant que tel, dans cette tâche les fonctionnalités sont testées via des parcours en simulant les actions de l’utilisateur (clics, saisies claviers, mouvement de souris).
  • Les tests informatiques d’un SI vont plus loin que la vérification des bugs, anomalies ou le parcours utilisateur. Il y a des tests importants comme les tests de sécurité, les tests de charge ou de performance, les tests de régression/vitaux, les tests d’interface graphique etc. 

Rôle du testeur

Dans l’édition d’un logiciel, c’est le testeur qui joue un peu le rôle du contrôleur qualité. Il s’assure que chaque module, chaque fonctionnalité ou chaque parcours utilisateur implémenté par les développeurs qui ont tout programmé est conforme à ce qui a été spécifié au départ afin de fournir à l’utilisateur final la meilleure expérience possible.

Sur une appli les développeurs se chargent souvent des tests unitaires eux mêmes. Mais lorsque le projet est de grande taille, le testeur doit intervenir à ce premier niveau avec l’automatisation pour rendre les tests rapides. 
Sur un SI donné, les testeurs en général testent : les parcours utilisateurs, les fonctionnalités, les modules, la sécurité, la performance ou la qualité, la stabilité (taux de régression), la charge (mesurer la capacité maximale d’un SI)
Pour les tests automatiques, le rôle du testeur est d’écrire des scripts de tests, de les intégrer et de les exécuter. Il ne s’arrête pas là, il doit comprendre d’où vient le bug / la régression rencontré(e) et de les retranscrire aux développeurs. Le testeur doit alors avoir une très bonne compréhension du fonctionnel et de la technique de l’application afin d’accomplir sa mission.
Il doit par ailleurs se rassurer qu’il a une maitrise de la complexité du langage utilisé pour la création des scripts de test et le volume de travail requis pour planifier, produire, exécuter et maintenir les scripts. Classer les tests par niveau de complexité : simple, moyen, complexe
De la rédaction des cas de tests, à la production des rapports transmis au développeur en vue des corrections le travail du testeur se déroule dans un cycle fermé. Après que les développeurs aient traité les bugs, anomalies et améliorations demandées transmis dans le rapport de tests, ils déploient les corrections en production et c’est au testeur de reprendre les tests à nouveau. Les tests sont effectués autant de fois que nécessaire jusqu’à ce que l’objectif du test soit atteint ou que le SI se comporte de façon conforme aux spécifications ou/et aux besoins des utilisateurs. 

Les outils d’un testeur



Il est des outils de test qu’on ne présente plus et qu’un bon testeur devrait connaître et maitriser.

 Pour les tests automatisés nous voulons citer quelques outils tels que : 

  • Selenium : Open source, Il est utilisé pour effectuer des tests fonctionnels de divers modules d'application Web sur plateformes et les navigateurs. Il a l’avantage de gagner du temps grâce à la possibilité offerte d’exécuter des textes parallèles. Selenium prend en charge de nombreux langages comme Java, Ruby, C #, Python, etc.
  • Headspin : est utilisé pour les tests et les analyses de performances et de qualité d'expérience axés sur le ML pour le mobile, le Web, l'audio et la vidéo. Cet outil se distingue parce qu’il combine une infrastructure globale d'appareils hébergés dans le cloud et sur site. Par conséquent son utilisation garantie tout au long du cycle de vie du produit des expériences numériques optimales sur tous les canaux de distribution.
  • Studio de Test Telerik : conçu pour faciliter les tests automatisés, il englobe du code et des capacités sans codes pour tester le fonctionnement, l'API et la charge.
  • Testim permet d’exécuter les cas de test sur plusieurs plateformes y compris sur mobile. C’est un outil intelligent qui utilise l'apprentissage automatique pour accélérer la conception, l'exécution et la maintenance de cas de test automatisés avec ses annotations permettant de trouver les incohérences et les erreurs dans le système.
Pour les autres outils tests nous pouvons brièvement citer quelques-uns tels que :
- Xray, Testpad, TestRail pour la Gestion des tests 
- Girar, Mantis, Github pour le suivi des anomalies déclarés lors des tests
- LeadRunne, Blazemeter, Webload, JMeter, Clif, Funload ou encore Gatling sont des outils qui facilitent les tests de charge
- SoapUI pour tester les API. Ces outils aident à tester des protocoles tels que REST, SOAP, etc.
- Espresso, Apray, StaCoAn, Astra Pentest, Dexcalibur, Mobile Security Framework et etc pour les tests d’applications mobiles
- Invicti, Intruder, Probely, Burp Suite, Detectify, Nessus, AppCheck, Qualys pour les tests de sécurité d’applis web
- LambdaTest,  SauceLabs pour les tests d’outils multi-navigateurs

Envisager embrasser ce métier est une décision qu’un diplômé en informatique ne peut regretter. Comme le dit SatishShethi :
« Les tests de logiciels sont un domaine intellectuellement stimulant qui nécessite un haut niveau d'attention aux détails et un désir d'apprendre de nouvelles choses. Le cheminement de carrière dans les tests de logiciels est très dynamique et offre de nombreuses possibilités de croissance et d'avancement » 

Partager sur