Test Types & Methods

Écran opérateur pour tests fin de ligne

Un écran opérateur EOL doit être rapide, clair et à l'épreuve des erreurs. Découvrez comment concevoir l'interface pour les stations de test en fin de ligne.

JJulien Buteau
intermediate7 min de lecture14 mars 2026

Comment concevoir un écran opérateur pour les tests en fin de ligne

Un opérateur de test en fin de ligne (EOL) exécute le même test des centaines de fois par équipe. L'écran qu'il voit doit communiquer trois choses instantanément : quoi faire, si c'est réussi, et quoi faire ensuite. Ce guide couvre les principes de conception des écrans opérateur EOL et comment les implémenter avec OpenHTF et TofuPilot.

Principes de conception

1. La règle des 3 secondes

Un opérateur doit comprendre l'état de l'écran en 3 secondes. Cela signifie :

ÉlémentExigence
Indicateur réussite/échecFond vert ou rouge plein écran, visible à 3 mètres
Étape en coursTexte en grand montrant ce qui se passe
Action opérateurInstruction en gras quand une saisie est nécessaire
Tout le resteSecondaire, plus petit ou masqué

2. Minimiser les décisions

Chaque décision que l'opérateur prend est une chance d'erreur. Réduisez-les :

MauvaisMieux
Saisir le numéro de sérieScanner le code-barres
Choisir la variante produitDétection automatique depuis le préfixe du code-barres
Sélectionner la procédure de testUne station, une procédure
Cliquer sur « Démarrer le test »Démarrage automatique après scan du code-barres
Cliquer sur « Imprimer l'étiquette »Impression automatique en cas de réussite

3. Sécuriser le flux de travail contre les erreurs

RisqueAtténuation
Mauvais format de numéro de sérieValider le format du code-barres avant le démarrage
Tester la même unité deux foisAvertir si le numéro de série a déjà été testé aujourd'hui
Sauter le testVerrouiller la station d'emballage tant que le test n'est pas réussi
Manquer un échecAlerte sonore en cas d'échec, acquittement requis

Prérequis

  • Python 3.10+
  • OpenHTF installé (pip install openhtf)
  • SDK Python TofuPilot installé (pip install tofupilot)

Étape 1 : Concevoir le flux de test

Un test EOL doit suivre cette séquence :

Scanner le code-barres → Démarrage auto → Exécuter les phases → Afficher le résultat → Prêt pour l'unité suivante

Pas de menus, pas de configuration, pas de clics supplémentaires.

eol_operator.py
import openhtf as htf
from openhtf.util import units
from openhtf import PhaseResult


@htf.measures(
    htf.Measurement("supply_current_mA")
    .in_range(minimum=90, maximum=110)
    .with_units(units.MILLIAMPERE),
)
def phase_power_up(test):
    """Appliquer l'alimentation et vérifier la consommation de courant."""
    test.measurements.supply_current_mA = 101.2


@htf.measures(
    htf.Measurement("firmware_version").equals("3.1.0"),
)
def phase_firmware(test):
    """Vérifier que la version firmware correspond à la version de production."""
    test.measurements.firmware_version = "3.1.0"


@htf.measures(
    htf.Measurement("self_test").equals("PASS"),
)
def phase_self_test(test):
    """Exécuter l'autotest intégré du DUT."""
    test.measurements.self_test = "PASS"


@htf.measures(
    htf.Measurement("output_voltage_V")
    .in_range(minimum=11.8, maximum=12.2)
    .with_units(units.VOLT),
)
def phase_output_check(test):
    """Mesurer la tension de sortie principale."""
    test.measurements.output_voltage_V = 12.03

Étape 2 : Échouer rapidement

Placez la défaillance la plus probable en premier. Si la mise sous tension échoue, sautez tout le reste. L'opérateur voit l'échec en moins de 5 secondes au lieu d'attendre le cycle de test complet.

eol_operator.py
@htf.measures(
    htf.Measurement("power_good").equals("PASS"),
)
def phase_power_good(test):
    """Vérification rapide de l'alimentation avant le test complet."""
    result = "PASS"
    test.measurements.power_good = result
    if result != "PASS":
        return PhaseResult.STOP

Étape 3 : Connecter et diffuser

L'interface opérateur de TofuPilot gère l'affichage. L'opérateur voit la progression de chaque phase, les mesures avec leurs limites, et un résultat réussite/échec en plein écran.

eol_operator.py
from tofupilot.openhtf import TofuPilot

test = htf.Test(
    phase_power_good,
    phase_power_up,
    phase_firmware,
    phase_self_test,
    phase_output_check,
)

with TofuPilot(test):
    test.execute(test_start=lambda: input("Scanner le numéro de série : "))

Recommandations de disposition d'écran

ZoneContenuTaille
Barre supérieureNom de la station, heure actuelle, unités testées aujourd'huiPetit
CentreNom et statut de la phase en cours, ou résultat réussite/échecGrand (60% de l'écran)
Zone d'inviteInstruction opérateur quand une saisie est nécessaireMoyen, mis en évidence
Bas5 derniers résultats (réussite/échec par numéro de série)Petit, défilant

Code couleur

ÉtatCouleurSignification
InactifGris ou bleuEn attente du scan du code-barres
En coursBleuTest en cours
RéussiteVertL'unité a réussi toutes les phases
ÉchecRougeL'unité a échoué à une ou plusieurs phases
InviteJaune/ambreEn attente d'une saisie opérateur

Optimisation du temps de cycle pour l'EOL

Les tests EOL s'exécutent en continu. Chaque seconde de temps de cycle compte.

OptimisationEffet
Démarrage auto après scanÉconomise 2 à 3 secondes par unité
Pas d'invites inutilesÉconomise 5 à 10 secondes par invite
Ordonnancement des phases par échec rapideRéduit le temps de cycle moyen sur les unités défectueuses de 50%+
Commandes d'instruments en parallèleÉconomise 100 à 500 ms par phase
Mode kiosque (pas de chrome navigateur)Empêche la navigation accidentelle

Ce qu'il faut éviter

ErreurPourquoi
Texte réussite/échec trop petitL'opérateur doit se pencher pour le lire
Tableaux de mesures détaillés pendant le testDistrait de l'étape en cours
Fenêtres ou onglets multiplesL'opérateur se perd
Écrans de connexionLes opérateurs partagent les stations entre les équipes
Thème sombre sous éclairage d'usine vifFaible contraste, difficile à lire
Animations ou transitionsRalentissent la perception des changements d'état

Plus de guides

Mettez ce guide en pratique