vendredi 13 octobre 2017

WINDEV développement par les tests

La conception d'un logiciel, site internet, web service, API… comporte différentes étapes : • analyse ; • spécifications techniques et fonctionnelles ; • développement ; • tests (unitaires, intégrations, validations) ; • recettes ; • maintenance. Cette liste n'est pas exhaustive, elle peut varier, être réduite ou complétée selon le contexte technique, client, budgétaire… La conception d'un logiciel et ses étapes s'orientent autour du cycle de développement, il en existe plusieurs : • modèle en cascade ; • cycle en V ; • cycle en spirale ; • cycle semi-itératif ; • cycle itératif. Chaque cycle possède ses avantages et ses inconvénients, ainsi que des défenseurs et des détracteurs. Ils ont tous un point commun, placer en premier l'écriture du code avant la phase de tests dans le cycle de développement. Cet ordre chronologique paraît logique, on teste ce que l'on vient de produire, pourtant une autre technique préconise l'écriture des tests avant l'écriture de l'application.
I - Le développement par les tests
Commençons cet article par la définition du TDD (source Wikipédia) : Le Test Driven Development (TDD) ou en français le développement piloté par les tests est une technique de développement de logiciel qui préconise d'écrire les tests unitaires avant d'écrire le code source d'un logiciel. Contrairement à d'autres cycles de développement logiciel (modèle en cascade, cycle itératif) plaçant les tests en fin de cycle, le TDD place les tests en première place dans le cycle de développement. C'est une méthode dans laquelle l'écriture des tests automatisés dirige l'écriture du code source.
La mise en place de la méthode TDD offre de nombreux avantages au sein du développement d'un logiciel. Voici les avantages apportés par l'emploi de cette méthode. 
Les tests unitaires sont réellement écrits
Comme évoqué dans les autres cycles de développement, les tests sont effectués à la fin d'un projet. D'après plusieurs enquêtes, 70 % des projets informatiques se terminent en retard, pour diminuer ce retard la phase de test est souvent réduite au strict minimum. Le fait de commencer par rédiger les tests permet de s'assurer que les tests seront écrits. 
Fiabilité du code 
En suivant la méthode traditionnelle, le développeur écrit une fonctionnalité et va ensuite procéder aux tests afin de s'assurer que ce qu'il a codé est valide. Mais inconsciemment le développeur teste son code comme il l'a conçu, le nombre de bogues trouvés est peu important et le risque de passer à côté de bogues est élevé.
Analyse détaillée et plus précise 
En effet, lorsque le développeur écrit du code de test pour tester une implémentation qui n'existe pas encore, il va devoir penser aux détails de la méthode dont il a besoin pour écrire la spécification. Aussi, il va alors s'interroger sur le nom de la méthode, sa valeur de retour, ses paramètres, son comportement…, cela permet de clarifier la conception et d'écrire seulement du code utile.
Vérification démontrable,
 répétable et automatisée Le fait de disposer d'un grand nombre de tests permet de s'assurer de la solidité et garantie du code. 
Absence de régression
 Lorsqu'un développeur modifie une méthode existante lors d'une phase de factorisation, il peut relancer les tests unitaires afin de s'assurer que sa modification n'a pas impacté l'existant et bénéficie d'un retour immédiat. 
Couplage plus faible et conception simplifiée 
Le TDD impose d'écrire le code des tests en peu de temps ce qui amène le développeur à concevoir du code avec un faible couplage et avec un niveau relativement simple. Malgré les avantages listés ci-dessus, il faut bien comprendre que le TDD n'est pas une réponse miracle aux problèmes de développements dans les équipes, il n'empêche pas les bogues et les erreurs d'analyse, de conception… Quand on évoque le TDD, un inconvénient revient souvent : 
Plus de travail 
Depuis longtemps le développeur n'aime pas effectuer les tests, il trouve cette partie du travail fastidieuse, non valorisante et limite hors cadre de sa fonction. En écrivant des tests unitaires, le développeur a plus de travail.

Aucun commentaire:

Publier un commentaire

افضل الطرق لتجاوز حظر المواقع TOR ، VPN و Linux

طرق ليس للاختراق بل للتوعية وحماية اجهزتنا وفي المستقبل ساشرح طرق و TRUC سهلة ل KALI و كذلك metasploit  فلنبدء إذا: هناك العديد من...