Vous en avez marre que vos applications bug quand tout semble ok ? Eh bien les tests sont la solution à votre problème. Mais comment tester ?
C'est ce que nous allons voir dans ce thread. A l'issu de ce thread vous devez savoir
- les differents type de test
- comment ils
C'est ce que nous allons voir dans ce thread. A l'issu de ce thread vous devez savoir
- les differents type de test
- comment ils
fonctionnent
- Comment automatiser le processus des tests
- La difference entre les types de test
- Quelques outils de tests
- Comment automatiser le processus des tests
- La difference entre les types de test
- Quelques outils de tests
Commençons par le testing manuel
Il consiste à faire les test à la main c'est à dire qu'on teste 1 par 1 les differentes parties de nos applications. Ce test est en general tres fastidieux et prend trop de temps, et imaginez vous devez le faire à chaque modification de votre
Il consiste à faire les test à la main c'est à dire qu'on teste 1 par 1 les differentes parties de nos applications. Ce test est en general tres fastidieux et prend trop de temps, et imaginez vous devez le faire à chaque modification de votre
application ... Ca prend enormement de temps. La solution de celà c'est les test automatisés. Faire des test automatisés consiste à écrire du code qui va tester pour nous ce que nous voulons tester. Ça parait bizarre mais vous avez bien entendu
(ou vu). Vous écrivez du code qui

va:
- faire des requetes vers la base de données pour vous
- voir si on obtient le resultat attendu
- faire des appels de fonctions
- voir si la fonction retourne ce qui est attendu
- se connecter et remplir un formulaire à votre place
- voir si tout fonctionne bien
- faire des requetes vers la base de données pour vous
- voir si on obtient le resultat attendu
- faire des appels de fonctions
- voir si la fonction retourne ce qui est attendu
- se connecter et remplir un formulaire à votre place
- voir si tout fonctionne bien
C'est cool non ? La difference entre tester un code manuellement et ecrire du code qui test pour nous c'est qu'en le faisant manuellement, faudra le faire à chaque fois qu'on modifie le code, ce qui est fatigant alors qu'en ecrivant du code qui nous fait nos test , on l'ecrit
une fois et à chaque fois qu'on veut faire des test on l'execute par une commande et on croise les bras, le temps qu'il s'auto-execute. Le travail devient donc beaucoup plus facile. Aussi en faisant du test manuel en tant qu'être humain on oublie souvent de tester certaines
parties. Alors que la machine elle n'oublie pas. Voyons maintenant les types de test automatisés
Il en existe principalement 3
1 - Le unit testing : Il consiste à tester un élément minimal du code, des elements qui ne dependent pas d'une base de données ou autre chose
Il en existe principalement 3
1 - Le unit testing : Il consiste à tester un élément minimal du code, des elements qui ne dependent pas d'une base de données ou autre chose
Par exemple une fonction, une classe ...
Il nous permet par exemple de voir si une fonction retourne bien le resultat attendu
Ils s'executent très rapidement mais ne suffisent pas pour réduire les bug de nos appli
Il nous permet par exemple de voir si une fonction retourne bien le resultat attendu
Ils s'executent très rapidement mais ne suffisent pas pour réduire les bug de nos appli
Car tester que les fonctions retournent bien le resultat attendu ne suffit pas pour dire que notre appli est ok
2 - L'Integration testing
Il consiste en général à faire des test sur des éléments qui dépendent d'autres ressources externes, tels que des bases de données.
2 - L'Integration testing
Il consiste en général à faire des test sur des éléments qui dépendent d'autres ressources externes, tels que des bases de données.
On l'utilise en général pour tester des API rest. Par exemple on peut voir est ce que si on fait telle requête, on obtient telle reponse avec tel statut.
L'avantage c'est que on a une plus grande confiance par rapport aux resultats et permet de reduire beaucoup de bugs liés au
L'avantage c'est que on a une plus grande confiance par rapport aux resultats et permet de reduire beaucoup de bugs liés au
backend de notre aplication. Mais leur execution est un peu lente car on fait appelle à une ressource externe tel une base de données.
3 - Le end to end testing. C'est le test qui va sur l'interface de notre application, remplit les formulaire, tel un humain. Ils donnent une
3 - Le end to end testing. C'est le test qui va sur l'interface de notre application, remplit les formulaire, tel un humain. Ils donnent une
confiance extrêmement grande par rapport au bugs mais sont également extrêmement lent à executer
.
Donc si vous voyez bien chacun d'entre ces test a ses avantages et ses incovenients.
Donc lequel utiliser ?
La réponse est ... tous les trois!
En fait, il existe ce qu'on appelle

Donc si vous voyez bien chacun d'entre ces test a ses avantages et ses incovenients.
Donc lequel utiliser ?
La réponse est ... tous les trois!
En fait, il existe ce qu'on appelle
le Pyramid Test qui dit que lorsqu'on fait des test, il faut utiliser tous les trois, mais d'une certaine maniere afin de maximiser les profits ( minimiser les lenteurs et maximiser la precision). Comment on fait ? On fait beaucoup de Unit testing vu qu'il se fait assez
rapidement, un nombre modéré de integration testing juste pour les éléments pertinents et très peu de End to End test car ils nous assurent une grande precision mais peuvent être extrêmement lent et sont très sensible car il vous suffit d'un petit changement sur le frontend pour
que les end to end test ne passent plus.
En mixant ces 3 éléments ainsi, vous aurez moins de bug et des tests rapides. Techniquement parlant c'est relativement facile d'écrire du code de test et il ne consiste qu'à des assertions qui doivent être fait disant
En mixant ces 3 éléments ainsi, vous aurez moins de bug et des tests rapides. Techniquement parlant c'est relativement facile d'écrire du code de test et il ne consiste qu'à des assertions qui doivent être fait disant
"fais telle opération, tu devrais obtenir ca comme resultat". Ensuite on execute une commande qui va lancer ces tests. Une fois que le test se termine il vous dit si tous les test sont passés, quels sont ceux qui ont échoué. En gros c'est ca
Et pour aller plus loin, rendre la
Et pour aller plus loin, rendre la
chose plus automatique, on peut l'inclure dans une pipeline. Il existe des outils comme CircleCI, TravisCI qui vous permettent d'ecouter votre repository github. A chaque fois que vous faite des changement et que vous envoyez sur github votre code (push) il peuvent executer vos
test automatiquement et même prendre une decision par rapport à ce code( décider de les merger ou de ne pas les merger en fonction de si les test passent ou pas)
Bref les test c'est vraiment une très bonne pratique de développement. Et quelques outils que je connnais par rapport
Bref les test c'est vraiment une très bonne pratique de développement. Et quelques outils que je connnais par rapport
aux test c'est Jest, mocha, Selenium(Je vous conseille de vous documenter dessus)
Après y'en a plein mais ils fonctionnent quasiment tous de la même manière.
Voilà c'est tout pour aujourd'hui. Espérant que vous avez appris quelque chose de ce thread
Après y'en a plein mais ils fonctionnent quasiment tous de la même manière.

Voilà c'est tout pour aujourd'hui. Espérant que vous avez appris quelque chose de ce thread