Un développeur ne conçoit pas une application web ou mobile en une seule fois sans s’arrêter. Ce n’est pas une méthode préconisée. Il doit faire des séries de test en cours de développement. Ceux-ci sont tout simplement indispensables au développement de projets de qualité. En effet, ils permettent d’éviter de nombreux dysfonctionnements du produit fini.
Voyons de plus près le rôle et le fonctionnement d’un test unitaire et penchons-nous en particulier sur l’outil Rspec qui est utilisé dans le cadre de projets Ruby on Rails.
1) Petit guide du test unitaire
a) Définition et fonctionnement du test unitaire :
Les tests unitaires ou UT en anglais se réalisent durant toute la phase de développement d’un programme informatique, d’une application web, mobile etc. Ils permettent de tester le bon fonctionnement du code (ou d’une classe en cas de programmation orientée objet) que le développeur est entrain d’écrire.
Un test unitaire se fait régulièrement sur de petites parties de code, ou modules, du programme. Le code de ce dernier est ainsi décomposé en unités individuelles testables et testées.
Le développeur les écrit tout au long de l’avancement de son travail pour vérifier le bon fonctionnement des différents modules au sein du projet global. Il est conseillé d’écrire ces tests avant même de commencer à coder chaque module. Dans ce cas, il s’agit du développement dit piloté par les tests ou test-driven development (TDD).
Le test de toutes ces parties du projet web, de chaque nouvelle fonctionnalité, garantit d’obtenir progressivement les résultats attendus sur le produit finalisé.
Ainsi, au moment du test final et du débuggage de l’application ou du logiciel, le développeur aura beaucoup moins de mauvaises surprises.
b) Avantages :
Pratiquer la méthode du test unitaire semble ainsi incontournable pour proposer des produits de confiance et de qualité. Ils offrent de nombreux avantages aux développeurs mais aussi aux clients.
- Mettre en place les tests unitaires offre un gain de temps :
En développement informatique, il vaut toujours mieux prévenir que guérir.
Si un développeur écrit des lignes de code sans test, il risque de compiler des bugs qui seront très difficiles à réparer. Car le retour en arrière en code est compliqué. Les tests unitaires permettent de déceler les erreurs à temps.
De ce fait, tester régulièrement si ses unités de code ne présentent pas d’erreur de programmation permet de prévenir ces soucis. Le développeur gagne du temps et développe un code propre et efficace.
Et qui dit gain de temps sur le développement d’un projet informatique dit budget moindre pour le client.
Bien entendu, les test unitaires à faire seront bien plus nombreux lors du développement d’une application complexe de type bancaire ou extranet de gestion que lors de la conception d’un site vitrine. Chaque projet est unique et nécessite des précautions particulières.
Quoiqu’il en soit le développeur ne doit pas rentrer dans l’excès et ne peut couvrir tous les cas.
Les tests sont là pour garantir la qualité du code et aussi la non-régression de ce dernier qui est tout aussi fondamentale. - Garantir la qualité en évitant la non-régression grâce au test unitaire:
Un développeur doit s’assurer que la modification d’un module de son projet ne provoque pas un problème dans un module existant, c’est le principe de la non-régression.
Les tests unitaires le permettent ainsi que l’intégration des modules entre eux.
2) L’outil Rspec pour les développements en langage Ruby :
Il existe plusieurs outils efficaces pour réaliser un test unitaire. L’un d’eux est Rspec. Il s’adresse aux développeurs utilisant le langage Ruby.
a) L’environnement de développement Ruby :
Un développeur peut concevoir son programme à l’aide de plusieurs langages informatiques différents. Ruby en est un. À l’aide de son framework Ruby On Rails (ou RoR), il permet de développer des applications web de qualité, complexes et performantes
Rspec est un framework, soit une boite à outils, qui permet de réaliser des tests unitaires dans cet environnement. Il teste si le code Ruby est fonctionnel. Il permet aux développeurs de pratiquer le développement par les tests (TDD) c’est-à-dire écrire les tests unitaires avant le code, de manière plus aisée.
b) Rspec :
Rspec a été lancé par Steven Baker en 2005. Sa première version date de 2007 puis la seconde, beaucoup plus aboutie, est sortie en 2014.
C’est un outil très simple d’utilisation permettant de tester des applications souvent complexes. Il propose une syntaxe simple, proche du langage écrit et offre une interface riche en lignes de commande. Il met à disposition de ses utilisateurs une documentation très fournie, le tout en open source. Il est devenu ce fait un des plus populaires outils de test du langage Ruby.
Grâce à Rspec, le développeur peut tester des applications créées avec Ruby on Rails.
Pour simplifier, ces applications sont souvent complexes. En effet, elles sont organisées en plusieurs couches pour pouvoir être modifiées indépendamment. Il y a :
- la couche « logique métier », à savoir les règles de gestion des données,
- la « logique de contrôle » qui organise l’interaction de ces dernières avec l’interface utilisateur,
- la « logique de présentation » qui s’occupe du rendu des données à l’utilisateur.
Toutes ces couches peuvent être testées séparément grâce à Rspec.
Utiliser Rspec permet donc de créer un code solide. Choisir le langage Ruby, son framework Ruby on Rails et « son chef d’orchestre » Rspec permettent ainsi de concevoir des applications web complexes, performantes et sans faille.
Dès lors, envisager un projet web évolutif n’est plus un problème. La non-régression est assurée lors du développement de nouvelles fonctionnalités. Ajouter des éléments se fait donc tout naturellement sans abimer ce qui est déjà conçu.
En savoir plus : http://rspec.info
Ajouter un commentaire