Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Tester seul, c'est perdre la bataille

Par Herminio Vazquez

9 juin 2020

6  min lire

Mais il y a peut-être une chose qui peut tout changer…

Herminio Vázquez, consultant IOVIO, explique comment il a travaillé avec ING Mortgages Netherlands pour les aider à moderniser la livraison de leurs applications financières en prenant le contrôle total de leurs environnements de test avec la virtualisation des services.

Il semble que le secret d'une équipe de développement de logiciels réussie est de livrer avec compétence, en continu et dans les délais. On dirait que la transformation numérique est différente de la nature, un processus où le temps suit un rythme différent. Au lieu de cela, c'est comme un train qui n'a pas d'arrêts. Et si vous le manquez, la partie est terminée.

Que se passe-t-il?

Encore et encore, nous entendons les mots, les délais de commercialisation, une expérience client plus riche, plus de fonctionnalités, des capacités étendues et des parcours harmoniques. En résumé, changez. Tout le monde est dans le domaine du changement, dans le changement - rapide affaires pour être précis. Le changement est devenu de plus en plus important pour les organisations et leurs équipes.

Le changement est devenu si omniprésent que les environnements informatiques fonctionnent avec les équipes Run and Change. Si les budgets le permettent, un groupe d'expérimentation où de nouvelles idées et innovations prennent place.

Le changement est partout

La raison pour laquelle le changement est pertinent, c'est que grâce au changement, nous ouvrons de nouvelles opportunités, découvrons de nouvelles approches et finissons par évoluer. Cependant, le changement entraîne également des incertitudes et des risques. Le business du risque est un article en soi, mais pour faire simple, il y a un vieil ami qui nous aide à gérer le changement et les risques, vers les tests.

Les tests nous permettent de valider nos attentes, de confirmer que nos fonctionnalités, parcours clients, épopées, histoires ou exigences (en fonction de votre méthodologie) sont adaptés et complets.

Mais quelque chose transforme la valeur des tests au sein des organisations d'un avantage et d'un bouclier de réputation en une activité sans fin qui ralentit les équipes.

La fin des tests tels que nous les connaissons

Il est bien connu que le test seul est inutile s'il ne tient pas compte d'une gestion de l'environnement bien structurée et orchestrée, suivie d'une prise en charge chirurgicale et méthodique du test. data. Cependant, la plupart des équipes se concentrent uniquement sur l'art de choisir les scénarios couverts lors des tests. Couverture de code, selon l'humble avis de cet auteur, reste l'un des indicateurs clés de performance les plus connus des équipes de test.

Cela conduit les équipes à opter pour différentes approches qui leur permettent d'articuler le processus de test à l'aide de solutions qui font face au changement. Ensembles d'outils et méthodes modernes pour les solutions de données comme moyen de rattraper le train de la transformation numérique.

Le marché est désormais inondé d'apprentissage automatique.solutions, intelligence artificielle-alimenté, automatisation robotiqueactivé, etc., pour dire que grâce à la collecte et à la projection de données dans des dimensions inférieures, il est possible de faire des inférences qui rendent les tests plus fiables et moins longs.

Pris au piège du minimum local: vos environnements

Les équipes sont piégées dans un minimum local avec des difficultés à faire face aux flux de travail parallèles, aux environnements limités et aux contraintes de données. Si ces phrases résonnent avec vos sentiments concernant les tests dans votre organisation, ne vous sentez pas mal. Tu n'es pas seul.

Si votre désir est de sortir de cette boucle vicieuse, cet article est fait pour vous. La théorie de la complexité, nos grands-parents, proverbes et biscuits de fortune nous apprennent que briser des problèmes complexes en plus petits morceaux est une bonne stratégie pour les surmonter, vous vous souvenez? Diviser et conquérir.

Commençons par le problème d'environnement: la route typique vers la production est liée à l'autoroute dev-test-acceptation-production (DTAP). Si nous sommes honnêtes, déployer des logiciels dans 2020 ce n’est pas grand-chose. En fait, vous devriez déployer des environnements (peut-être que vous l'êtes déjà) dans la vague de conteneurs.

Figure 1: Ne restez pas coincé sur l'autoroute Dev-Test-Acceptance-Production.

Non, les vrais problèmes sont les environnements externes et les dépendances de données dont votre système ou application a besoin. Les solutions d'information reposent sur un vaste catalogue de services, internes ou tiers, avec une multitude de protocoles et une grande variété de données dans chacun d'eux.

Le problème en réalité réside ici, comment découpler les dépendances dures sur les données et les environnements externes?

Bienvenue: Data Orchestration

Si ce terme est nouveau pour vous, je parie que les seules références que vous trouverez concernent extraire, transformer, charger (ETL) ou lié au cloud sujets. Complètement en dehors du contexte de cet article.

En réalité, orchestration des données est avec nous depuis longtemps. Peut-être sous un parapluie de noms et de produits différents.

Commençons par le premier, moquettes et talons. Très probablement, vous avez entendu ces termes, car ils font référence au processus précoce de création d'interfaces qui permettent la poursuite des processus métier en raison de dépendances externes. Ces dépendances sont doubles: la logique (environnement / application) et les données qu'elles fournissent à votre système.

Développer des simulations est utile pour les tests unitaires. Il valide les contrats et protocoles de données à un niveau très bas. Cependant, vous ne pouvez pas contrôler les environnements de test en utilisant simplement des simulations dans vos tests de données. Vous avez besoin d'une technologie plus sophistiquée.

Les systèmes d'entreprise reposent sur des systèmes plus petits dotés de compétences, de géographies et de technologies multiples. Vous êtes peut-être dans le roues hybrides monde.

Deux acteurs principaux de votre organisation ont un argument de fournisseurs. L'option la plus sûre est de ne pas mettre tous vos œufs dans le même panier.

Dans tous les cas, les systèmes de gestion de la relation client sont liés aux systèmes de gestion des flux de travail, aux systèmes financiers, aux systèmes d'audit, etc. Tout dépend de votre secteur d'activité.

La coordination des données entre tous ces systèmes nécessite des compétences et des processus. Cela nécessite également les bons outils.

Créer, transmettre et préserver des données dans un paysage de test est ce que j'ai appelé orchestration des données et c'est le seul moyen que je reconnais autrefois pour produire des résultats de test précieux.

Mon partenaire est un ingénieur bio. (Un) heureusement pour elle, elle ne s'occupe pas de lignes de code ou d'octets de logiciels. Elle s'occupe des cellules. Ces choses qui vivent ou meurent dans certaines conditions. La seule chose analogue à laquelle je puisse penser est le concept de bit pourriture dans notre monde. De toute façon…

Ses expériences et scénarios de test sont conçus méticuleusement pour préserver les conditions environnementales. La collecte de données se fait toujours sous forme d'échantillons de contrôle, de validation et de test. Le développement logiciel n'est pas aussi mature que les sciences de la vie, mais ne pensez-vous pas qu'il sera fantastique de faire progresser nos pratiques vers celles dans lesquelles l'échec n'est pas une option?

D'accord, bannières mises à part, comment pouvons-nous obtenir la reproduction de scénarios valides à grande vitesse, en réduisant l'entropie du changement? Sois prêt. Vous allez aimer ça.

Le Trifecta

Si les environnements, les données et la logique de test constituent le combo parfait, pourquoi n'y a-t-il pas de solution pour bien jouer avec chacun d'eux. Eh bien, il y en a. C'est ce qu'on appelle la virtualisation des services. Cela n'aide pas que le terme virtualisation soit généralement associé au provisionnement d'appliances virtuelles, qui relève d'un problème de matériel et de mise à l'échelle, et non d'un problème de test ou de changement. Sans parler du piège to-MAY-toes/to-MAH-toes.

La virtualisation des services est une solution de niveau entreprise qui réduit les dépendances aux données et aux environnements dans les systèmes d'entreprise complexes.

La balise de qualité entreprise peut sembler inutile. Je ne le fais pas parce que je veux avoir l'air plus profond (les articles ont généralement tendance à utiliser les termes À l'échelle or meilleures pratiques sans raison particulière), mais parce que si vous:

  • Travailler dans un environnement où plusieurs personnes touchent la même base de code;
  • Partagez et contrôlez les versions de vos ressources de test, et;
  • Vous souhaitez intégrer vos solutions dans votre pile technologique existante.

Ensuite, il ne s'agit pas seulement de couvrir les paradigmes de communication: demande de réponse, publier: s'abonner, etc. Il s'agit d'adoption, de courbes d'apprentissage, de matériel de formation, de soutien, d'exemples, de feuille de route et de coût.

Inutile de dire que l'adoption de la technologie dans l'informatique est maintenant comme le plan de braquage de banque: elle doit s'accompagner d'une stratégie d'entrée et de sortie claire. Avant d'entrer, vous devez savoir comment sortir.

Faciliter l'orchestration des données dans un paysage d'entreprise n'est pas complexe. C'est juste compliqué. Cela signifie que ce n'est pas sorcier - c'est purement une série de tâches définies qui peuvent être résolues et bien connues.

Il s'agit de la gestion des versions et du contrôle de l'accès aux ensembles de données.

Il s'agit de contrôles d'allocation et d'accès, de rôles, de mappages et, surtout, de s'adapter au changement, pas d'essayer de l'arrêter.

La virtualisation des services consiste à comprendre que le remplacement des services externes par des versions plus petites de ceux-ci - et par leurs propres ensembles de données plus petits - est la seule exigence pour des suites de tests stables. Et pour isoler les changements.

Consolider une solution pour ING Mortgages Pays-Bas à l'aide de conteneurs

Les tests ont donc un allié contre les changements rapides. Et ce n'est pas la vectorisation des cas de test ou de ces techniques d'orthogonalité à l'ancienne qui sont le résultat de grandes recherches, peu susceptibles d'être comprises par les parties prenantes gourmandes en fonctionnalités.

Si vous mettez le mot-clé data dans le mélange au lieu de ces termes à l'ancienne, il y a moins de probabilités de résistance pour une partie prenante de discuter de la valeur de la consolidation et du contrôle des données, et de la capitalisation des actifs de données, comme c'était le cas auparavant.

IOVIO avec Parasoft a donné vie à ces concepts pour ING dans sa tribu de prêts hypothécaires. Ils ont consolidé une solution qui a conteneurisé les services et rendu testable 60% de l'écosystème hypothécaire complexe - en isolement complet avec des dépendances de données et des environnements sous contrôle total.

Apprendre encore plus sur la manière dont IOVIO et Parasoft ont aidé ING dans leur quête pour relever les défis des tests de développement logiciel face au changement.

Vous voulez savoir comment mettre en œuvre la virtualisation des services pour les services financiers? Consultez le webinaire enregistré de Parasoft.

Par Herminio Vazquez

Herminio travaille en tant que consultant dans la tribu des hypothèques ING Pays-Bas au sein d'une équipe spécialisée nommée Data Rangers. Au cours de sa carrière, Herminio a travaillé sur tous les continents à travers le monde et dans plus de 40 pays - il a vécu dans 12. Sa carrière a été façonnée dans les lignes de General Electric Nuclear Energy avec un dévouement à l'innovation et à la qualité pour les applications critiques. . Dans son parcours professionnel, il a exécuté des solutions de test pour de grandes implémentations ERP et CRM dans le monde entier. Son expérience dans la modélisation de scénarios de test complexes a permis de simuler certains des événements les plus importants en termes d'échelle et de débit dans un large éventail d'industries. Aujourd'hui, établi à Zurich, en Suisse, il partage son temps entre sa famille, ses amis et la nature.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.