Depuis des décennies, IBM i a acquis sa réputation de plateforme robuste. Pourtant, dans un environnement de développement actuel en constante évolution et axé sur le client, la stabilité ne suffit plus. Les applications doivent également être rapidement adaptables, sécurisées et résilientes, sans compromettre la qualité. Cette exigence impose de nouvelles pressions aux équipes de développement, notamment celles qui s'appuient encore sur des pratiques traditionnelles.
Un domaine où cette tension est particulièrement ressentie est celui des tests. D'aussi loin que je me souvienne, j'ai toujours observé que de nombreux clients sous-estimaient ou reléguaient les tests sérieux aux dernières étapes de la livraison. Cependant, les temps changent et les tests commencent à occuper une place centrale chez nombre de nos clients. Avec la modernisation des équipes IBM i, les tests ne sont plus un simple accessoire: ils sont devenus un élément essentiel de la santé et de la rapidité de livraison des logiciels.
L'adoption croissante, quoique plus lente que prévu, des pratiques Agile, DevOps et CI/CD, même au sein des environnements IBM i traditionnels, contribue à rehausser progressivement l'importance des tests. Ces méthodologies modernes visent à accélérer la livraison, mais exigent également une plus grande cohérence et des normes de qualité de code plus élevées.
Malheureusement, de nombreux services IBM i continuent de s'appuyer sur des tests manuels, des processus d'assurance qualité anecdotiques, voire des vérifications par l'utilisateur final. Ces approches sont lentes, sujettes aux erreurs et incapables de supporter des changements continus. Conséquences: des versions sujettes aux bugs, des régressions inattendues et des retards dans la livraison de valeur.
Dans le développement logiciel moderne, les tests unitaires constituent une exigence de base. Mais sur IBM i, notamment dans les environnements RPG et CL, les tests unitaires sont encore une pratique émergente. Les raisons sont compréhensibles: historiquement, la plateforme manquait de frameworks de test, et de nombreux programmes RPG sont étroitement couplés et difficiles à isoler pour les tests.
Mais les choses évoluent. Des outils de test légers pour RPG existent désormais. Plus important encore, un changement de mentalité s'opère: les développeurs IBM i commencent à adhérer à l'idée qu'un code testable est un code de meilleure qualité: plus facile à maintenir, plus facile à refactoriser et plus sûr à déployer.
Si c'est difficile à tester, c'est probablement difficile à maintenir.
Les tests unitaires offrent un filet de sécurité lors du refactoring, favorisent la prévention des régressions et améliorent l'intégration des nouveaux développeurs. À mesure que les entreprises modernisent leurs applications IBM i, les tests unitaires offrent un moyen pratique d'améliorer progressivement la fiabilité du code existant sans le réécrire entièrement.
Le mouvement de « shift left » (changement de direction vers la gauche), qui touche l'ensemble du secteur et consiste à intégrer les tests (et la sécurité) plus tôt dans le cycle de développement, est largement considéré comme une bonne pratique. Mais cela a un coût. J'ai constaté, presque sans exception, que la responsabilité de l'assurance qualité incombe de plus en plus aux développeurs, qui doivent désormais écrire, exécuter et maintenir les tests en plus de fournir de nouvelles fonctionnalités.
Les dirigeants négligent souvent cette réalité. Sans investissement dans l'automatisation, cette évolution ne fait qu'augmenter la charge de travail des développeurs et créer des goulots d'étranglement. Les outils de test automatisés, les harnais de test et les pipelines sont essentiels pour optimiser les efforts de qualité sans ralentir la livraison.
Le message est clair: si vous vous déplacez vers la gauche, vous devez automatiser.
L'automatisation des tests ne signifie pas automatiser tous les tests possibles. Il s'agit plutôt d'automatiser systématiquement les tests les plus rentables:
Les plateformes DevOps modernes et les outils de script (tels que Jenkins, GitHub Actions ou les solutions DevOps dédiées à IBM i comme Rocket DevOps) peuvent déclencher ces tests dans le cadre de votre pipeline de livraison. Associée au contrôle de version et à l'automatisation des builds, l'automatisation des tests constitue la pierre angulaire d'un processus de livraison résilient.
Adopter les tests sur IBM i n'est pas seulement un défi technique ; c'est souvent un défi culturel. De nombreuses équipes fonctionnent encore en silos, où l'assurance qualité est séparée du développement et où les tests sont réactifs plutôt que proactifs.
Pour surmonter cela:
Pour les équipes IBM i débutantes, la transformation des tests peut paraître intimidante. Mais ce n'est pas forcément tout ou rien. Voici une voie réaliste:
Les tests modernes ne visent pas la perfection, mais la création de boucles de rétroaction qui aident les équipes à détecter les problèmes en amont, à réduire le travail manuel et à déployer en toute confiance. Pour les équipes IBM i qui modernisent leurs pratiques de développement, des tests robustes constituent la première étape vers la résilience et l'agilité.
Naviguer dans le paradoxe de la modernisation
Rocket® DevOps 11.1: Définir le rythme pour 2026
Les complexités cachées du déploiement de nouvelles versions sur IBM® i
