Introduction aux tests en Python

Introduction aux tests en Python

Alexander Levin

Data Scientist

Pourquoi les tests sont-ils si importants ?

Problèmes courants :

  • Bogues et erreurs
  • Pannes matérielles
  • Comportement inattendu ou imprévisible

Tous ces problèmes peuvent entraîner une forte hausse des coûts pour les corriger.

Les tests aident à :

  • Repérer défauts, bogues et erreurs
  • Réduire les risques de défaillance logicielle
  • Améliorer la fiabilité, la fonctionnalité et la performance du logiciel
Introduction aux tests en Python

Qu'est-ce que le test ?

  • Test — processus d'évaluation d'un système ou d'un logiciel
  • Les tests vérifient le respect des exigences spécifiées

  • Essai — procédure qui vérifie l'exactitude d'une application ou d'un système logiciel

Introduction aux tests en Python

Prérequis du cours

  • Programmation Python avancée
  • Instructions assert
  • Décorateurs
  • Concepts POO (classes, méthodes, héritage)
Introduction aux tests en Python

Les tests dans la vie courante

Pensez aux avions :

  • Inspection visuelle
  • Vérification électronique et mécanique
  • Vérification du carburant
  • Vérification des passagers
  • Vérification météo
  • Autorisation de décoller du contrôleur aérien

Tout cela, ce sont des tests ! Et ils sont essentiels pour la sécurité.

avion avant le décollage

Introduction aux tests en Python

Assert en Python

  • assert condition — permet de vérifier si condition est True.
  • Si condition est False, Python lève un AssertionError.
Introduction aux tests en Python

Tester avec pytest — un exemple simple

pytest — un cadre de tests populaire en Python, qui simplifie l'écriture des tests.

Exemple de test "assert" écrit avec pytest en Python :

import pytest

# A function to test
def squared(number):
    return number * number

# A test function always starts with "test"
def test_squared():
    assert squared(-2) == squared(2)
Introduction aux tests en Python

Rappel : gestionnaires de contexte

  • Gestionnaire de contexte — objet Python utilisé avec l'instruction with
  • On emploie des gestionnaires de contexte pour configurer et rétablir un contexte temporaire
# Exemple d'écriture dans un fichier
with open("hello_world.txt", 'w') as hello_file:
    hello_file.write("Hello world \n")
Introduction aux tests en Python

Découvrir pytest : raises

pytest.raises — à utiliser quand un test doit lever une Exception

import pytest

# A function to test
def division(a, b):
    return a / b

# A test function
def test_raises():
    with pytest.raises(ZeroDivisionError):
        division(a=25, b=0)
Introduction aux tests en Python

Résumé

Les tests sont :

  • Un processus qui valide que le logiciel fonctionne comme prévu
  • Présents au quotidien
  • Essentiels pour relever les défis du développement logiciel
  • Utiles pour s'assurer que les problèmes sont bien traités

Mise en œuvre des tests :

  • pytest — un cadre Python puissant qui simplifie les tests
  • assert — mot-clé Python, utilisé dans pytest pour créer des tests de base en validant une condition
  • pytest.raises — gestionnaire de contexte, pour créer un test qui doit aboutir à une Exception
Introduction aux tests en Python

Passons à la pratique !

Introduction aux tests en Python

Preparing Video For Download...