J'ai rédigé les remarques suivantes sur la réalisation de tests de préproduction efficaces pour ma rubrique « VOS Corner » dans la newsletter Stratus Group de décembre 1996. Elles sont toujours d'actualité, près de 13 ans plus tard.
Si je pouvais faire une seule suggestion à nos clients (une seule demande !), ce serait de veiller à effectuer un test de résistance des nouvelles versions de votre application avant de les mettre en production. J'ai récemment été confronté à plusieurs situations où le client avait déployé une application qui avait passé tous les tests fonctionnels, mais qui a rapidement échoué après sa mise en production, car elle ne pouvait pas gérer la charge de production.
Comme vous le comprenez certainement, les logiciels peuvent être imprévisibles et difficiles à tester. Savoir qu'un programme fonctionne à 10 transactions par seconde n'est pas la même chose que savoir qu'il fonctionne à 100 transactions par seconde. Savoir qu'il fonctionne avec 10 circuits virtuels n'est pas la même chose que savoir qu'il fonctionne avec 1 000 circuits virtuels. Dans tous les cas que j'ai observés, le programme fonctionnait correctement en laboratoire ou dans un environnement de test, mais échouait lamentablement en production en raison d'un défaut logiciel sous-jacent ou d'une limite de capacité. En général, lorsque j'interviens, la limite se situe au niveau du VOS et non de l'application, mais quel que soit son emplacement, l'effet est le même pour vos clients. Si vous voulez savoir si votre application fonctionnera en production, vous devez la tester comme si elle était en production.
Au fil des ans, j'ai entendu de nombreuses excuses pour expliquer pourquoi il est impossible de tester vos logiciels dans les mêmes conditions que celles de la production. Je n'en crois aucune. Vous pouvez capturer le flux de données et les fichiers de production pour les utiliser dans les tests. Vous pouvez mettre en place des générateurs de tests synthétiques pour simuler des entrées bonnes et mauvaises. Vous pouvez contourner le code d'interface sensible aux appareils afin d'alimenter les serveurs en flux de données à haut débit. Il existe de nombreuses astuces pour faire fonctionner 90 % de votre application à plein régime, même si vous ne pouvez pas la faire fonctionner à 100 % en mode test. Cessez de considérer le problème comme une simulation de la production et commencez à le considérer simplement comme un moyen d'exécuter autant de code que possible, aussi rapidement que possible. Veillez à pousser votre système à 100 % d'utilisation du processeur ; c'est là que les problèmes « intéressants » ont tendance à apparaître.
En exploitant votre logiciel d'application à son maximum, vous exploitez également VOS. Vous détecterez les problèmes de capacité dans votre laboratoire, et non en production. Vous connaîtrez vos limites de capacité et leur emplacement. Vous sortirez de votre phase de test avec une confiance bien plus grande dans la réussite du déploiement de votre application. Vous satisferiez votre patron et vos clients. N'est-ce pas là de bonnes raisons ?
