Views
2 years ago

techtrends-xebia-front

techtrends-xebia-front

Les outils des tests

Les outils des tests unitairesComme dans tous les écosystèmes émergents, il est parfois difficile defaire son choix tant l’écosystème des outils, et plus particulièrement ceuxdes tests, est foisonnant. D’autant qu’ici, les équipes qui les ont développésont appris de leurs aînés (Java surtout) pour produire des logiciels detrès bonne qualité.Parmi les frameworks les plus en vue, nous avons sélectionné Jasmine, quipropose un ensemble d’outils relativement complet. Il vise, via les TU, àdécrire précisément le comportement et les résultats attendus. Dans lamême famille, on peut citer Mocha, très puissant même dans des cas detests complexes.Pour faciliter l’écriture de ces tests vous pouvez leur adjoindre Chaijs, quieffectue des vérifications de fonctionnement de façon concise et élégante.Sinon.JS facilite l’isolation entre tests unitaires et permet de garder doncdes tests concis, maintenables et rapides à exécuter.Enfin, pour piloter l’exécution de ces tests unitaires, nous citeronsl’incontournable Karma. A l’origine, créé par l’équipe d’AngularJS, il estdésormais utilisé et maintenu par toute la communauté.De nouveau, le choix des outils dépend avant tout de la sensibilité del’équipe. La compréhension et la maîtrise de ces frameworks sont despré-requis indispensables au respect du dogme « une fonction - un test ».L’écriture des tests ne doit pas devenir un repoussoir, et les bonnes pratiquesCraftsmanship (pair-programming, revue de code) peuvent aiderl’ensemble de l’équipe à monter en compétence sur le sujet.Les outils des tests d’intégrationCe type de tests ne nécessite pas d’outil particulier. On peut donc réutiliserceux déjà utilisés lors des tests unitaires. Ici, il faut garder en têteque c’est l’approche du test qui change. On ne souhaite plus se cantonnerà une brique bien particulière, mais à plusieurs briques qui fonctionnenttoutes ensemble afin de vérifier que cette combinaison s’articule commeattendue.La compréhension et la maîtrise de cesframeworks sont des prérequis indispensablesau respect du dogme « une fonction - un test ».32 TechTrends #5, Décembre 2014

Les tests d’acceptanceLes tests d’acceptance permettent de tester l’ensemble d’une applicationWeb d’un point de vue utilisateur, en pilotant un navigateur. Cette idéen’est pas nouvelle, le projet Selenium propose de le faire depuis 2004. Cetype de tests permet de vérifier l’intégration de toute la stack d’une applicationWeb, depuis le navigateur internet jusqu’à la base de données.L’envie de substituer les tests d’acceptance aux tests unitaires est tentantemais contre productive. En effet, la philosophie et le but recherchésderrière ces deux types de tests sont radicalement différents mais surtoutcomplémentaires. Tandis que le test unitaire valide le comportement attendud’une partie du code par le « haut », c’est-à-dire d’un point de vuedéveloppeur, de façon isolée et indépendante du contexte d’exécution, letest d’acceptance a pour but de tester la tuyauterie de l’application et validerles bonnes liaisons entre chaque fonctionnalité de l’application.L’indéniable avantage de ces tests d’acceptance est l’automatisation de laphase de recette. Les équipes de développement peuvent se déchargerdes longues phases de tests manuels, leur permettant de se concentrersur les besoins métiers.Cependant, malgré l’importance et les avantages de ces tests, il faut êtreconscient des quelques contraintes liées à leur réalisation. En effet, ilssont coûteux en temps d’exécution : un test assez complet nécessite 2 à 5secondes pour couvrir un cas d’usage. En multipliant le nombre de cas etde « user stories », on peut rapidement arriver à un temps d’exécution dujeu de tests dépassant les 20 minutes. Dans ce cas, on ne peut plus parlerd’intégration continue, car le temps de feedback est beaucoup trop élevé.Pour conserver un temps d’exécution raisonnable, il faut se concentrer surles cas d’utilisation les plus communs. Les cas à la marge pourront êtrecouverts par des tests unitaires aux limites, ou bien par une batterie detests d’acceptance jouée plus rarement (de manière quotidienne plutôtque systématique par exemple).Plusieurs frameworks de tests d’acceptance sont disponibles dont Zombie.js,CasperJS, Selenium et Protractor.TechTrends #5, Décembre 2014 33

A4-Portrait (Front) kalendar ... - MyNemo
Assertion POS front 3a - Perkins
Front national ou l'imposture sociale - Europe 1
HistoMag'44 special Front de l'est - 39-45.org
ao Tear Off Front FRENCH - Autism Ontario
iON Front Cover_OL - HPI Racing UK
pour la liberté de circulation! >> for freedom of movement! - Frontex
22 | Lac de St Front - Vacances en Auvergne
Sénégal Front Matter - ANSD
front recto - Centre de recherche en horticulture - Université Laval
BROCHURE M-130 PLUS Front (Page 1)
Lego Front End Loader - 8453 (2003) - Front End Loader BI 8453/1
Lego Front End Loader - 8453 (2003) - Front End Loader BI 8453/2
Lego Front End Loader - 8439 (2004) - Front End Loader BI 8439 IN
2.2 TDS SBR-Front - ezi-fix.com
•Front de gauche •Délinquance •Argelès-sur-Mer - Le Travailleur ...