Les tests

(Ou comment ne pas flipper pendant les MEP)

De quoi on parle?

Tester, c'est douter

Tester, c'est savoir coder

Lexique

Tests unitaires

    Tester indépendamment une fonction/méthodes

 

Tests de validation

    Tester la conformité au cahier des charges

 

Tests d'intégration

    Tester l'ensemble des modules

 

...

Lexique

Cékoiça?

Lexique

Code coverage

    Unité de mesure relative à la qualité des tests écrits

 

Mock (bouchon)

    Simuler le retour d'une fonction lors des tests

 

Assertion

    Étape de validation d'un comportement

Pourquoi tester?

Automatiser les tests pour :

  • Gagner du temps
  • Rendre les systèmes robustes
  • Mettre en place un workflow
  • Tester la non-régression lors de modif internes
  • Structurer le code

Pourquoi ne pas tester

Écrire des tests...

  • ... c'est compliqué
  • ... c'est chiant à configurer
  • ... c'est chiant
  • ... ça prend du temps

 

On a déjà trop de features...

C'est pas possible de tout tester...

Comment tester?

Workflow pour une nouvelle feature

 

    1) Constuire un jeu de données cohérents

    2/3) Écrire les tests

    2/3) Écrire le code

    4) Pusher dans le saut de b*tes

    5) Mettre en production

 

To be continued...

Comment tester?

Workflow pour un bug

 

    1) Écrire le(s) test(s)

    2) Écrire le fix

    3) Pusher dans le saut de b*tes

    4) Mettre en production

 

To be continued...

Comment tester?

$I->wantTo("POST /users - Create a new user");
$token = $this->getToken('user', 'user', 'admin');
// $I->haveHttpHeader("Authorization", "Bearer " . $token);
$I->sendPOST('/users');
$I->seeResponseIsJson();
$I->seeResponseContainsJson(array(
    'status' => 200,
    'error_code' => 'success_request',
    'message' => 'OK',
    'results' => array (
        'first_name' => 'John',
        'last_name' => 'Doe',
        'email' => 'john.doe@mail.com'
    )
));

Le futur (proche ou passé)

Intégration continue (Bitbucket Pipelines)

 

Remontée du code coverage

 

API testée intégralement

 

Déploiement continu

Jamais sans mon test

Made with Slides.com