Description du groupe MTV2

Méthodes de test pour la validation et la vérification MTV2

Site web : https://sites.google.com/view/gdr-gpl-mtv2

Responsables

Antoine ROLLET,
LaBRI,
antoine.rollet  (at) labri (dot) fr

 

Natalia KUSHIK,
TSP,
natalia.kushik  (at) telecom-sudparis (dot) eu

 

Nikolai KOSMATOV
CEA List & Thalès
nikolaikosmatov (at) gmail (dot) com
 

Pascale LE GALL
CentraleSupélec
pascale.legall  (at) centralesupelec (dot) fr
 

Description

 

Le groupe MTV2 s'intéresse à la validation et la vérification des logiciels par des techniques de test. Les partenaires impliqués couvrent un large spectre de techniques de test et  domaines d'application. L'expertise du groupe permet d'aborder des méthodes de test fonctionnel (test « boîte-noire »,) et de test structurel (test « boîte-blanche »). Les techniques de test « boîte-grise » (e.g. les techniques de génération massive de test, ou le fuzzing) deviennent aussi de plus en plus populaires,  et sont aussi abordées par des membres du groupe. Au niveau de la couverture de fautes, le test mutationnel offre une bonne stratégie pour évaluer la qualité d’une suite de tests.

Dans le cadre du test « boîte-noire », il s’agit de valider le système sous test en stimulant et observant uniquement ses interfaces associées. Les techniques de génération de test incluent différentes stratégies, à partir de tests aléatoires ou « fuzzy » aux tests basés sur les modèles formels ou semi-formels, où une couverture de fautes peut être garantie et/ou une relation de conformité peut être définie. Dans ce dernier cas, le modèle lui-même doit être scrupuleusement validé. Les techniques de vérification de modèles sont utilisées à des fins de génération de tests, comme l'exécution symbolique ou les techniques de model-checking.

Dans le cadre du test « boîte-blanche », le groupe s'intéresse à la spécification et la couverture des objectifs de test (notamment, à travers des critères de couverture de test). Puisque le code du système sous test est (partiellement) accessible, le groupe étudie des combinaisons avec différentes techniques de vérification telles que la vérification déductive, l’analyse statique ou la vérification à l'exécution des assertions.

Comme  les interfaces du système sous test ne sont pas toujours accessibles, le groupe contribue également aux techniques du test « en contexte »  ce qui permet d'apporter une réponse à la complexité croissante des logiciels. Ce problème peut également être abordé lors de l'exécution du test ; en conséquence, on considère le test non intrusif basé sur le monitoring.

Différents volets du test sont pris en compte, allant du  test unitaire au test  système, en ciblant par exemple le test conformité, de sécurité, d'intégration, de performances, de régression, de robustesse, de montée en charge, etc. Ainsi, le groupe contribue aux tests par rapport à la fois aux exigences fonctionnelles et non fonctionnelles. Différents domaines d’application sont considérés, e.g. les systèmes embarqués, les systèmes distribués tels que les applications web ou IoT, les systèmes cyberphysiques, les smartgrids.

Quel que soit l’objectif du test, il est toujours essentiel d’automatiser au maximum le procédé, de minimiser le nombre de séquences de test ainsi que d’optimiser le processus d’exécution de test. On compte sur des techniques de sélection et de priorisation des tests ainsi que sur des techniques de génération de tests. La détection d’objectifs de tests infaisables est un autre sujet de recherche, qui s’appuie souvent sur des techniques d’analyse statique.

Compte tenu du développement rapide des méthodes du domaine de l’intelligence artificielle, des travaux du groupe utilisent de telles techniques. Des exemples de telles utilisations incluent l'apprentissage du modèle (learning), les approches de reverse engineering, la résolution par contraintes, les algorithmes génétiques, ou encore la génération ou la priorisation de séquences de test. Plus globalement, des équipes du groupe commencent à s’intéresser à la validation de systèmes IA comme par exemple les réseaux de neurones.

Enfin, le groupe aborde la mise en œuvre de langages de spécification et d'outils pour la mise en oeuvre des techniques développées. Les partenaires industriels évaluent leur utilisation dans le contexte réel, étudient la pertinence des différents critères de couverture et communiquent au groupe leurs retours d’expérience et leurs besoins pour assurer efficacement la qualité des logiciels utilisés.