Fermer

août 25, 2021

Comment les testeurs ajoutent de la valeur


Si vous impliquez vos testeurs assez tôt, ils peuvent être le principal outil pour garantir que vos utilisateurs obtiennent ce qu'ils veulent. En fait, les testeurs peuvent être la partie de votre processus que les utilisateurs considèrent comme une « valeur ajoutée ». Le seul avis qui compte sur la qualité de l'application est celui des utilisateurs. C'est pourquoi la première étape du développement d'une application est d'obtenir les exigences des utilisateurs : elle établit les critères qui seront utilisés pour juger l'application. Sauf, comme nous le savons tous, les développeurs peuvent créer un produit qui répond aux exigences mais que les utilisateurs rejettent. activité à valeur ajoutée.

Fournir ce qui est souhaité

Intégrer les testeurs dans le processus d'exigences vous permet de tirer parti de ce qui rend les testeurs uniques : en convertissant les exigences métier en tests que la technologie doit réussir, les testeurs se positionnent à la frontière entre l'entreprise et la technologie.

Cette position unique apparaît dans pratiquement tout ce que font les testeurs. En rassemblant des données de test, par exemple, les testeurs doivent définir des partitions d'équivalence : des ensembles de données où un seul élément de l'ensemble doit être testé car les autres membres de l'ensemble sont fonctionnellement identiques. Les testeurs construisent ces ensembles en comprenant à la fois ce que les données signifient pour l'entreprise et comment la technologie réagit aux variations des données (le client peut-il spécifier un montant négatif dans certains domaines ? Ce nombre négatif compte-t-il comme un « nombre spécial » pour le code ?).

Ce point de vue unique signifie que les testeurs sont les meilleurs membres de l'équipe pour aider les utilisateurs et les développeurs à affiner ce que les exigences "signifient vraiment". En définissant les tests qui prouvent que l'application répond à la « définition de terminé » aux yeux des développeurs et des utilisateurs, les testeurs définissent les exigences en termes qui ont du sens à la fois pour les développeurs et les utilisateurs. En fait, les tests sont un exemple de ce que signifie « fait » (et si vous pensez que les exemples ne comptent pas, consultez ma discussion sur les ensembles d'équivalence, ci-dessus). motivés par les exigences suffisamment tôt pour que ces tests puissent être utilisés tout au long du processus de développement. Il garantit également que tous les tests sont pris en charge par l'infrastructure de test de l'équipe. Mais ces avantages ne sont vraiment que la cerise sur le gâteau.

Livrer quand c'est souhaité

Les testeurs aident également à affiner la portée du projet, permettant aux utilisateurs d'obtenir les fonctionnalités qu'ils souhaitent le plus tôt possible. La définition des tests permet aux utilisateurs de hiérarchiser les cas d'utilisation et les fonctionnalités : qu'est-ce qui doit fonctionner maintenant et qu'est-ce qui peut être remis à plus tard ? Souvent, les utilisateurs seront parfaitement satisfaits, par exemple, obtenir une version de l'application plus tôt, même si elle ne gère pas de manière fiable les cas de bord et de coin. sur la gestion du risque. Les utilisateurs de l'application (et uniquement ses utilisateurs) décident du niveau de risque acceptable. Une fois, j'ai aidé à livrer une version d'une application dont l'exécution n'était garantie que le long du « chemin heureux » sous une charge très légère. Cependant, il exécuterait ce chemin de manière fiable encore et encore – toute la journée, si vous le vouliez, en fait. Mon client était ravi parce que c'était exactement ce qu'il voulait que cette version fasse : Démontrer le produit en tant que preuve de concept lors d'un salon professionnel, dix heures par jour pendant sept jours consécutifs (je pense que cela aurait également bien fonctionné sous des charges plus lourdes et dans d'autres scénarios, mais nous n'avions pas encore fait les tests pour le prouver). Au lieu de cela, comme les testeurs sont présents au début, les tests peuvent avoir lieu tout au long du projet, offrant un calendrier de livraison plus prévisible avec un logiciel sans défaut (encore une fois, quelque chose que les utilisateurs apprécient). : exercice de l'application pour découvrir les problèmes potentiels et les zones « à risque ». Mais les explorations aléatoires ne sont pas payantes. Pour citer Niall Lynch chez QA Lead« Tout le monde peut trouver des bogues. Les clients le font gratuitement tout le temps. Les tests exploratoires sont les plus rentables lorsqu'ils sont motivés par la compréhension par le testeur des exigences des clients et des compromis en matière de risque (il ne sert à rien d'explorer les cas critiques si l'utilisateur ne s'y intéresse actuellement pas). Encore une fois, cela n'est possible que si les testeurs ont participé à la définition de ces exigences et de ces compromis.

La participation précoce prend également en charge la création précoce de tests automatisés (le cas échéant), permettant à l'équipe d'effectuer des tests de régression sans consommer les ressources de l'équipe. Un nombre croissant de tests de régression démontre et maintient les progrès vers la satisfaction des exigences. Les utilisateurs ne se soucient peut-être pas de ces rapports d'avancement… mais la direction s'en soucie.

Dernier avantage : lorsque les testeurs ont une compréhension approfondie de ce que veulent les utilisateurs, développés pendant la phase d'exigences et poursuivis tout au long du projet, les testeurs peuvent également aider à affiner les critères et à se concentrer. des tests d'acceptation par l'utilisateur. Cela garantit que l'UAT démontre ce que les utilisateurs doivent voir pour se déconnecter (encore une fois, quelque chose que les utilisateurs apprécient). et Janet Gregory dans Agile Testing) : « … pour travailler avec le client ou le propriétaire du produit afin de les aider à exprimer leurs exigences de manière adéquate afin qu'ils puissent obtenir les fonctionnalités dont ils ont besoin, et pour fournir des commentaires sur l'avancement du projet à tout le monde." Ce qui est quelque chose que vos utilisateurs/clients apprécieront, même s'ils considèrent le test lui-même comme un "mal nécessaire".

Le travail du testeur n'est ni trivial ni facile. Les tests sont importants : aucune exigence n'est « faite » tant qu'elle n'a pas réussi son test. L'implication précoce des testeurs soutient les tests pendant le développement et permet à l'équipe de démontrer que les besoins des clients vont être satisfaits (en particulier avec les tests automatisés). Cela nécessitera les types d'outils qui prennent en charge tous les tests que j'ai décrits ici : tests exploratoires et automatisés, tests en boîte blanche/boîte noire, tests unitaires et API de bout en bout testing et les tests d'acceptation par l'utilisateur. Des outils comme Test Studio de Telerik, par exemple.




Source link