Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests de service #58

Merged
merged 32 commits into from
Nov 21, 2018
Merged

Tests de service #58

merged 32 commits into from
Nov 21, 2018

Conversation

prytoegrian
Copy link
Member

@prytoegrian prytoegrian commented Oct 26, 2018

La pyramide des tests est un outil décrit par Martin Fowler dans un article, et est assez répandue dans le génie logiciel. Cette dernière précise que les tests logiciels se découpent (en gros) en 3 grandes classes :

  • les tests unitaires, précis et rapides, mais sans contexte
  • les tests de services (/ fonctionnels / intégration) qui vérifient les entrelacements des briques logicielles,
  • les tests d'UI (/ end to end) qui testent la totalité de l'application, serveurs activés ; mais ils sont plus lents.

Ces tests doivent être compris et faits dans un ordre précis afin que les variations ne soient pas plus grandes que nécessaires : si un test end to end crash suite à un changement de signature de fonction, c'est qu'il manque un test plus précis. Ce n'est pas son rôle de s'apercevoir de ça.

Bref.

Ça faisait longtemps que ça me turlupinait, je m'étais souvent retrouvé à découvrir des défauts alors qu'il y avait des TU sur les composants. Ces défauts arrivaient, car les objets ne fonctionnaient plus ensembles, j'ai donc décidé de chercher un outil complet de tests de plus haut niveau. Codeception est celui-là. Conçu pour réaliser la totalité des types de tests, il m'a aidé à réaliser les Tests Fonctionnels qui m'intéressaient.
Techniquement, ces tests se branchent sur le routeur de l'appli et passent à travers la totalité des couches, le tout sans serveur, ni web, ni bdd.
Comme tout bon test, j'ai créé des tests doubles, l'un pour la configuration (cf. ConfigurationFileChecker.php), l'autre pour la BDD en utilisant sqlite pour avoir des données fixtures accessibles très rapidement (merci PDO, cf DBConnector.php).
J'ai fait en sorte que ces tests, puisqu'ils sont plus couvrants, ne se lancent que lorsque l'on merge sur master.

La poursuite de cet objectif est de faire un pas de plus vers l'intégration continue, où chaque jalon est capable d'affirmer GO / NO GO sur la bonne santé du logiciel. Mon souhait est qu'en faisant ça, on soit beaucoup plus décomplexés dans nos développements (les tests nous montrant nos erreurs). Nous coderons ainsi plus vite, sans erreur, et nous pourrons supprimer des étapes superflues, comme la beta, améliorant ainsi le feedback utilisateur, et par suite notre pertinence fonctionnelle.

@prytoegrian prytoegrian self-assigned this Oct 26, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 6, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
@libertempo libertempo deleted a comment Nov 8, 2018
Copy link
Member Author

@prytoegrian prytoegrian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vu

@prytoegrian
Copy link
Member Author

... Et testé.

@prytoegrian prytoegrian merged commit 0abee83 into master Nov 21, 2018
@prytoegrian prytoegrian deleted the pry/behaviorTest branch November 21, 2018 23:55
@libertempo libertempo deleted a comment Nov 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant