Le projet va-t-il à un nouveau niveau? Test nécessaire

Supposons que vous, le créateur du produit, ayez étudié le public cible, embauché une équipe expérimentée de développeurs et d'analystes, pris des parts de marché, les marketeurs attirent des partenaires, les responsables du service client vous conseillent à fond, vous organisez régulièrement des promotions.

Il semblerait que vous ayez tout. Mais les paiements des utilisateurs et le public ont commencé à décliner et les clients ont commencé à refuser le produit.

Peut-être que l'affaire est en cours de production? Jetez un œil à l'intérieur et vous verrez peut-être comment:

  • les correctifs sortent plus souvent que les versions;
  • ou un service d'assistance est inondé de demandes et analyse en permanence les défauts critiques;
  • ou des cohortes significatives d'utilisateurs ne peuvent pas obtenir les fonctionnalités clés du service.

Et, même après avoir identifié les problèmes à ce stade, il n'est pas toujours possible de comprendre comment réguler l'ensemble du processus, car souvent chaque élément de la chaîne fait bien son travail et le résultat final n'est pas satisfaisant. Vous pensez qu'il est peut-être temps d'embaucher des testeurs?



***


Chaque membre de l'équipe peut tester. Selon les principes Agile, cette activité est officiellement réalisée par tout le monde, pas seulement par les testeurs. Les analystes savent mieux que quiconque les fonctionnalités attendues par le client et comment elles doivent fonctionner. Les tests unitaires, les révisions de code, la programmation des paires et les auto-tests réguliers des développeurs garantissent la qualité du code. Mais il y a des cas où ces tests deviennent insuffisants pour la qualité finale. En ce moment, des tests indépendants arrivent sur la "scène".

Les tests effectués par un groupe professionnel indépendant sont appelés indépendants. Moins l'équipe affecte les procédures et les conclusions des testeurs, plus elle est indépendante. B. Beiser dans le travail "Tester la boîte noire et le raquo; a écrit: «Le but des tests indépendants est de regarder le produit d'un point de vue différent, et donc d'effectuer d'autres tests; ainsi, des tests plus polyvalents sont effectués que si seuls les développeurs testaient. »
Les tests professionnels commencent par une analyse et une conception de test:

  • sélection d'un ensemble minimal de vérifications pour garantir le maximum de fonctionnalités;
  • définir la séquence des essais en fonction de la criticité de la fonctionnalité et des risques de libération des défauts.

La nécessité de tests professionnels indépendants se présente dans les conditions suivantes:

1. Croissance rapide


Le succès du produit dans la compétition est un grand événement, ainsi qu'une charge de production inattendue. De nouveaux utilisateurs, de nouvelles exigences, des changements à grande échelle obligent l'équipe à effectuer plus de tâches en moins de temps. En conséquence, l'équipe n'a pas le temps de tester ou les tests intuitifs (tests ad hoc ) manquent des défauts critiques.

Les tests se développent en parallèle avec d'autres domaines de connaissances en production de logiciels.

Les approches et les méthodologies ne sont pas si volatiles, la dernière innovation dans le domaine de la conception de tests a été publiée en 2009 par James A. Wittaker dans le livre «Exploratory Software Testing» . Parallèlement, de nouveaux outils de test sont développés en continu, parmi lesquels:

  • Outils pour la vérification rapide de la mise en page sur différents navigateurs et appareils, la réconciliation avec les mises en page, l'orthographe, le temps de réponse des pages, etc.
  • Outils pour exécuter, rediriger, modifier, décoder, suivre les demandes d'API;
  • Outils pour préparer les données et conditions de test dans les applications Web, de bureau, mobiles et api.

Les testeurs professionnels améliorent et accélèrent les tests à l'aide de techniques et d'outils modernes, accordent une attention particulière à la recherche de solutions efficaces, tout en permettant à l'équipe de se concentrer sur la modernisation des processus métier.

2. Entropie


Un produit logiciel à longue durée de vie parle de stabilité commerciale. D'autre part, au cours de plusieurs années, le produit adapté au marché, clients, utilisateurs, a accumulé une variété de fonctionnalités, y compris logiquement contradictoires. Les statistiques du portail RH montrent que le taux naturel de rotation du personnel informatique est de 8 à 10% par an, ce qui signifie qu'en 5 ans l'équipe de développement peut être mise à jour de près de la moitié. Au cours de la vie du produit, l'équipe peut changer l'architecte et les développeurs clés, des personnes qui connaissaient l'architecture d'origine et la logique de sa mise à l'échelle.

Selon F. Brooks dans l'ouvrage   "Mythical Man-Month",tout système cherche à détruire la structure et à augmenter l'entropie à chaque nouvelle correction. Au fil du temps, le produit acquiert le soi-disant code hérité, hérité de fonctionnalités incompatibles, correction rapide de bogues, développeur inexpérimenté. Cependant, sous la pression des délais, l'équipe n'a pas toujours le temps de couvrir le code avec des tests unitaires. Dans de telles conditions, il est impossible de prédire quelles parties du code seront affectées par telle ou telle correction et quel défaut entraînera.

Les testeurs professionnels vérifient non seulement les nouvelles fonctionnalités, mais également la régression de l'ensemble du système. Le contenu et la méthode de réalisation des tests de régression font l'objet d'une attention particulière.

3. Personnalisation


C'est bien quand un produit reçoit de nouvelles cohortes d'utilisateurs, s'adapte aux villes et aux pays, spécialise les fonctionnalités pour différents rôles et s'adapte à la durée de vie des utilisateurs du système. Du point de vue du système, cela augmente la quantité de fonctionnalités critiques et la façon de les utiliser. La même fonction peut être utilisée à des fins différentes et dans des conditions différentes par des cohortes d'utilisateurs. Il y a tellement de rôles et de conditions dans un grand système complexe que l'analyste peut en oublier un lors de l'élaboration des exigences. En fait, une caractéristique de tueur pour un rôle peut devenir un défaut de blocage pour un autre, non moins significatif.

Les tests professionnels vérifient l'utilisation du système pour vérifier la conformité avec les objectifs des utilisateurs, posent des questions de clarification et ajuste le contenu des tests de régression en fonction des nouvelles priorités et des tâches commerciales du système. La mise à jour de l'ensemble et des priorités des tests fait l'objet d'une attention particulière du testeur.

4. Distribution


L'environnement informatique offre aujourd'hui des choix infinis, une architecture de micro-services, des centres de données cloud, des équipes de projet distribuées. Du point de vue de l'utilisateur, les produits entiers sont en fait divisés en micro-applications, écrites dans différents langages de développement, placées sur différents continents, créées par différentes équipes de projet et entreprises.

Par exemple, l'achat d'un bijou dans une boutique en ligne, d'une part, est une action de quelques clics, d'autre part, le traitement et le transfert de données dans au moins trois applications - sur le site Web de la boutique, dans la passerelle de paiement et le système de paiement. Chaque application est développée par une équipe de projet avec ses objectifs, sa structure organisationnelle, ses plans.

Dans ces conditions, le résultat probable est «la balle a volé, le problème est de votre côté»: lorsque chaque équipe a développé sa propre partie conformément aux exigences, mais ensemble, elles ne correspondent pas à une fonction de travail.
Avant la mise en service, les testeurs professionnels consultent, supervisent, configurent les environnements pour l'exécution des tests d'intégration et effectuent des vérifications du point de vue de l'utilisateur final, et pas seulement des exigences pour les composants individuels.

Ainsi, les grands produits liés à l'âge, populaires et en évolution rapide obligent les tests à être un type d'activité distinct. Des tests efficaces sont armés de méthodologies spécialisées, d'outils et d'un objectif spécifique différent des objectifs du reste de l'équipe. Le but de l'analyste est de découvrir les besoins réels du client, le but du développeur est de livrer les modifications ordonnées dans leur intégralité, le testeur a pour objectif de tester l'ensemble du système, d'examiner l'utilisateur et de rencontrer des défauts à la place.

***


La délégation de tester un rôle distinct sous le contrôle d'une équipe est la deuxième étape des tests indépendants. Les testeurs peuvent être embauchés seuls ou sous-traités dans une organisation indépendante.

De l'externalisation des tests à cette étape, l'entreprise reçoit:

  • test professionnel de votre produit avec des outils pertinents;
  • personnel qualifié garanti. L'externalisation est spécialisée dans la sélection et le développement des compétences des employés;
  • la possibilité d'utiliser les tests pour une durée limitée, d'attirer un type de test supplémentaire ou de le remplacer;
  • travail transparent des testeurs.

Les sociétés d'externalisation de tests travaillent pour une réputation: plus elle est élevée, meilleur est le service fourni. Comment ça se passe avec les tests dans votre entreprise? Partagez votre expérience :)

All Articles