Validation fonctionnelle#

Stratégie#

La validation fonctionnelle de DataLab est basée sur une stratégie de test classique, avec un fort accent sur les tests automatisés. À l’exception d’un ou deux tests manuels (par exemple, un test de charge), tous les tests sont automatisés (plus de 99% des tests sont automatisés).

L’écriture des tests suit le principe TDD (Test-Driven Development) :

  • Losqu’une nouvelle fonctionnalité est développée, le développeur écrit d’abord les tests. Les tests sont ensuite exécutés pour s’assurer qu’ils échouent. Le développeur implémente ensuite la fonctionnalité, et les tests sont exécutés à nouveau pour s’assurer qu’ils réussissent.

  • Lorsqu’un bug est signalé, le développeur écrit un test qui reproduit le bug. Le test est exécuté pour s’assurer qu’il échoue. Le développeur corrige ensuite le bug, et le test est exécuté à nouveau pour s’assurer qu’il réussit.

Selon le niveau d’abstraction, des tests unitaires et/ou des tests d’application sont écrits. Lors de l’écriture des deux types de tests, le développeur commence par les tests unitaires puis écrit les tests d’application.

Types de tests#

La validation fonctionnelle de DataLab repose sur deux types principaux de tests :

  • Les tests unitaires (scripts de test nommés *_unit_test.py) : testent les fonctions ou méthodes individuelles. Tous les tests unitaires sont automatisés.

  • Les tests applicatifs (scripts de test nommés *_app_test.py) : testent l’interaction entre les composants (tests d’intégration), ou l’application dans son ensemble. Tous les tests applicatifs sont automatisés.

Implémentation#

Les tests sont implémentés en utilisant le framework pytest. De nombreux tests existants peuvent être dérivés pour créer de nouveaux tests.

Exécution des tests#

Pour exécuter les tests, le développeur utilise l’interface en ligne de commande. Voir la section Exécuter l’ensemble des tests pour plus d’informations sur la façon d’exécuter les tests de validation fonctionnelle.