Software tester job definition

Le métier de testeur logiciel est en pleine évolution, et possède de multiples facettes. Les postes dans les entreprises sont variés et les titres cachent des profils très différents : analystes, concepteurs, testeurs, automaticiens, ingénieurs de test, ingénieur qualité, testeur agile etc… avec parfois et pour chacun de nous une compréhension différente de ce qui se cache derrière ces intitulés.

Le métier de Testeur logiciel
« test manuel »
Source : https://www.qualitesoft.com

La plupart des interlocuteurs que j’ai pu avoir, plus ou moins au fait de l’étendue et de la variété des activités de test dans un cycle de développement, font tout de suite le lien avec le déroulé répétitif de tests manuels. Le métier du test est en effet souvent (et à tort) associé à des tâches ennuyeuses et répétitives, consistant à suivre des procédures de test définies par un responsable de test ou un test lead, pour produire un rapport de test détaillant le statut OK ou KO de chaque cas de test. C’est en fait (selon moi et je sais que les avis peuvent différer) une conception dépassée du test logiciel, même si encore plébiscitée par certains : l’approche de validation, incluant la non régression, exclusivement manuelle. C’est un très bon modèle pour celui qui vend cette prestation mais nettement moins pour celui qui doit l’acheter !

Ce modèle présente différents inconvénients :

  • Par nature même de la non régression, dès que la phase de validation (souvent appelée à tort « recette ») est terminée et qu’une nouvelle version sort, on doit recommencer ! Il est donc impossible de véritablement rentabiliser ses investissements sur le long terme.
  • Les délais de validation sont de plus en plus longs et cela ralentit les livraisons : le piège pourrait être de croire qu’on a alors simplement besoin de plus de testeurs pour aller plus vite !
  • L’aspect humain est non négligeable : peu de gens s’épanouissent pleinement et de façon durable à répeter encore et encore les mêmes tâches. D’ailleurs, les machines font ça très bien et avec le sourire !

Ces activités de test restent pertinentes si le besoin est ponctuel, pour sécuriser une unique version d’un produit ou évaluer la qualité globale d’un projet touchant à sa fin. En revanche, c’est pour le moins difficile de s’inscrire dans cette démarche chez un éditeur qui produit de façon continue des fonctionnalités, dans des systèmes logiciels à la complexité croissante et en procédant à des livraisons de plus en plus fréquentes. Chez AT Internet, nous accordons une grande valeur aux tests manuels, mais dans un cadre bien spécifique que je détaille plus loin dans cet article (l’acceptation).

C’est pour cela que j’ai décidé d’écrire cet article : faire la lumière, en toute transparence, sur ce que peut être le quotidien d’un « ingénieur test » dans notre entreprise et les compétences rares qui sont nécessaires pour mener à bien cette mission efficacement.

La mission du testeur chez AT Internet

Test logiciel automatisé
« test automatisé »
Source : https://www.qualitesoft.com

Le plus simple est de partager avec vous le contenu même de la mission du testeur, telle qu’elle est définie dans l’entreprise :

« Contribuer à la qualité des produits mis à disposition des clients par la validation automatisée des nouvelles fonctionnalités et la détection continue des régressions sur les fonctionnalités existantes. »

Cette mission se décompose en un certain nombre d’activités parmi lesquelles :

  • la conception et l’implémentation de tests (automatisés bien sûr)
  • la gestion des outils et environnements de test
  • le reporting et suivi des anomalies détectées

…le tout en étroite collaboration avec les développeurs. Les testeurs sont d’ailleurs membres à part entière des équipes Agiles de développement.

Les savoir-être : indépendant, constructif et critique

Le testeur doit avant tout avoir des compétences non techniques, des « savoir être » indispensables.

  • Il doit faire preuve d’objectivité, d’indépendance et d’un sens du client très développé : il n’est pas question de se laisser convaincre qu’un bug détecté est en fait « normal » s’il a un réel impact négatif chez le client !
  • On attend également du testeur de grandes qualités dans sa communication avec les développeurs : souvent porteur d’un message peu plaisant, il est important de veiller à communiquer des faits de manière constructive, en vue d’améliorer le produit et ne pas céder au piège qui consisterait à critiquer le code produit par un collègue ou un autre !
  • Tout en restant positif dans son attitude, il doit tout de même poser un regard critique sur le produit qu’il teste et surtout ne pas faire confiance au code : des bugs s’y trouvent cachés, reste à les dénicher ! C’est ce que j’appelle le « pessimisme professionnel » du métier : rester optimiste tout en décortiquant l’application pour y dénicher les problèmes et autres mauvaises nouvelles qu’elle peut contenir. Et ce n’est pas toujours évident !

Les savoir-faire du testeur

Pour pouvoir s’inscrire efficacement dans la stratégie de notre entreprise, le testeur doit disposer des compétences fondamentales du test, validées par exemple par le niveau ISTQB Fondation (même si cela n’est pas obligatoire). Ces compétences lui permettront d’analyser efficacement des fonctionnalités, d’établir des plans de test pertinents, concevoir et implémenter de bons cas de test et éviter les pièges dans lesquels les néophytes pourraient facilement tomber, comme par exemple avoir des tests dépendants les uns des autres, des tests qui valident finalement la même chose ou trop de fonctionnalités d’un seul coup… Ces conceptions efficaces pourront se faire en utilisant des techniques bien connues dans le métier : analyse des valeurs limites, classes d’équivalence, couverture des chemins ou autres tables de décisions par exemple.

Mais ce n’est pas tout !!

Et je dois bien avouer que c’est là que ça se complique un peu pour nous : nous avons besoin pour la mise en place de nos tests de développeurs avant tout ! En effet, pour poursuivre notre avancée dans l’intégration continue de nos produits et compte tenu du volume et du rythme de nos livraisons, nous avons un fort besoin d’automatisation de nos tests. C’est pour cela que nos testeurs sont aussi des développeurs : ils mettent leurs compétences au service de la qualité du produit et des autres développeurs, via la mise en place d’outils et de feedbacks courts, leur permettant de garder une bonne visibilité sur la qualité du code qu’ils produisent.

Le rôle de chacun

Processus test logicial

« La qualité est l’affaire de tous ! » disait W.E. Deming. En effet, chacun a un rôle à jouer et ce sujet n’est pas réservé aux testeurs ou à une équipe isolée qui serait dédié à cet aspect de nos développements (nous n’avons d’ailleurs pas de telle équipe). Chacun doit prendre sa part avec une répartition des rôles et responsabilités, en fonction des niveaux de test :

  • Tests unitaires/intégration de composants (automatisés)
    • Les développeurs
  • Tests système / intégration de systèmes (automatisés)
    • Les testeurs (ou les développeurs quand cela est nécessaire)
  • Tests d’acceptation (ou « recette ») (manuels)
    • Les représentants du produit (Product Owners, Product Managers)

Dans certains cas et par choix stratégique, nos équipes organisent parfois des sessions de test manuel impliquant différents profils : pour sécuriser la livraison d’une application trop peu couverte par des tests automatisés ou pour la livraison de fonctionnalités à fort niveau de risque métier. Nous avons, dans ces cas-là, besoin d’une recette ponctuelle étendue, sans que cela ne justifie la mise en place de systèmes complexes de validation.

Pourquoi investir dans le test automatisé ?

Nous sommes inscrits sur la durée dans une relation de confiance avec nos clients. Nous devons donc absolument être vigilants à la qualité de nos produits à moyen et long terme, avec les problématiques de gestion de la dette technique, d’entropie croissante des systèmes, du coût total de la propriété (Total Cost of Ownership) que les testeurs connaissent bien.

ROI software testing automation
Source : http://www.fsc-consultants.de/

Comme je l’indiquais dans cet article, nous avons fait le choix de transformer nos coûts liés à la qualité (ou plutôt à la non-qualité) en investissements afin de capitaliser petit à petit pour atteindre les objectifs suivants :

  • Gagner du temps
  • Sécuriser les livraisons
  • Avoir plus de confort de développement
  • Améliorer notre planification
  • Faire des économies

Nos testeurs viennent apporter leur expertise pour atteindre ces objectifs et nos besoins en ce domaine sont importants.

Le recrutement

Le recrutement n’est pas toujours évident à cause principalement du manque de formation aux métiers du test de nos jeunes diplômés. On ne trouve encore que trop rarement des modules ou cursus liés aux tests et à l’automatisation dans les écoles formant nos ingénieurs malgré une demande grandissante de profils compétents dans les entreprises.

Bien souvent, les testeurs sont développeurs de formation et ont découvert le test un peu par hasard ou, à l’inverse, ont commencé par un parcours au service des clients (fonctions de support, analyse de problématiques etc…) et ont acquis ou confirmé des compétences en développement.

Ne pouvant facilement dénicher le fameux testeur-développeur-analyste-automaticien, nous mettons l’accent sur les savoir-être : il est en effet plus facile d’apporter de la formation aux principes du test logiciel ou sur le développement de scripts à un candidat qui dispose d’un bon esprit d’analyse, motivé, rigoureux et logique que d’apporter cette rigueur à un spécialiste du développement peu regardant. Cela dit, nous ne sommes bien sûr pas contre rencontrer des développeurs consciencieux qui souhaitent mettre leurs compétences au service de l’automatisation des tests ! Et vous, comment vous situez-vous ?

Author

Fort de plus de 10 ans d’expérience en stratégie et implémentation de tests logiciels en environnement Agile, Alexandre est en charge de l’industrialisation des développements chez AT Internet. Son challenge au quotidien : accompagner nos équipes de développement dans la mise en place d’outils et méthodes afin de garantir à nos clients des livraisons régulières et de qualité.

Comments are closed.