Témoignages

Pier Lorenzo BIANCHINI, Ingénieur en Assurance de Qualité de Logiciels

Formation

PeiP Nice Sophia
Cycle Ingénieur Polytech Nice Sophia, Electronique (option systèmes embarqués), promotion 2010

Entreprise/Collectivité

Sophos (Linz, Autriche)

Description du poste

Mon métier consiste à vérifier que les comportements des logiciels développés par ma société sont conformes à leurs spécifications et à détecter d’éventuelles défaillances. Je travaille au sein d’une petite équipe - nous sommes sept, dont cinq développeurs et deux responsables qualité - et nous travaillons selon la méthodologie ‘scrum’ : toutes les quatre semaines, de nouvelles fonctionnalités sont ajoutées au logiciel « de base » ; celles-ci doivent être complètement testées afin de réduire la probabilité d’inconvénients chez les utilisateurs du produit.

L’assurance de qualité de logiciels se divise principalement en deux composantes : tests manuels et tests automatisés.

  • Les tests manuels consistent par exemple à utiliser les nouveaux composants d’une interface graphique (un bouton, un menu, …) en vérifiant que les résultats de ces utilisations sont corrects aussi bien au niveau visuel que programmatique (par exemple un bouton qui modifie la couleur de l’interface graphique aura un effet visible et un autre effet au sein de la base de données, c’est-à-dire un effet invisible du point de vue de l’utilisateur).
    Tous les tests doivent être écrits et documentés, de façon à ce qu’ils puissent être répétés par la suite. En effet, surtout lorsque l’on s’approche de la date de sortie d’un nouveau logiciel, il est nécessaire d’exécuter des tests de régression : toutes les fonctionnalités doivent être re-testées, pour contrôler que l’ensemble du logiciel fonctionne correctement.
  • Les tests automatisés consistent à écrire des scripts et programmes (par exemple en Java, SQL ou en utilisant des outils qui simulent des clicks une interface graphique) qui vont exécuter les tests à la place d’un être humain. L’avantage de ces tests est qu’ils peuvent être exécutés facilement et rapidement, ce qui contribue grandement au niveau de qualité général de l’application, au dépit d’un effort initial pour la création des tests et d’une phase de mise à jour des tests lorsque ceux-ci sont désuets.

En ce qui concerne les tests manuels, il n’est pas nécessaire d’être un « pro » de l’informatique, bien que cela aide et contribue à rendre le travail plus rapide et efficace.
Il s’agit surtout de a) avoir un oeil attentif et critique, de façon à visualiser rapidement les comportements suspects du logiciel (cela pourrait être une virgule manquante dans un dialogue, ou la mauvaise exécution d’une commande pour récupérer des valeurs dans la base de données) et b) avoir une ‘créativité destructrice’, c’est-à-dire l’envie d’aller débusquer les fautes.