Génération automatique de tests
Activité de test outillée qui produit automatiquement des cas de test (et éventuellement leurs scripts, données de test et oracles) à partir d’artefacts sources tels que exigences, modèles, schémas d’API, interfaces ou code. La génération applique des règles, contraintes et critères de couverture pour dériver un ensemble de tests cohérent, traçable et réutilisable.
Objectifs principaux :
- Accélérer la conception des tests et réduire l’effort manuel.
- Améliorer la couverture et la cohérence des tests.
- Standardiser et industrialiser la production de suites de tests.
Entrées typiques :
- Exigences formalisées, modèles (p. ex. machines d’états), contrats/schémas (p. ex. OpenAPI), code source, règles métier, critères de couverture.
Sorties typiques :
- Cas de test lisibles, scripts automatisés, données de test, oracles (attendus) explicites ou heuristiques.
Techniques et approches courantes :
- Tests fondés sur des modèles (MBT) dérivant des tests depuis des modèles comportementaux.
- Conception combinatoire (pairwise/n-wise) pour réduire l’explosion des combinaisons.
- Génération à partir du code ou de la structure (p. ex. critères de couverture structurelle).
- Fuzzing et property-based testing pour générer automatiquement des entrées variées.
- Search-Based Software Testing (SBST) utilisant des algorithmes d’optimisation.
À distinguer de :
- Exécution automatisée des tests : l’exécution joue des tests existants, alors que la génération crée les tests.
Limites et précautions :
- Dépend de la qualité et du niveau de formalisation des artefacts sources.
- Risque d’explosion combinatoire sans contraintes ni priorisation.
- Nécessite une revue humaine pour valider la pertinence et l’oracle.
- Maintenance requise lorsque les artefacts sources évoluent.
Métriques utiles :
- Couverture atteinte par les tests générés, taux d’automatisation de la génération, défauts détectés, coût de maintenance des suites générées.
Termes liés : Conception de tests, Génération de données de test, Oracle de test, Tests fondés sur des modèles (MBT), Conception combinatoire.