Test logiciel : la force de l’intégration continue

DECRYPTAGE


Le test logiciel est une activité souvent méconnue, parfois négligée mais ô combien importante. Avec le temps, les éditeurs ont fini par comprendre l’importance stratégique et financière de cette activité. L’avènement de l’agilité au sein des équipes de R&D et notamment chez VDoc Software a contribué à faire intervenir les tests de plus en plus tôt dans le cycle de développement des logiciels


Le test logiciel est une activité souvent méconnue, parfois négligée mais ô combien importante. Les études le montrent les unes après les autres. Celle de Pierre Audoin Consultants, d’octobre 2010, souligne par exemple que le marché du test applicatif est en pleine croissance. Avec le temps, les éditeurs ont fini par comprendre l’importance stratégique et financière de cette activité. Le test c’est l’arme anti-bug, la véritable assurance qualité contre les problèmes, les pannes ou les dysfonctionnements.
 
Un investissement largement rentable 
Le test, en réalité c’est bien plus que cela : loin d’être une perte de temps, c’est au contraire un investissement particulièrement rentable. On estime en effet que le coût de correction d’une erreur lors des phases de développement est cent fois moindre que le coût du même bug pour un produit en production.
La démonstration est particulièrement simple à comprendre : lors des phases de développement, les allers-retours se font entre le testeur et le développeur ; en production, il faut intégrer le temps du support qui peut être important car il faut reproduire et diagnostiquer la panne, proposer le cas échéant une solution de comportement voire planifier la réalisation d’un correctif qui nécessitera le concours du développeur et donc du testeur !

L’avènement de l’agilité au sein des équipes de R&D et notamment chez VDoc Software a contribué à faire intervenir les tests de plus en plus tôt dans le cycle de développement des logiciels. On parle désormais d’intégration continue. Les avantages sont indéniables :
  • vérification fréquente du code, et de sa bonne compilation,
  • réalisation des tests unitaires et / ou fonctionnels, voire tests d'intégration

  • mise à disposition d'une version testable comportant les dernières modifications du code  
  • création de rapports périodiques exprimant la qualité du code, la couverture des tests. 

L’ensemble des opérations de test se déroule depuis le premier jour de développement jusqu’à la commercialisation de la version et même jusqu’à son retrait du marché
 
Les tests débutent avec le développement
Chez VDoc Software, la chasse au bug est ouverte et désormais l’artillerie lourde entre en action dès les premières heures. Pour cela, il faut tout d'abord partager les sources du projet. Cela se fait via un serveur de Gestion de Contrôle des Sources ou plusieurs fois par jour les équipes de développement postent (committent) régulièrement les modifications apportées au code. L’intégration continue peut démarrer !
 
Toutes les nuits, le code est compilé de manière à « assembler » les versions en cours de développement comme celles en maintenance corrective. Ce travail automatique de compilation donne lieu à l’établissement d’un rapport validant ou pas le fait que l’intégration se soit déroulée correctement. Le code en lui-même fait l’objet d’une attention particulière. En plus des classiques relectures de code, à intervalles réguliers, celui-ci est audité par une solution spécialisée de manière à repérer les lignes en doublon et la complexité éventuelle.
 
Une fois la build (version en cours de développement) compilée, des scripts automatiques vont permettre de déployer sous forme de virtual machine, les versions en cours de développement, dans les différents environnements (Oracle, SQL Server, MySQL…). Cette opération réalisée également, toutes les nuits, doit permettre de valider que la version en cours fonctionne correctement sur les différentes bases de donnée supportées.
 

Développer les tests en même temps que le produit
En même temps que le développeur code, il va également développer des tests unitaires qui vont être testés, exécutés et historisés toutes les nuits sur l’ensemble des environnements. Tous les matins, les rapports sont analysés par les différentes équipes et, si besoin, les corrections sont immédiatement apportées. L’historisation de ces tests permet d’identifier les éventuelles régressions et de remonter jusqu’à la date où le code a été modifiée.
Des machines sont également dédiées à la migration continue. La version courante (en cours de développement) et les dernières versions de maintenance sont migrées automatiquement. Des tests fondés sur des scénarios vont, là encore, être exécutés toutes les nuits. Ce dispositif permet ainsi d’être très réactif et de garantir aux clients existants une migration le plus indolore possible.
 
En plus des tests unitaires, des tests de performance (montée en charge et volumétrie) sont lancés régulièrement afin de vérifier la stabilité du produit. Grace à la plate-forme Neoload il est possible de produire comparatifs entre les versions des produits et au final d’améliorer les temps de réponses. 

Un véritable portail métier
L’intégration continue est intimement liée aux méthodes agiles de développement ; elle ne peut être réellement efficace qu’à partir du moment où elle s’appuie sur des outils. De ce point de vue, la R&D VDoc Software est particulièrement armée. C’est un véritable portail qualité qui a été mis en place ave l’utilisation de VDoc pour déclarer, suivre et tracer les bugs.
 
Et demain le test ?
Du point de vue du test, la version 2011 marque, comme on vient de le voir, une incontestable rupture avec la mise en place de l’intégration continue. La version 2012 et les suivantes viendront encore enfoncer le clou. En effet, les prochains développements seront de plus en plus « pilotés » par les tests. Ainsi lors des phases  «d’homologation fonctionnelles et ergonomiques», les testeurs travailleront de concert avec l’ensemble des équipes de développement. Les tests seront alors rédigés bien en amont et permettront de guider les développeurs dans le codage des tests unitaires. Les bugs et les dysfonctionnements devraient avoir encore plus de mal à passer à travers les mailles de l’étroit filet tendu !
  
A propos des bugs, jamais autant de bugs n’ont été détectés. Inquiétant ? Bien au contraire, c’est autant de bugs qui ne sont pas chez les utilisateurs. Incontestablement une bonne nouvelle.