Catégories
Start-up et applications

La plate-forme de test ouverte – SD Times

C'est un moment assez unique dans l'évolution des tests logiciels. Les équipes du monde entier sont confrontées à de nouveaux défis associés au travail à domicile. Les initiatives de transformation numérique exercent une pression sans précédent sur l'innovation. La vitesse est la nouvelle devise du développement et des tests de logiciels. La pénalité en cas de défaillance logicielle est à un niveau record alors que les nouvelles de pannes et de frustration des utilisateurs finaux deviennent virales sur les médias sociaux. Les outils ponctuels open source sont bons pour piloter les interfaces mais ne constituent pas une solution complète pour l'automatisation des tests.

Pendant ce temps, on demande aux testeurs d'en faire plus tout en réduisant les coûts.

Il est maintenant temps de repenser le cycle de vie des tests logiciels en vue d'une automatisation plus complète. Les organisations de test ont besoin d'une plate-forme qui permet une amélioration incrémentielle des processus, et les données conservées dans le but d'optimiser les tests de logiciels doivent être au centre de cette solution. Les organisations qui exploitent plusieurs outils de test open source ou propriétaires doivent envisager une plate-forme de test ouverte pour suivre le rythme des initiatives Agile et DevOps d'entreprise.

Qu'est-ce qu'une plateforme de test ouverte?
Une plate-forme de test ouverte (OTP) est un centre de collaboration qui aide les testeurs à suivre le rythme du changement. Il transforme les observations en action – permettant aux organisations d’informer les testeurs des changements critiques de l’environnement et du système, d’agir sur les observations pour se concentrer sur «ce» qui doit précisément être testé et d’automatiser l’acquisition des données de test requises pour une couverture de test efficace.

CONTENU CONNEXE:
Les outils de test offrent de la qualité – PAS!
La dé-évolution des tests logiciels

La caractéristique la plus importante d'une plate-forme de test ouverte est qu'elle exploite les informations essentielles à travers l'écosystème de développement et de livraison d'applications pour tester efficacement les logiciels. Au-delà de l’accès à une API, un OTP exploite les outils d’infrastructure existants d’une organisation sans provoquer de perturbations, en débloquant des données précieuses dans l’infrastructure. Un OTP permet à tout testeur (technique ou non technique) d'accéder aux données, de corréler les observations et d'automatiser l'action.

Modèle au milieu
Au cœur d'une plateforme de test ouverte se trouve un modèle. Le modèle est une représentation abstraite des transactions stratégiques pour l'entreprise. Le modèle peut représenter de nouvelles user stories en cours, des transactions système essentielles pour la continuité des activités et des flux essentiels pour l'expérience de l'utilisateur final.

Dans un OTP, le modèle est également la pièce maîtresse de la collaboration. Toutes les tâches et observations de données optimisent la valeur du modèle ou garantissent que les tests générés à partir du modèle peuvent s'exécuter sans interruption. Étant donné qu'un OTP est axé sur le cycle de vie des tests logiciels, nous pouvons tirer parti des modèles d'utilisation connus et créer des flux de travail pour accélérer les tests. Par exemple, avec un modèle stable au cœur de l'activité de test:

  • L'impact du changement est visualisé et partagé entre les équipes
  • La demande de données de test est établie par le modèle et réutilisée pour les membres de l'équipe
  • Les ensembles de données de validation sont adaptés à la logique identifiée par le modèle
  • La hiérarchisation des tests peut s'adapter de manière dynamique à l'étape du processus pour chaque équipe, en optimisant pour des vecteurs tels que la vitesse, le changement, le risque commercial, la maintenance, etc.

Les modèles permettent aux équipes d'identifier rapidement et visuellement les impacts critiques des changements. Et comme les modèles expriment une logique de test extraite d'applications ou de services indépendants, ils fournissent également un contexte pour aider les testeurs à collaborer au-delà des frontières de l'équipe.

Données conservées pour tester le logiciel
L'automatisation doit être pilotée par les données. Une infrastructure qui peut accéder aux observations en temps réel et référencer une base de référence historique est nécessaire pour comprendre l'impact du changement. L'accès aux données au cours du cycle de vie des tests logiciels n'a pas à être intrusif ou à dépendre d'une gamme complexe d'agents propriétaires déployés dans un environnement. Dans une écrasante majorité de cas d'utilisation, l'accès aux données via une API fournit suffisamment de profondeur et de détails pour réaliser des gains de productivité significatifs. En outre, l'accès aux données via une API à partir des systèmes d'infrastructure de surveillance ou de gestion actuels élimine le besoin de scripts ou de codes supplémentaires qui nécessitent une maintenance et interfèrent avec les performances globales du système.

De nombreux points de données nécessaires pour optimiser le processus de test existent, mais ils sont dispersés dans un éventail d'outils de surveillance et de gestion de l'infrastructure tels que la surveillance des performances des applications (APM), le contrôle de version, la gestion agile des exigences, la gestion des tests, l'analyse Web, les défauts Gestion, gestion des API, etc.

Une plate-forme de test ouverte organise les données pour les tests logiciels en appliquant des modèles connus et l'apprentissage automatique pour exposer le changement. Ce nouveau système d'apprentissage transforme les observations en actions pour améliorer l'efficacité des tests et accélérer les cycles de publication.

Pourquoi une plate-forme de test ouverte est-elle nécessaire aujourd'hui?
Bien que les chefs de file de l'industrie tentent de faire des tests logiciels une valeur ajoutée, le fait est qu'une écrasante majorité d'entreprises identifient les tests comme un centre de coûts. Le cycle de vie des tests logiciels est une cible riche pour l'automatisation puisque tous les coûts éliminés des tests peuvent être mis à profit pour des initiatives plus innovantes.

Si vous regardez les tendances du secteur en matière d'automatisation des tests logiciels, l'automatisation du développement de cas de test oscille autour de 30%. Si vous évaluez le niveau d'automatisation dans toutes les facettes du cycle de vie des tests logiciels, l'automatisation atteint en moyenne 20% environ. Ce faible taux d'automatisation moyen met en évidence que les tests nécessitent toujours un degré élevé d'intervention manuelle, ce qui ralentit le processus de test des logiciels et retarde donc les cycles de publication des logiciels.

Mais pourquoi les taux d'automatisation sont-ils restés si bas pour les tests logiciels alors que des initiatives comme DevOps se sont concentrées sur l'accélération du cycle de publication? Quatre problèmes majeurs ont eu un impact sur les taux d'automatisation:

  • Des années d'externalisation ont épuisé les compétences en tests internes
  • Les testeurs avaient un accès limité aux informations critiques
  • Les outils de test ont créé des silos
  • Les changements d'environnement ont entravé l'automatisation

L'externalisation des compétences de test internes épuisées
Le concept général ici est que les cadres supérieurs ont échangé une expertise interne et interne dans les processus d'affaires et de test pour la main-d'œuvre offshore, ce qui réduit les Opex. Avec cette pratique connue sous le nom de arbitrage du travail, une organisation pourrait réduire ses effectifs et transférer la responsabilité des tests logiciels à une armée de ressources externalisées formées à la tâche de tests logiciels. Ce passage à l'externalisation a eu trois principaux effets néfastes sur les tests logiciels: le modèle encourageait l'exécution manuelle des tâches, l'adoption de l'automatisation a été mise de côté et il y avait une «fuite des cerveaux» des processus métier ou fuite des connaissances.

Avec l'expansion d'Agile et l'adoption du DevOps d'entreprise, les organisations doivent exécuter le cycle de vie des tests logiciels rapidement et efficacement. Les organisations devront envisager d'intégrer étroitement le cycle de vie des tests logiciels dans le cycle de développement, ce qui mettra au défi les organisations utilisant un modèle offshore pour les tests. L'équipe doit également penser au-delà de la simple approche ascendante des tests et réinventer le cycle de vie des tests logiciels pour répondre aux demandes croissantes de l'entreprise.

Les testeurs avaient un accès limité aux informations critiques
Le plus grand défi auquel sont confrontées les personnes responsables des tests de logiciels est peut-être de rester informé des changements. Il peut s'agir de modifications d'applications ou de services dépendants en fonction des exigences, de modifications des modèles d'utilisation ou de modifications tardives du plan de version qui ont un impact sur la capacité des testeurs à réagir dans les délais requis.

Il est intéressant de noter que la plupart des données nécessaires aux testeurs pour faire leur travail sont disponibles dans les outils de surveillance et de gestion de l'infrastructure tout au long de la production et de la pré-production. Cependant, ces informations ne sont tout simplement pas agrégées et optimisées à des fins de test logiciel. L'accès aux API et les avancées dans la gestion et l'analyse du big data modifient cette dynamique en faveur des testeurs.

Bien que chaque organisation soit structurellement et culturellement unique, le point commun trouvé parmi les équipes Agile est que la pratique des tests de logiciels est devenue cloisonnée. Le silo est généralement limité à l'équipe ou limité à une seule application qui peut être créée par plusieurs équipes. Ces contraintes créent des barrières car les tests doivent s'exécuter sur des architectures de système en composants et distribuées.

L'accès omniprésent aux meilleurs outils open source et propriétaires a également contribué à ces silos. Les outils ponctuels sont devenus très bons pour conduire des tests automatisés. Cependant, la logique de test est devenue piégée en tant que scripts dans un éventail d'outils. Donner aux équipes autonomes la liberté d'adopter un large éventail d'outils a un coût: un degré important de redondance, une compréhension limitée de la couverture entre les silos et une maintenance de test élevée.

La bonne nouvelle est que les outils ponctuels (à la fois open source et propriétaires) sont devenus fiables pour piloter l'automatisation. Cependant, ce qui manque aujourd'hui, c'est une plate-forme de test ouverte qui aide à accroître la productivité des équipes et de leurs outils de test indépendants.

Les changements d'environnement ont entravé l'automatisation
Remarquablement, l'automatisation développement des tests oscille à environ 30% mais l'automatisation exécution des tests est la moitié du taux à 15%. Cela signifie que les tests conçus pour être automatisés ne seront probablement pas exécutés automatiquement – une intervention manuelle est toujours nécessaire. Pourquoi? Il faut plus que l'automatisation pour piloter un test d'automatisation et produire des résultats. Pour qu'un test automatisé s'exécute automatiquement, vous avez besoin:

  • Accès à un environnement de test
  • Un environnement propre, configuré spécifiquement pour la portée des tests à exécuter
  • Accès aux données de test conformes
  • Assertions de validation synchronisées pour les données de test et la logique

Par conséquent, les personnes responsables des tests doivent connaître les points de données d'environnement plus larges situés dans tout l'environnement de pré-production. Sans automatiser les sous-tâches tout au long du cycle de vie des tests logiciels, l'automatisation des tests continuera d'avoir des résultats anémiques.

Une plateforme de test ouverte égalise les règles du jeu
Malgré l'évolution entravée de l'automatisation des tests, les testeurs et les ingénieurs en développement logiciel en test (SDET) sont appelés à en faire plus que jamais. À mesure que les systèmes deviennent de plus en plus distribués et complexes, les défis associés aux tests de composés. Pourtant, les mêmes personnes sont sous pression pour prendre en charge de nouvelles applications et de nouvelles technologies – tout en faisant face à une nette augmentation de la fréquence des modifications et des versions des applications. Quelque chose doit changer.

Une plate-forme de test ouverte offre aux testeurs de logiciels les outils d'automatisation des informations et des flux de travail pour rendre les outils de point de test open source et propriétaires plus productifs à la lumière du changement constant. Un OTP fournit une couche d'abstraction en plus des outils de test ponctuel des équipes, optimisant les sous-tâches nécessaires pour générer des scripts de test efficaces ou des tests sans code. Cette approche donne aux organisations un degré incroyable de flexibilité tout en réduisant considérablement le coût de construction et de maintenance des tests.

Une plate-forme de test ouverte est un élément essentiel de la rapidité et de l'efficacité des tests. Le Bureau du Procureur suit un modèle normatif pour aider une organisation à améliorer continuellement le cycle de vie des tests logiciels. Ce modèle consiste à «informer, agir et automatiser». Un OTP offre une valeur immédiate à une organisation en donnant aux équipes l'infrastructure manquante pour gérer efficacement le changement.

La valeur d'une plateforme ouverte

Informez l'équipe lorsque le changement se produit
Qu'est-ce qui retarde les tests logiciels? Changement, en particulier les changements tardifs qui n'ont pas été communiqués rapidement à l'équipe responsable des tests. L'un des principaux facteurs de différenciation d'une plate-forme de test ouverte est la capacité d'observer et de corréler un ensemble diversifié de points de données et d'informer l'équipe des changements critiques en tant que le changement se produit. Un OTP analyse automatiquement les données pour alerter l'équipe des changements spécifiques qui ont un impact sur le cycle de publication actuel.

Agir sur les observations

Identifier et communiquer le changement est d'une importance cruciale, mais une plateforme de test ouverte a le plus d'impact lorsque les testeurs sont amenés à agir. Dans certains cas, les changements observés peuvent mettre à jour automatiquement la suite de tests, la priorité d'exécution des tests ou les sous-tâches environnantes associées aux tests logiciels. Les optimisations courantes telles que la priorisation basée sur les risques ou la priorisation basée sur le changement de l'exécution des tests peuvent être automatiquement déclenchées par le pipeline CI / CD. D'autres déclencheurs pour agir sont présentés dans l'interface basée sur un modèle sous forme de recommandations basées sur des algorithmes logiciels de test de logiciels connus.

Automatisez les tâches de test logiciel
Lorsque les gens parlent d '«automatisation» dans les tests logiciels, ils parlent généralement de la tâche d'automatisation de la logique de test par rapport à une interface utilisateur ou une API. Bien sûr, la portée des tests qui peuvent être automatisés va au-delà de l'interface utilisateur ou de l'API, mais il est également important de comprendre que la portée de ce qui peut être automatisé dans le cycle de vie des tests logiciels (STLC) va bien au-delà du test lui-même. Les modèles d'automatisation peuvent être appliqués à:

  • Analyse des besoins
  • Planification des tests
  • Données de test
  • Provisionnement d'environnement
  • Hiérarchisation des tests
  • Exécution des tests
  • Analyse de l'exécution des tests
  • Optimisation du processus de test

Principaux avantages commerciaux d'une plateforme de test ouverte
En automatisant ou en augmentant les fonctions d'automatisation dans le cycle de vie des tests logiciels, une plate-forme de test ouverte peut offrir des avantages commerciaux significatifs à une organisation. Par exemple:

  • L'accélération des tests améliorera les cycles de publication
  • Rassembler des données auparavant cloisonnées permet une vision plus complète
  • Augmenter la vitesse et la cohérence de l'exécution des tests renforce la confiance dans le processus
  • Identifier rapidement les problèmes améliore la capacité
  • L'automatisation des tâches répétitives permet aux équipes de se concentrer sur une optimisation à plus forte valeur ajoutée
  • L'élimination du travail banal permet aux humains de se concentrer sur des problèmes d'ordre supérieur, ce qui permet une plus grande productivité et un meilleur moral.

Les outils de test logiciel ont évolué pour fournir une «automatisation brute» fiable. Cela signifie que la capacité à piloter automatiquement une application est durable avec des outils open source ou commerciaux. Si vous examinez les recherches publiées sur le secteur, vous constaterez que les organisations de test de logiciels rapportent des taux d'automatisation des tests (en moyenne) de 30%. Ces mêmes organisations rapportent également que l'exécution automatisée des tests est (en moyenne) de 16%. Cet écart entre la création d'un test automatisé et la possibilité de l'exécuter automatiquement réside dans les nombreuses tâches manuelles nécessaires à l'exécution du test. Les tests de logiciels seront toujours un retard dans le processus de publication si les organisations ne peuvent pas combler cet écart.

L'automatisation n'est pas aussi simple que l'application de techniques automatisées pour chacun des sous-processus du cycle de vie des tests logiciels. Il y a vraiment trois défis fondamentaux à relever:

  1. Les testeurs doivent être informé sur les changements qui ont un impact sur les efforts de test. Le nécessite d'interroger l'ensemble des outils de surveillance et d'infrastructure et de conserver les données qui ont un impact sur les tests.
  2. Les testeurs doivent être en mesure d'agir sur les changements le plus rapidement possible. Cela signifie que les règles métier augmenteront automatiquement le modèle qui pilote les tests, ce qui permettra à l'équipe de tester plus efficacement.
  3. Les testeurs doivent être capables d'automatiser les sous-tâches qui existent tout au long du cycle de vie des tests logiciels. L'automatisation doit être flexible pour répondre aux besoins de chaque équipe, mais suffisamment simple pour apporter des changements incrémentiels à mesure que l'environnement et l'infrastructure changent.

Les tests logiciels doivent commencer leur propre parcours de transformation numérique. Tout comme les initiatives de transformation numérique ne sont pas des initiatives d'outils, la transformation vers des tests continus durables nécessitera un changement de mentalité. Ce n'est pas shift-gauche. Ce n'est pas shift-right. C'est vraiment la première étape vers la gouvernance de la qualité des logiciels. Les organisations qui exploitent plusieurs outils de test open source ou propriétaires doivent envisager une plate-forme de test ouverte pour suivre le rythme des initiatives Agile et DevOps d'entreprise.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *