Groupe de travail

Méthodes de Test pour la Vérification et la Validation
MTV2

Thématique scientifique

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 langages et de techniques de test. L'expertise de ce groupe permet d'aborder des méthodes de test fonctionnel (test boîte noire), de test structurel (test boîte blanche), de test de robustesse, d'interopérabilité, de sécurité, le test statistique intensif. Le test de composants et notamment "en contexte" permet d'apporter une réponse à la complexité croissante des logiciels. En effet, le développement à base de composants logiciels est une tentative pour gérer la complexité croissante des systèmes et des technologies émergentes (les middleware, le code mobile, l'interopérabilité,...). Ainsi, le test s'intéresse également à la validation de composants par des techniques de test en contexte, de test d'intégration de composants. On s'intéresse à la mise à disposition d'une librairie de composants fiables et réutilisables. La distribution de ces composants est également prise en compte par des techniques de test distribué, réparti. La testabilité est une notion également importante qu'il faut considérer comme un attribut du système sous test qui représente l'effort nécessaire pour le valider. Il s'agit du degré selon lequel un système ou un composant facilite l'établissement des critères d'essai et l'efficacité des essais à déterminer si ces critères ont été respectés. Le test intervient à différents niveaux selon le modèle de développement choisi. La génération de test à partir de modèles formels ou semi-formels est une problématique largement abordée par les partenaires ainsi que la mise en oeuvre du test. L'activité de test nécessite de concevoir des algorithmes efficaces de génération de test et de concevoir des techniques de sélection des tests (aléatoire, couverture, objectifs, etc.), d'analyse de couverture de fautes. La formalisation de ces tests repose sur différents modèles et leurs extensions pour prendre en compte les particularités des systèmes à tester (les données, le temps, la récursion, les probabilités, la mobilité, la concurrence, etc.). Les outils de génération et/ou sélection de tests utilisent de plus en plus des méthodes à base de résolution de contraintes et de preuves. Dans la même idée de couplages de techniques différentes, on peut également citer les techniques de vérification de modèles qui sont utilisées à des fins de génération de tests.

Le groupe aborde la mise en oeuvre des tests, i.e. leur exécution sur l'implantation sous test et s'intéresse aux langages à utiliser pour les tests, comme TTCN3. La phase d'exécution et les phases amont de génération font l'hypothèse de pouvoir interagir avec le système sous test, or les interfaces ne sont pas toujours accessibles. Ainsi, des techniques de test passif ou de monitoring permettent de tester a posteriori (off-line) ou en parallèle avec son exécution le système en recherchant dans les traces d'exécution réelles des propriétés fonctionnelles.