Publié: Juin 2, 2023
Plus le développement logiciel évolue, plus les défis liés aux tests restent les mêmes.
Par Jonny Steiner, responsable marketing produit
Dans le remake de 2008 du film « Le Jour où la Terre s'arrêta », le professeur Barnhardt et Klaatu discutent : le docteur demande : « Il doit exister des solutions de rechange. Vous devez avoir une technologie capable de résoudre notre problème. » Klaatu répond avec désinvolture : « Votre problème n'est pas la technologie. Le problème, c'est vous. Vous n'avez pas la volonté de changer. »
C'est presque comme si les scénaristes David Scarpa et Edmund H. North avaient assisté à l'une de mes récentes réunions clients. Dans un monde où les entreprises connaissent une transformation numérique fulgurante, j'ai été sollicité à plusieurs reprises par des professionnels du développement et des tests cherchant à résoudre leurs problèmes grâce à la technologie. Ils me demandent ce que nous faisons et, immanquablement, je leur demande quel est le niveau de maturité de leur processus de test. « Nous pouvons nous adapter à votre situation », leur expliquai-je avec assurance.
Cela semble être une solution simple : se procurer un outil et opérer sa transformation numérique. Cependant, comme nous le savons en pratique, l’achat d’un nouvel outil performant exige bien plus que cela pour accompagner la transformation de votre entreprise.
Évoluer avec le temps
L'essor de l'informatique personnelle dans les années 1980 a permis d'accroître la productivité et la connectivité individuelles. La révolution internet des années 1990 a encore renforcé les liens entre les personnes et les entreprises du monde entier. Au début des années 2000, le commerce électronique a proliféré tandis que les appareils mobiles commençaient à émerger. Aujourd'hui, grâce à l'exploitation de la puissance des données et du cloud computing, la transformation numérique est devenue un élément essentiel de l'évolution des organisations. Les entreprises doivent s'adapter à leur époque et utiliser les technologies numériques pour innover, gagner en efficacité, stimuler l'innovation et améliorer l'expérience client.
Le développement, les tests et la livraison de logiciels sont devenus plus dynamiques au cours de cette période et évoluent progressivement chaque année. Le développement des méthodes de développement logiciel est motivé par la nécessité d'accélérer la mise sur le marché, dans le but d'améliorer la satisfaction client. Les méthodes agiles et DevOps Ces pratiques remplacent les méthodologies traditionnelles comme le modèle en cascade, car elles mettent l'accent sur la livraison continue, les retours d'information fréquents et une collaboration étroite entre les équipes de développement, de test et d'exploitation.
De même, la transformation numérique est devenue un enjeu majeur pour les organisations, et la technologie est désormais intégrée à tous les aspects de l'entreprise, de la planification agile au déploiement. Cependant, malgré l'évolution des tests et de la livraison des logiciels, il est crucial de reconnaître que les défis fondamentaux demeurent inchangés, malgré les progrès technologiques et méthodologiques. Ces défis persistants affectent quotidiennement les organisations internationales, et bien qu'ils ne soient pas nouveaux, les méthodes employées pour les surmonter font parfois appel à des technologies si singulières qu'elles relèvent presque de la science-fiction.
Les défis liés aux tests restent les mêmes
Cela peut paraître paradoxal, mais c'est pourtant vrai. Nombre des défis auxquels sont confrontées les organisations de test à travers le monde sont les mêmes qu'il y a huit à dix ans. Les systèmes logiciels modernes sont complexes, tandis que les cycles de développement et de test se raccourcissent sans cesse. Le cloisonnement des organisations peut entraver la communication et la collaboration entre les parties prenantes, les développeurs et les testeurs, alors même que ces équipes continuent de produire d'énormes quantités de données. La gestion de ces données et des environnements de test est un enjeu crucial, tout aussi important que de garantir une couverture de test et une évolutivité suffisantes pour répondre pleinement aux besoins. Il est donc essentiel de s'adapter à l'évolution du marché. Or, comme nous le verrons, cette évolution n'a pas autant changé qu'on pourrait le croire.
Défis de test
Test Automation
Le défi réside dans le fait que l'automatisation d'un environnement de tests continus exige des ressources qualifiées pour développer et maintenir le cadre d'automatisation. Malheureusement, la pénurie mondiale de professionnels qualifiés en assurance qualité et en tests maintient ce défi au premier plan. Parmi les autres aspects liés à l'automatisation des tests, on peut citer :
- communication L’automatisation des tests exige des spécialistes qu’ils maîtrisent la programmation, les langages de script et les frameworks d’automatisation des tests. Ces compétences sont mises à profit pour concevoir, développer et maintenir ces frameworks, tout en veillant à leur adéquation aux besoins de l’organisation.
- interactives Les compétences de l'équipe sont importantes, mais il est tout aussi important de les perfectionner en fonction des dernières technologies, outils et bonnes pratiques. La formation continue est essentielle pour que les équipes puissent exploiter pleinement le potentiel de leurs tests automatisés.
- Évolutivité – À mesure que les logiciels évoluent, les tests associés doivent évoluer eux aussi. Les scripts d'automatisation mis à jour doivent prendre en charge toute modification apportée aux applications web ou mobiles.
Le framework lui-même doit également évoluer en fonction de la complexité croissante de l'application.
Gestion de l'environnement
Le défi réside dans le fait que les développeurs et les testeurs doivent accéder à de multiples environnements pour garantir le bon fonctionnement du code dans différents scénarios. La complexité croissante des applications web et mobiles ne fait qu'aggraver le problème, rendant la gestion de ces environnements encore plus difficile. En analysant ce défi plus en détail, nous constatons que les équipes rencontrent les difficultés suivantes :
- Accéder Les développeurs et les testeurs doivent accéder aux environnements de développement, de préproduction et de production à des fins de validation du code. Chacun de ces environnements possède généralement des configurations, des bases de données et des intégrations tierces spécifiques.
- Complexité Les applications web et mobiles comportent souvent de nombreux composants et services avec leurs propres dépendances et configurations. Il est plus important que jamais de veiller à ce que tous les composants soient connectés, disponibles et configurés pour chaque environnement.
- Date La gestion des données issues des tests représente une tâche considérable. Ces données doivent être protégées et synchronisées à l'échelle de l'organisation. La gestion des dépendances et de la cohérence des données, ainsi que les migrations entre environnements, exigent rigueur et efforts.
Données de test
Le défi est simple : les tests génèrent des données, et en grande quantité. Une fois générées, ces données doivent être gérées et analysées pour être exploitables. Voici quelques points plus détaillés à ce sujet :
- Le réalisme Les données de test doivent reproduire des scénarios réalistes pour garantir leur exactitude. Disposer d'un ensemble de données diversifié est important, mais aussi complexe et chronophage. Les données de test doivent représenter l'environnement de production aussi fidèlement que possible afin de détecter efficacement les défauts.
- Sécurité Des informations sensibles se retrouvent souvent dans les données de test. Il s'agit notamment de données personnelles ou de données commerciales confidentielles. Le respect de la vie privée est primordial, tout comme la conformité aux réglementations internationales.
- Actionnabilité Les données générées par les tests automatisés continus doivent être présentées de manière à faciliter l'identification des problèmes et le suivi des résultats. Elles doivent être organisées et structurées afin d'optimiser l'analyse des résultats.
Rétroaction rapide
Toute organisation en a besoin, et pourtant, on la néglige. L'important est de permettre aux développeurs d'identifier et de corriger rapidement les défauts et de protéger le processus de développement et de test contre toute interruption. Ce qui est le plus pertinent face à ce défi, c'est :
- Identification Il est essentiel de déceler les défauts le plus tôt possible dans le processus de développement et de test. Plus on tarde à corriger un défaut, plus sa correction sera complexe et coûteuse en temps et en argent.
- Résolution Une fois détecté, un défaut doit être corrigé immédiatement. Le négliger engendrera des blocages et nuira au processus. À cela s'ajoutent les outils, les ressources et l'expertise nécessaires aux développeurs et aux testeurs pour analyser et corriger efficacement les défauts.
- Reporting En fin de compte, tout repose sur la communication. Les testeurs doivent signaler les anomalies et fournir un maximum d'informations aux développeurs. Ces derniers doivent, de leur côté, comprendre et hiérarchiser les résultats des testeurs afin de corriger rapidement les anomalies.
Changement culturel
Alors que les défis précédents sont restés globalement inchangés pendant des années, celui-ci pourrait bien être le plus récent. Pour changer une culture, il faut décloisonner les services, améliorer la collaboration et adopter une approche de développement plus itérative. Les éléments les plus pertinents face à ce défi sont les suivants :
- Silos Même au sein des organisations dotées de pratiques de tests continus bien définies, les équipes restent cloisonnées. Développeurs, testeurs et assurance qualité travaillent chacun de leur côté, tandis que les processus qu'ils partagent sont négligés. Pour décloisonner ces services, il est indispensable de partager les responsabilités et les efforts afin d'améliorer la communication.
- Communication À ce propos, une meilleure collaboration et une communication accrue sont essentielles pour définir les exigences, fixer des objectifs de qualité et mieux coordonner les efforts. Le partage des retours d'information et des connaissances est tout aussi important.
- Assistance Cela nécessite un soutien et un leadership forts de la direction. Les chefs d'équipe doivent promouvoir l'adoption des tests continus tout en fournissant aux équipes les ressources, les outils et le savoir-faire nécessaires à leur progression.
Surmonter les défis
Le défi de l'automatisation des tests passe par un investissement organisationnel dans la formation et l'amélioration des ressources d'automatisation. Toutefois, l'utilisation d'outils et de technologies d'automatisation qui facilitent leur utilisation, leur maintenance et leur évolutivité constitue un bon point de départ.
Lorsqu'il s'agit de gérer des environnements de test, il est essentiel d'adopter des pratiques de gestion efficaces. Une meilleure gestion des versions et des changements permet de garantir la cohérence entre tous les environnements. Nous aborderons plus en détail la communication, mais elle est pertinente dans le contexte de la gestion des environnements car elle peut aider les équipes de développement, de test et d'exploitation à optimiser le processus.
Cela soulève directement la question des données de test, car ces processus et environnements génèrent des volumes massifs de données. Les outils de gestion de données sont alors précieux, offrant des fonctionnalités telles que la génération, le versionnage et la synchronisation des données. Toutefois, les directives de gestion des données de test doivent être claires et les processus bien définis.
Ces données sont fournies sous forme de retours d'information rapides, plus faciles à assimiler dans un environnement Agile favorisant la collaboration et le partage de commentaires. En mettant en place les outils adéquats pour la détection et la résolution des anomalies, vous optimiserez la rapidité du cycle de rétroaction.
Tout cela contribue à un changement culturel profond au sein de l'organisation, grâce à la mise en place d'équipes transversales qui favorisent la collaboration par le biais de réunions et d'ateliers réguliers, et qui encouragent le partage des connaissances et les initiatives d'apprentissage. Bien entendu, la direction doit montrer l'exemple, mais les outils qui permettent aux utilisateurs métiers d'automatiser les tests représentent un progrès considérable. Changer la culture d'une entreprise demande du temps, de la persévérance et une communication claire, mais c'est un processus qui porte ses fruits à bien des égards.
La récompense
La constatation de l'immaturité des processus de test à l'échelle mondiale a été choquante. Nombre de grandes organisations doivent encore mettre en œuvre des tests continus et sont freinées par des processus obsolètes et des tâches manuelles. Plus surprenant encore, même au sein d'organisations matures dotées de pratiques et de processus de test automatisés, les outils de test restent fragmentés. Cela témoigne de la rapidité d'évolution du secteur et de l'obstination de certains dirigeants qui semblent incapables d'instaurer un changement de culture permettant d'unifier les outils et les processus, de décloisonner les services et d'améliorer la communication entre les parties prenantes, les développeurs et les équipes de test.
Les dirigeants d'entreprise doivent s'impliquer davantage dans leurs processus de développement et de test. Non pas en termes de responsabilité ou d'autorité globale, mais plutôt en ayant la possibilité de s'impliquer concrètement et de comprendre le point de vue de leurs équipes. Nous avons abordé la question des outils dans cet article de blog, et c'est peut-être là la clé. Tout d'abord, un outil d'analyse Cela permettra à tous les membres de l'organisation d'avoir une vue d'ensemble complète de leurs développements et tests, aidant ainsi toutes les équipes à comprendre le travail des autres. Par ailleurs, des centaines d'analyses et d'informations basées sur l'IA contribueront à prendre des décisions plus éclairées. Enfin, outils low-code qui permettent aux utilisateurs métiers de créer des tests automatisés contribuent davantage à briser les silos, à encourager la communication et à créer un changement organisationnel durable et positif.
Vous aimerez aussi
Pourquoi la plupart des échecs de demandes de financement ne sont pas détectés avant Release
Un client ouvre son application bancaire pour effectuer un virement. Le…
Appium et les frameworks mobiles modernes : comprendre les défis de l’automatisation
L'automatisation mobile a considérablement mûri au cours de la dernière décennie, en grande partie…
Le mythe du verrouillage de l'automatisation : migrer Quantum sans réécriture
Lors de mes échanges avec de nombreuses équipes d'assurance qualité d'entreprise en tant que…