Pourquoi utiliser phpunit lorsque les tests manuels traditionnels peuvent être utilisés

14

Lorsque je crée une application web, je teste mon travail sur le navigateur pour voir si je reçois des erreurs et les corriger. J'ai fait des applications complexes et tester de cette façon a été facile et rapide. J'ai regardé de nombreuses vidéos sur YouTube concernant phpunit et je ne trouve pas de raison pour cela. Pourquoi cette bibliothèque est-elle utile? Phpunit est-il plus pour les cadres php comme cakephp ou zend? Je n'utilise aucun framework juste du noyau php. Est-ce que phpunit pourrait ou pourrait être utile pour moi? Si oui, comment?

Il y a aussi xdebug mais je ne sais pas si cela se rapporte.

Sarmen B.
la source
5
Combien de temps vous faut-il pour revérifier une application complexe dans chaque coin?
@ user1249, phpUnit n'est toujours pas en mesure d'effectuer des tests fonctionnels automatisés. Il ne fait que des tests unitaires automatisés.
Pacerier

Réponses:

12

Est-ce que phpunit pourrait ou pourrait être utile pour moi? Si oui, comment?

Oui définitivement.

phpunit appartient à la famille des bibliothèques de test xUnit . Vous utilisez ces bibliothèques pour créer des tests exécutables automatiquement qui vérifient le comportement de votre application. Ceci est important pour garantir, entre autres, que vos modifications ne rompent pas les fonctionnalités existantes.

Énumérer toutes les raisons des tests automatisés, les différents types et technologies seraient trop. Consultez les liens suivants pour en savoir plus:

BenR
la source
ironiquement, le premier lien de o'reilly 404'd
Félix Gagnon-Grenier
6

Supposons que vous vouliez tester manuellement votre application à chaque fois que vous la déployiez. Comment vous y prendriez-vous?

Eh bien, pour commencer, vous pourriez faire une liste de toutes les choses que vous voulez tester afin de ne pas oublier de tester quelque chose plus tard. Ensuite, vous écririez probablement les étapes de chaque test pour vous assurer de les faire de la même manière à chaque fois. Si vous ne vous êtes pas assuré que le processus de test que vous avez utilisé était cohérent, vos résultats ne seraient pas cohérents.

Donc, maintenant que vous avez la liste des tests que vous devez effectuer, vous devez ouvrir votre navigateur, lire les premières étapes du test, les exécuter et noter le résultat. Vous répéteriez ce processus pour chaque test de votre liste.

Le nombre de tests que vous effectuez continuerait à augmenter à mesure que votre application se développe et que vous trouvez de nouveaux bogues. Vous seriez, bien sûr, limité à effectuer ces tests à la vitesse humaine, ce qui les rend plutôt lents.

L'ironie ici est qu'en parcourant mécaniquement une liste d'opérations, vous calculez. Vous le faites simplement plus lentement que, disons, un ordinateur.

C'est, entre autres bonnes raisons, pourquoi nous écrivons des tests unitaires: ils laissent l'ordinateur faire l'informatique pour que vous n'ayez pas à le faire.

Je peux exécuter une suite de tests unitaires complète assez rapidement pour l'utiliser fréquemment pendant le développement, pas seulement une fois par semaine avant le déploiement. Cela me permet de détecter les erreurs plus rapidement, ce qui me fait gagner du temps et de l'argent.

Je peux même écrire des tests qui prédisent le comportement du système, puis écrire ce comportement (que je sais déjà correct parce que je viens de le tester), un processus appelé Test Driven Development.

Rein Henrichs
la source
5

Les tests manuels (c'est-à-dire en cliquant sur l'application dans le navigateur) sont en fait appelés tests fonctionnels. Les tests fonctionnels et les tests unitaires sont deux méthodes différentes utilisées en assurance qualité. Pourquoi pensez-vous que vous ne pouvez pas les utiliser tous les deux?

Les tests unitaires sont utilisés pour tester si votre code fonctionne comme prévu (par exemple, si votre service Web gère correctement les erreurs ou s'il renvoie les résultats comme prévu).

Lorsque vous cliquez sur votre application, vous testez la fonctionnalité de votre application.

Est-ce que phpunit pourrait ou pourrait être utile pour moi? Si oui, comment?

Le test unitaire présente de nombreux avantages - il peut être un outil très utile lors de la refactorisation car vous pouvez confirmer que le code fonctionne comme prévu. De plus, lorsque quelqu'un lit votre code, il peut être très utile de voir l'utilisation prévue du code dans les tests unitaires.

Christian P
la source
Les tests unitaires testent également le comportement. Vous créez une fausse dichotomie.
Rein Henrichs
@ReinHenrichs, les tests fonctionnels sont effectués par Selenium, pas PHPUnit.
Pacerier
1

Oui!

Oui. Absolument oui.

En fait, cela nécessite une qualification. Les frameworks de tests unitaires comme PHPunit sont utiles si vous écrivez et maintenez une application que d'autres personnes sont censées utiliser.

Les raisons pour lesquelles les tests unitaires sont utiles incluent

  • Test de régression pour les bogues spécifiques que vous avez exposés, et

  • L'exécution de tests unitaires est beaucoup plus rapide que les tests manuels et peut donc être beaucoup plus approfondie.

Dans l'entreprise pour laquelle je travaille, nous écrivons des tests unitaires avant d'écrire le code qui les réussit. Cela nous aide à produire des conceptions saines et testables (parce que nous devons penser à ce que nous allons écrire avant de le faire!) Et cela fournit un moyen facile d'affirmer que notre code répond aux exigences de l'utilisateur.


la source