Découvrez comment la solution Parasoft Continuous Quality permet de contrôler et de gérer les environnements de test pour fournir des logiciels de haute qualité en toute confiance. Inscrivez-vous pour la démo >>

BLOG

Comment les tests Shifting-Left réduisent les risques de développement logiciel

Comment les tests Shifting-Left réduisent les risques de développement logiciel Temps de lecture : 5 minutes
Toutes les entreprises souhaitent (ou devraient vouloir) réduire les risques associés au développement de logiciels. Mais pour les entreprises qui servent les secteurs critiques pour la sécurité et la finance, le risque doit être éliminé dans la mesure du possible et minimisé dans tous les autres cas.

Test de décalage gauche permet de réduire les risques dans les domaines clés suivants, que j'expliquerai plus en détail ci-dessous:

  • Sécurité
  • Visibilité
  • Conformité réglementaire et OEM
  • Fiabilité
  • Changements d'application
  • Développement externalisé

Qu'est-ce que "Shift-Left?"

Le mouvement de «décalage vers la gauche» consiste à déplacer les pratiques de test critiques plus tôt dans le cycle de vie du développement. Ce terme se retrouve en particulier dans les initiatives Agile, Continuous et DevOps. Alors, pourquoi avez-vous besoin d'effectuer des tests logiciels précoces?

De nombreuses activités de test ont lieu à la fin du cycle, où il faut plus de temps pour déterminer ce qui n'a pas fonctionné et coûte plus cher à réparer. Déplacer vers la gauche consiste à déplacer l'identification et la prévention des défauts plus tôt. Lorsque vous ne le faites pas et que vous attendez d'effectuer des tests plus tard dans le cycle de développement, vos exigences commerciales non fonctionnelles en particulier (c'est-à-dire les tests de sécurité et de performance) sont si fondamentalement ancrées dans votre code que tout ce que vous pouvez vraiment faire est de les corriger. plutôt que de les réparer correctement. Alors, comment déplacer les tests «vers la gauche» aide-t-il les domaines clés du logiciel?

Sécurité

La sécurité des applications compromise entraîne des fuites d'informations, des temps d'arrêt, des dégradations et l'installation de logiciels malveillants. Ces conséquences représentent 61.6% des résultats liés à la sécurité selon la base de données des incidents de piratage Web.

L'approche traditionnelle de la sécurité consiste à simuler des attaques directes en combinant conjectures et expérience. L'approche traditionnelle est inefficace et dépassée en raison de sa dépendance excessive à la chance. Grâce aux tests de décalage à gauche, ces risques de sécurité peuvent être évités au moment du développement.

Visibilité

L'un des plus grands risques auxquels une organisation est confrontée est le manque d'informations sur lesquelles prendre des décisions. Le développement progresse-t-il à un rythme qui respectera l'échéance? Le produit est-il en bonne voie pour répondre aux exigences? Faut-il faire quelque chose dès maintenant pour profiter d'une opportunité ou atténuer l'impact d'un problème client imminent?

La plate-forme de test shift-left de Parasoft donne aux organisations une visibilité sans précédent, inégalée et complète sur l'ensemble du processus de développement en associant les données de chaque élément de l'infrastructure de développement logiciel et en appliquant l'intelligence contextuelle aux politiques d'entreprise définies pour à la fois conduire un processus automatisé de prévention et fournir l'intelligence d'affaires requise aux plus hauts niveaux de gestion.

Conformité réglementaire et OEM

Le non-respect des réglementations critiques pour la sécurité, gouvernementales ou OEM peut entraîner des rappels, invalider un contrat, imposer des sanctions ou entraîner des poursuites judiciaires. Si les montants varient considérablement selon l'industrie et le projet, ils sont souvent considérables. Grâce à une combinaison d'analyse statique, d'analyse de la couverture, de définition de processus et de mesures de routine, une approche de test de décalage gauche systématise la conformité dans un processus automatisé et étanche à l'air qui garantit la maîtrise des risques.

Fiabilité

La fiabilité des logiciels continue d'être l'un des problèmes les plus visibles qui peuvent être facilement résolus avec des tests de décalage vers la gauche. Les symptômes tels que les pannes, les temps d'arrêt et les SLA manqués peuvent gravement affecter la position d'une entreprise sur le marché. En combinant la prévention, la détection et la vérification dans un processus d'amélioration continue, les tests de décalage vers la gauche garantiront la réduction ou l'élimination des risques de fiabilité.

Changements d'application

Parmi les développeurs, il y a une vieille blague: «Si le débogage est le processus de suppression des bogues, alors le développement doit être le processus de mise en place.» En termes commerciaux, chaque changement de code est un risque.

Les tests Shift-Left suppriment le risque d'introduire de nouveaux défauts en appliquant des politiques de codage qui évitent les problèmes de structure et de conception pendant que les développeurs travaillent. De plus, une stratégie de test de décalage vers la gauche éliminera le risque de compromettre les fonctionnalités existantes en permettant la génération, l'exécution et la gestion automatisées des tests de régression parallèlement à une analyse détaillée de la couverture. L'attribution automatisée d'examen par les pairs fournit une dernière couche d'atténuation des risques qui garantit que 100% du code est inspecté par un expert d'équipe approprié.

Développement externalisé

L'externalisation perd de sa popularité à mesure que les entreprises apprennent des leçons douloureuses sur les risques d'une main-d'œuvre bon marché et inexpérimentée dans un domaine de haute technologie. Néanmoins, de nombreuses entreprises ont des équipes de développement et de test offshore actives et continueront sur cette voie. Bien que les stratégies varient, les sous-traitants qui réussissent établissent de multiples barrières d'atténuation des risques, à la fois sur site et à l'extérieur, pour se protéger contre l'injection de risques. Les tests de décalage à gauche sont un choix naturel pour établir et appliquer des politiques de codage des normes, de couverture des tests unitaires et d'examen par les pairs à chaque porte d'atténuation des risques.

Alors, comment vous déplacez-vous vers la gauche?

Par souci de concision, l'approche de test de décalage à gauche se décompose en deux activités principales:

Appliquer les meilleures pratiques de test de développement

La mise en œuvre de pratiques de développement à un stade précoce, telles que l'analyse de code statique et les tests unitaires, aide à la fois identifier et empêcher défauts plus tôt dans le processus.

Il est important de se rappeler que l'objectif n'est pas de trouver bugs, mais pour réduire le nombre de bogues (en particulier ceux qui font partie de la version). En fin de compte, créer moins de bogues en premier lieu est bien plus précieux que de trouver plus de bogues - et c'est beaucoup moins cher. C'est pourquoi des normes de codage critiques pour la sécurité reposent sur une approche proactive et préventive en signalant le code qui peut «fonctionner» mais qui n'est toujours pas sûr.

Les normes de codage sont l'équivalent logiciel des normes d'ingénierie, et elles sont essentielles pour réduire le volume de bogues (en plus de trouver des bogues plus tôt), pour prendre en charge et tirer le meilleur parti de votre initiative de quart de travail à gauche. Les normes de codage sont l'incarnation des connaissances en génie logiciel qui vous aident à éviter le code mauvais / dangereux / non sécurisé. Pour les utiliser, vous appliquez une analyse de code statique.

Pour la sécurité des logiciels, ceci est particulièrement important pour réussir à durcir votre logiciel. Vous voulez intégrer la sécurité dans votre code, pas le tester. Les normes de codage vous permettent de créer une application plus sécurisée dès le début (c'est-à-dire sécurisée par conception), ce qui est à la fois une bonne idée et une exigence si vous êtes soumis à des réglementations comme le RGPD.

Tirez parti de la virtualisation des services pour permettre des tests continus

Ensuite, vous devez effectuer les tests qui ont été créés à toutes les étapes, y compris les étapes ultérieures, du processus de développement, et les exécuter en continu. Ceci est essentiel pour les équipes qui adoptent des pratiques de développement agiles afin de fournir une rétroaction continue tout au long du processus de développement. Les tests unitaires peuvent facilement être exécutés en continu, mais déplacer vers la gauche l'exécution des tests fonctionnels ultérieurs est souvent difficile en raison des dépendances système externes, et c'est là que vous pouvez tirer parti de la virtualisation des services pour permettre des tests continus.

La virtualisation des services vous permet de simuler des systèmes dépendants qui peuvent avoir une disponibilité limitée, tels que des mainframes, des frais d'accès, des services tiers ou peut-être des systèmes qui ne sont tout simplement pas encore prêts. En les simulant, vous pouvez effectuer des tests fonctionnels sans que tout le système soit disponible, et vous pouvez déplacer l'exécution des tests vers la gauche jusqu'au bureau de développement.

En termes de tests de performances, la virtualisation des services vous permet de tester avant que tout soit prêt, et sans disposer d'un laboratoire complet de tout le système. Vous pouvez même exécuter toutes sortes de scénarios hypothétiques, comme que se passe-t-il si le serveur d'applications est rapide et la base de données lente (quelque chose de difficile à réaliser dans le monde réel). Ou que se passe-t-il si mon serveur commence à lancer des erreurs amusantes comme une erreur 500 - comment cela affectera-t-il les performances du système?

Vous pouvez pousser le système aussi fort que vous le souhaitez et au-delà, et le faire le plus tôt possible. (En savoir plus sur la façon de shift-left vos tests de performance.)

De même, vous pouvez commencer à effectuer vos tests de sécurité plus tôt. Le découplage des systèmes physiques vous permet de faire quelque chose d'encore plus intéressant, qui consiste à faire en sorte que les systèmes simulés se comportent mal. Maintenant, vous pouvez VRAIMENT vous lancer dans les tests de sécurité ... Au lieu de simplement fouiller votre système pour des données corrompues et des attaques DDoS, vous pouvez faire en sorte qu'un système vous inonde de paquets, ou envoie des données malformées, ou l'un des nombreux autres exploits couramment utilisés par les attaquants. Ainsi, non seulement vous pouvez tester plus tôt (à gauche), mais vous pouvez également tester beaucoup plus profondément que ce qui est possible avec un laboratoire de test ou un système de production.

Écrit par

Jason Schadewald

Jason Schadewald est chef de produit chez Parasoft.

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