Pour cela nous définirons quels sont les processus et outils nécessaires à une activité de Tests, puis nous verrons dans quel cadre cela nous permet de mettre en place une stratégie qualité, le tout en s’appuyant sur le paradigme Agile et plus spécifiquement SCRUM. Enfin nous établirons les bases d’une approche Dev Tests en s’appuyant sur l’offre Visual Studio 2013.
Activité de Tests
Pourquoi et comment tester ?
La réutilisation de code du
programme Ariane 4 non retesté a entrainé une trajectoire différente du fait d’un
design diffèrent du Booster. La Conversion d’un float 64 bit en int 16 bits a
causé une erreur de type overflow
exception engendrant la destruction de la fusée, le cout du Bug : plus de
370 millions de dollars (1996). La morale de cette histoire est que l’activité
de test doit faire partie intégrante du cycle de développement et de la stratégie
qualité. Comme nous le verrons tout au long de l’article, Visual Studio 2013
d’une part et les approches Agiles, et plus particulièrement SCRUM vont
apporter l’ensemble des ingrédients tant aux niveaux des pratiques d’ingénieries
que méthodologiques permettant l’implémentation et la livraison d’applications
d’un haut niveau de qualité et de ce fait, obtenir la satisfaction du client,
qui reste de loin le critère numéro 1 de réussite d’un projet.
La phase de planification
et d’écriture des tests est une activité de premier plan pour tout type de projet, nous allons avant tout
définir les types de tests nécessaires à la mise en place d’une stratégie
qualité digne de ce nom.
On distingue généralement
trois catégories de tests :
Les tests techniques
Incluant : les tests unitaires, tests d’intégration et tests d’interface automatisés : Ces tests vont permettre de travailler sur la non régression technique et fournir une métrique clé : la couverture de code. Les tests unitaires sont généralement mockés (stubs ou shims) et donc joués en isolation et testent les méthodes unitairement, contrairement aux tests d’intégration qui vont tester des méthodes de plus haut niveau et qui ne sont pas mockés afin de tester le système complet. Enfin les tests d’interface automatisés (UI coded tests) permettent de valider des scénarios en manipulant l’interface utilisateur de manière interactive avec la capacité de valider un résultat attendu, tel que la valeur dans un champ par exemple. L’ensemble de ces tests pourront être consommés dans le cadre d’un workflow BDT (Build Deploy Test) si l’on a investi dans un Lab Management. Nous reviendrons plus loin dans cet article sur ce point.Les tests fonctionnels
Incluant les tests manuels ou semi
automatisés, tests d’intégration fonctionnels, tests d’interface automatisés et
tests exploratoires) : Ces tests ont pour objectif de valider la
conformité métier des fonctionnalités développées et feront l’objet d’un plan
de tests et relierons des cas de tests aux fonctionnalités testées. Pour des
raisons de productivité, le plus souvent ces tests feront l’objet d’une
automatisation partielle ou totale afin de garantir des campagnes de tests de
non régression et surtout augmenter la productivité des équipes de tests. Les
tests d’intégration fonctionnels permettent d’appeler des fonctions métiers de haut niveau exposées par la couche métier sans passer par l’interface
utilisateur (mode FitNesse). Enfin, les tests exploratoires sont au cœur des
pratiques agiles de tests et vont permettre aux testeurs de jouer des tests
avec plus de créativité et également trouver plus rapidement des bugs ou
dysfonctionnements. Cette activité est à mettre en balance avec l’écriture de
scripts de tests.
Les tests de performance et tests de charge
La performance reste un point
clé de réussite de tout projet, les tests de performance coté client et coté
serveurs doivent faire partie impérativement de la stratégie qualité et donc
des plans de tests afin de détecter au plus tôt les potentiels goulots
d’étranglement.
Bien évidemment Visual Studio
2013 propose une gamme complète d’outils permettant de créer et exécuter
l’intégralité des tests précités. Le diagramme ci-dessous fait le mapping de
ces différents types de tests avec les technologies de la plateforme Visual Studio
2013 :
Aucun commentaire:
Enregistrer un commentaire