Catégories
Start-up et applications

Il y a plus à tester que simplement tester

L'innovation rapide et la numérisation de tout augmentent la complexité des applications et la complexité des environnements dans lesquels les applications s'exécutent. Bien que l'accent soit de plus en plus mis sur les tests continus à mesure que de plus en plus d'équipes DevOps adoptent CI / CD, certaines organisations se concentrent toujours de manière disproportionnée sur les tests fonctionnels.

"Ce n'est pas parce que cela fonctionne que c'est une bonne expérience", a déclaré Thomas Murphy, analyste directeur principal chez Gartner. «Si c’est mon employé, parfois je le fais souffrir, mais cela signifie que je vais perdre de la productivité et cela peut avoir un impact sur la rétention des employés. S'il s'agit de mes clients, je peux perdre la rétention car je n'ai pas atteint les objectifs au départ. "

Les applications d’aujourd’hui doivent contribuer à la réalisation des objectifs commerciaux de l’entreprise tout en offrant le type d’expérience auquel les utilisateurs finaux s’attendent. Pour ce faire, les équipes logicielles doivent adopter une approche plus holistique des tests qu'elles ne l'ont fait traditionnellement, ce qui implique plus de types de tests et plus de rôles impliqués dans les tests.

«Les modèles de pratique proviennent de l'architecture et de toute l'idée de concevoir des modèles», a déclaré Murphy. «Les meilleures pratiques d'il y a 10 ans ne sont pas les meilleures pratiques aujourd'hui et les meilleures pratiques d'il y a trois ans ne sont probablement pas les meilleures pratiques d'aujourd'hui. Les principales pratiques sont celles que Google, Facebook et Netflix faisaient il y a trois à cinq ans. »

Chris Lewis, directeur de l'ingénierie au cabinet de conseil en technologie Groupe DMW, a déclaré que ses entreprises clientes voyaient l'impact positif d'un état d'esprit du test d'abord au cours des deux dernières années.

«Les choses que j’ai vues (se trouvent) en particulier dans le monde de la sécurité et des infrastructures où les tests n’ont jamais été à l’ordre du jour. Ces personnes ont tendance à venir d’expériences de développement de logiciels plus traditionnelles, typiquement full-stack, et elles veulent désormais plus de contrôle sur les processus de développement de bout en bout », a déclaré Lewis. «Ils ont commencé à injecter une réflexion sur les tests tout au long du cycle de vie.»

Nancy Kastl, directrice exécutive des services de test à l'agence de transformation numérique SPR, a déclaré qu'une évolution philosophique est en cours concernant ce qu'il faut tester, quand tester et qui effectue les tests.

«En ce qui concerne ce qu'il faut tester, le mouvement continue de s'éloigner des méthodes de test d'interface utilisateur manuelles (et) automatisées et vers les tests au niveau des API et des unités. Cela permet d'effectuer les tests plus tôt, plus efficacement et favorise une meilleure couverture des tests », a déclaré Kastl.

«Quand» signifie tester plus tôt et tout au long du SDLC.

«Les entreprises continuent d'adopter Agile ou d'améliorer la façon dont elles utilisent Agile pour tirer parti de ses avantages de livraison continue», a déclaré Kastl. «Avec le mouvement actuel vers une intégration et une livraison continues, la philosophie du« décalage vers la gauche »est désormais intégrée aux tests continus.»

Cependant, lorsque tout le monde est responsable des tests, personne n’est sans doute responsable, à moins que la manière dont les tests doivent être effectués par qui, quand et comment ne soit clairement définie. Les tests ne peuvent plus être le seul domaine des testeurs et des ingénieurs QA car trouver et corriger les bogues tard dans le SDLC est inadéquat, inutilement coûteux et intenable car les équipes d'application continuent de réduire leurs cycles de livraison. En conséquence, les tests doivent nécessairement être déplacés vers la gauche vers les développeurs et vers la production, impliquant davantage de rôles.

«Cela continue d'être un sujet de débat. S'agit-il des développeurs, des testeurs, des analystes commerciaux, des chefs de produit, des utilisateurs professionnels, des chefs de projet (ou) de quelqu'un d'autre? » dit Kastl. «L'accent étant mis sur l'automatisation des tests nécessitant des compétences en codage, certains soutiennent que les développeurs doivent effectuer les tests au-delà des simples tests unitaires.»

Parallèlement, la portée des tests continue de s'étendre au-delà des tests unitaires, d'intégration, d'acceptation des systèmes et des utilisateurs (UAT) pour inclure les tests de sécurité, de performance, d'UX, de fumée et de régression. Les indicateurs de fonctionnalités, la livraison progressive de logiciels, l'ingénierie du chaos et le développement piloté par les tests sont également considérés comme faisant partie du mix de test aujourd'hui.

La sécurité va au-delà des tests de pénétration
Les organisations, quel que soit le secteur, donnent la priorité aux tests de sécurité pour minimiser les vulnérabilités et gérer les menaces plus efficacement.

«La modélisation des menaces serait un point de départ. L'autre chose est que l'intelligence artificielle et l'apprentissage automatique me donnent des vues plus éclairées sur le code et la qualité du code », a déclaré Murphy de Gartner. «Il y a tellement de types d'attaques différents qui se produisent et parfois nous pensons que nous avons pris ces précautions, mais le problème est que même si vous avez pu arrêter (une attaque) dans un sens, ils vont trouver différentes façons de la lancer. , différentes manières dont il va se comporter, différentes manières dont il sera caché pour que vous ne le détectiez pas. "

En plus des tests d'intrusion, les organisations peuvent utiliser une combinaison d'outils et de services qui peuvent varier en fonction de l'application. Certains des tests les plus courants sont les tests de sécurité des applications statiques et dynamiques, les tests de sécurité des applications mobiles, les tests de sécurité des bases de données, l'analyse de la composition des logiciels et les tests des applications en tant que service.

Lewis, du groupe DMW, a déclaré que son organisation aidait les clients à améliorer la façon dont ils définissent leurs règles de conformité et de sécurité sous forme de code, en travaillant généralement avec des personnes dans une architecture de sécurité conventionnelle et des fonctions de conformité.

«Nous les amenons à réfléchir aux résultats qu'ils souhaitent vraiment atteindre, puis nous leur fournissons l'expertise pour les transformer en code», a déclaré Lewis.

Kastl de SPR a déclaré que la livraison continue nécessite une vérification de sécurité continue pour fournir un aperçu précoce des vulnérabilités de sécurité potentielles.

«La sécurité, comme la qualité, est difficile à intégrer à la fin d'un projet logiciel et doit être priorisée tout au long du cycle de vie du projet», a déclaré Kastl. «La norme de vérification de la sécurité des applications (ASVS) est un cadre d'exigences et de contrôles de sécurité qui définissent une application sécurisée avec le développement et le test d'applications modernes.»

Kastl a déclaré que cela comprend:

  • ajouter des exigences de sécurité au backlog du produit avec la même attention à la couverture que la fonctionnalité de l'application;
  • un référentiel de tests basé sur des normes qui comprend des cas de test réutilisables pour les tests manuels et pour construire des tests automatisés pour les exigences de niveau 1 dans les catégories ASVS, qui incluent l'authentification, la gestion de session et le contrôle d'accès au niveau des fonctions;
  • des tests de sécurité en cours de sprint qui sont intégrés au processus de développement tout en tirant parti des approches existantes telles que Agile, CI / CD et DevOps;
  • des tests de sécurité post-production qui mettent en évidence les vulnérabilités nécessitant une attention immédiate avant d'opter pour un test de pénétration complet;
  • et des tests de pénétration pour trouver et exploiter les vulnérabilités et pour déterminer si les vulnérabilités détectées précédemment ont été corrigées.

"Le Top 10 de l'OWASP est une liste des vulnérabilités de sécurité les plus courantes", a déclaré Kastl. Il est basé sur des données recueillies auprès de centaines d’organisations et de plus de 100 000 applications et API du monde réel. »

Tests de performance au-delà des tests de charge
Les tests de charge garantissent que l'application continue de fonctionner comme prévu à mesure que la charge de travail augmente en mettant l'accent sur la limite supérieure. En comparaison, les tests d'évolutivité prennent en compte les charges minimales et maximales. En outre, il est judicieux de tester en dehors des charges de travail normales (tests de stress), pour voir comment l'application fonctionne lorsque les charges de travail augmentent soudainement (tests de pics) et dans quelle mesure une charge de travail normale dure dans le temps (tests d'endurance).

«Les performances ont vraiment un impact sur les gens du point de vue de la convivialité. Auparavant, si votre page ne se chargeait pas dans ce laps de temps, ils cliquaient, puis il ne s'agissait pas seulement de la page, il s'agissait de la performance d'éléments spécifiques qui pouvaient être mappés au comportement du panier, »A déclaré Murphy de Gartner.

Par exemple, la société de navigation GPS et de technologie portable Garmin a subi une panne de plusieurs jours lorsqu'elle a été touchée par une attaque de ransomware en juillet 2020. Ses appareils n'ont pas pu télécharger l'activité sur l'application mobile et le site Web de Strava pour les coureurs et les cyclistes. La situation souligne le fait que les violations de la cybersécurité peuvent avoir des effets en aval.

«Je pense que Strava a enregistré une baisse de 40% des téléchargements de données. Bientôt, toutes ces données des trois ou quatre derniers jours vont commencer à être téléchargées sur eux afin qu'ils soient touchés par un pic de données, de sorte que ce genre de choses peut arriver », a déclaré Murphy.

Pour se préparer à ce genre de choses, on peut exécuter des tests de performances et de stress sur chaque build ou utiliser des indicateurs de fonctionnalité pour comparer les performances avec la build précédente.

Au lieu d'attendre un test de charge à la fin d'un projet pour détecter les problèmes de performances potentiels, les tests de performances peuvent être utilisés pour évaluer les performances d'une application en cours de développement.

«En mesurant le temps de réponse d'un seul utilisateur exécutant des fonctions spécifiques, ces métriques peuvent être rassemblées et comparées pour chaque version de l'application», a déclaré Kastl. «Cela fournit un avertissement précoce des problèmes de performances potentiels. Ces tests de performances de base peuvent être intégrés à votre pipeline CI / CD pour une surveillance continue des performances de l'application. »

Les appareils mobiles et IoT, tels que les appareils portables, ont accru le besoin de tests de performances plus complets et il reste encore beaucoup à faire.

«Au fur et à mesure que le secteur évoluait vers la technologie cloud, les tests de performances sont devenus plus importants», a déclaré Todd Lemmonds, architecte QA chez Health Benefits Company. Hymne, un client de Sauce Labs. «L'une de mes initiatives actuelles consiste à intégrer les tests de performance dans le pipeline CI / CD. On fait toujours plus pour UAT qui, à mon avis, est trop tard. »

Pour affecter ce changement, les développeurs doivent réfléchir aux performances et à la manière dont les analyses doivent être structurées de manière à permettre à l'entreprise de prendre des décisions. Les artefacts peuvent être utilisés plus tard lors d'un test de performances système complet.

"Nous avons migré trois canaux vers le cloud, (mais) nous n'avons jamais fait de test de performance des trois canaux fonctionnant à pleine capacité", a déclaré Lemmonds. «Nous devons réfléchir à tout cela et prédire le modèle de croissance au cours des cinq prochaines années. Nous devons nous assurer que non seulement nos technologies cloud peuvent gérer cela, mais à quoi ressembleront les performances complètes du système. Ensuite, vous rencontrez des problèmes tels que tous nos sous-systèmes ne sont pas en mesure de gérer les connexions à la base de données, nous devons donc trouver toutes sortes de façons de virtualiser les services, ce qui n'est pas nouveau pour Google et Amazon, mais (pour) une entreprise. comme Anthem, c'est très difficile.

Lewis, de DMW Group, a déclaré que certains de ses clients ont ignoré les tests de performances dans les environnements cloud, car les environnements cloud sont élastiques.

"Nous devons les ramener à la réalité et dire:" Regardez, il y a une forme d'art ici qui a considérablement changé et vous devez vraiment commencer à y réfléchir plus en détail ", a déclaré Lewis.

Tests UX au-delà de l'interface utilisateur et de l'UAT
Alors que les tests d'interface utilisateur et UAT restent importants, les tests d'interface utilisateur ne sont qu'un sous-ensemble de ce qui doit être fait pour les tests UX, tandis que l'UAT traditionnel se produit tard dans le cycle. Le marquage des fonctionnalités aide en fournissant un aperçu précoce de ce qui résonne et ne résonne pas avec les utilisateurs tout en générant des données précieuses. Il existe également des tests d'utilisabilité, notamment des groupes de discussion, l'enregistrement de session, le suivi des yeux et des enquêtes rapides dans l'application à une question qui demandent si l'utilisateur "aime" l'application ou non.

Cependant, les tests d'accessibilité sont un domaine qui a tendance à ne pas être suffisamment ciblé.

«Plus de 54 millions de consommateurs américains sont handicapés et font face à des défis uniques pour accéder aux produits, services et informations sur le Web et les appareils mobiles», a déclaré Kastl de SPR. «L'accessibilité doit être abordée tout au long du développement d'un projet afin de garantir que les applications sont accessibles aux personnes souffrant de perte de vision, de basse vision, de daltonisme ou d'apprentissage, ainsi qu'à celles qui sont autrement handicapées par la motricité.

Le principal problème est le manque de sensibilisation, en particulier chez les personnes qui n'ont pas d'expérience directe ou secondaire avec un handicap. Bien qu'il y ait aucune réglementation à appliquer, les poursuites judiciaires liées à l'accessibilité augmentent de façon exponentielle.

«La première étape pour garantir l’accessibilité d’une application consiste à inclure les normes d’accessibilité ADA Section 508 ou WCAG 2.1 comme exigences dans le backlog du produit, ainsi que les exigences fonctionnelles», a déclaré Kastl.

La non-conformité à une norme d'accessibilité sur une page Web a tendance à se répéter sur toutes les pages Web ou dans une application mobile. Pour détecter le plus tôt possible les pratiques non conformes, les wireframes et les modèles pour les applications Web et mobiles devraient être examinés pour les composants conçus potentiels non conformes, a déclaré Kastl. En plus de la revue de conception, il devrait y avoir une revue de code dans laquelle les équipes de développement effectuent des auto-évaluations en utilisant des outils et des pratiques pour identifier les normes qui n'ont pas été suivies dans les pratiques de codage. Des mesures correctives doivent être prises par l'équipe avant le début des tests d'application. Ensuite, pendant les activités de test en sprint, des technologies d'assistance et des outils tels que des lecteurs d'écran, un agrandissement d'écran et un logiciel de reconnaissance de vitesse doivent être utilisés pour tester les pages Web et les applications mobiles par rapport aux normes d'accessibilité. Des outils automatisés peuvent détecter et signaler les non-conformités.

Murphy de Gartner a déclaré que les organisations devraient surveiller en permanence les notes et les critiques des applications, ainsi que le sentiment des médias sociaux.

«Vous devez surveiller ces choses, et vous devriez le faire. Vous insérez des trucs comme ça dans un système tel que Statuspage ou PagerDuty afin que vous sachiez que quelque chose ne va pas », a déclaré Murphy. «Il ne s'agit peut-être pas simplement de surveiller votre site. Il surveille également ces sources externes, car elles peuvent être l’indicateur avancé. »

Laisser un commentaire

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