8 août 2024 Automatisation Méthodologie
[DISPLAY_ULTIMATE_SOCIAL_ICONS]

Bouchons et pilotes : qu’est-ce que c’est ?

[DISPLAY_ULTIMATE_SOCIAL_ICONS]

En feuilletant un syllabus ISTQB, vous avez peut-être rencontré les termes de « bouchon » (« stub » en anglais) et « pilote » (« driver »). Vous souhaitez clarifier ces notions ? Cet article est pour vous !

Les définitions officielles

Voici les définitions de ces termes tels qu’ils apparaissent dans le glossaire ISTQB.

Bouchon

Type de doublon de test fournissant des réponses prédéfinies.

Pilote

Un composant ou un outil temporaire qui remplace un autre composant et contrôle ou appelle un élément de test de manière isolée.

Ces définitions sont très concises et méritent un petit approfondissement pour y voir plus clair !

Qu’est-ce qu’un bouchon ?

Comme souvent, une métaphore permet de mieux comprendre de quoi il s’agit.

Pour comprendre ce qu’est un bouchon, on peut imaginer une comédienne qui doit répéter un passage, mais son acolyte de scène est encore en route. Pas question d’attendre. Une doublure la rejoint alors sur les planches avec le texte imprimé. À chaque fois que la comédienne dit une réplique, elle lit les réponses de la personne absente.

Un bouchon, c’est comme cette doublure. C’est une simulation de composant qui remplace un autre composant logiciel. Cela peut être pour deux raisons : soit ce composant n’est pas encore disponible, soit on veut réaliser un test en isolant bien les composants.

Imaginons un service en ligne qui permet de calculer les frais d’expédition d’un colis et d’imprimer un timbre en conséquence. Tout est prêt, sauf l’interface avec le service externe qui fournit les tarifs postaux en fonction du poids du colis. Un bouchon peut alors être utilisé pour simuler ce service, et ainsi permettre de réaliser une première simulation du scénario final.

Qu’est-ce qu’un pilote ?

Là encore, utilisons une métaphore ! Un pilote est un composant qui, comme son nom l’indique, va venir diriger, « donner des ordres » au composant à tester. Le pilote est la télécommande, la voiture télécommandée est le composant à tester.

Reprenons le même exemple avec une variante. Si le composant de calcul des frais d’expédition prêt mais que l’interface cliente n’est pas encore développée, un pilote peut être utilisé pour simuler cette interface et fournir les entrées nécessaires. Ainsi, on peut vérifier que le calcul est correct sans avoir à attendre que l’interface soit terminée.

Des petits bouts de code pour expliquer

Un petit bouchon

// Bouchon pour le service de tarifs
public class BouchonTarifsPostaux {
    public double getTarifExpedition(String destination) {
        // Retourne des tarifs fixes en attendant les "vrais"
        if (destination.equals("local")) {
            return 5.0;
        } else {
            return 10.0;
        }
    }
}

Ce bouchon pourrait être utilisé dans cette classe :

public class CalculatriceDeTarifs {
    private BouchonTarifsPostaux bouchon;

    public CalculatriceDeTarifs(BouchonTarifsPostaux bouchon) {
        this.bouchon = bouchon;
    }

    public double calculPrixExpedition(String destination, double poids) {
        double tarif = bouchon.getTarifExpedition(destination);
        return tarif * poids;
    }
}

Un petit pilote

import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;

public class TestCalculPrix {

    @Test
    public void testCalculPrixExpedition() {
        // Utilisation du bouchon
        BouchonTarifsPostaux bouchon = new BouchonTarifsPostaux(); // Création du bouchon
        CalculatriceDeTarifs calculatrice = new CalculatriceDeTarifs(bouchon); //

        // **Pilote**
        double prix = calculatrice.calculPrixExpedition("local", 2.0);
        assertEquals(10.0, prix, "Le coût d'expédition pour une expédition locale devrait être 10.0");

        prix = calculatrice.calculPrixExpedition("international", 3.0); // Appel de la méthode à tester
        assertEquals(30.0, prix, "Le coût d'expédition pour une expédition internationale devrait être 30.0");
    }
}

Explications

Le bouchon (BouchonTarifsPostaux) simule le service de tarifs postaux, fournissant des tarifs fixes pour les destinations.
Le pilote est le test unitaire (TestCalculPrix). Il initialise les objets nécessaires, appelle la méthode à tester (calculPrixExpedition) et vérifie que les résultats sont corrects.

Et vous, quelles métaphores et exemples utiliseriez-vous pour expliquer ce que sont les bouchons et les pilotes ?

Un avis ? Un commentaire ?

Cet espace est pour vous.

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Votre candidature

Veuillez activer JavaScript dans votre navigateur pour remplir ce formulaire.
Max 10Mo
Transmettez tout autre document pertinent pour soutenir votre candidature. Ex : lettre de motivation, lettre de recommandation, etc. - Max 10Mo
Recevez par email les derniers articles de blog, des conseils pratiques et l'actu de l'entreprise. Vous pouvez vous désabonner à tout moment.
Gestion des données