Passive interoperability testing for communication protocols

Dans le domaine des reseaux, le test de protocoles de communication est une activite importante afin de valider les protocoles applications avant de les mettre en service. Generalement, les services qu'un protocole doit fournir sont decrits dans sa specification. Cette specification est une norme ou un standard defini par des organismes de normalisation tels que l'ISO (International Standards Organisation), l'IETF (Internet Engineering Task Force), l'ITU (International Telecommunication Union), etc. Le but du test est de verifier que les implementations du protocole fonctionnent correctement et rendent bien les services prevus. Pour atteindre cet objectif, differentes methodes de tests peuvent etre utilisees. Parmi eux, le test de conformite verifie qu'un produit est conforme a sa specification. Le test de robustesse verifie les comportements de l'implementation de protocole face a des evenements imprevus. Dans cette these, nous nous interessons plus particulierement au test d'interoperabilite, qui vise a verifier que plusieurs composants reseaux interagissent correctement et fournissent les services prevus. L'architecture generale de test d'interoperabilite fait intervenir un systeme sous test (SUT) compose de plusieurs implementations sous test (IUT). Les objectifs du test d'interoperabilite sont a la fois de verifier que plusieurs implementations (basees sur des protocoles concus pour fonctionner ensemble) sont capables d'interagir et que, lors de leur interaction, elles rendent les services prevus dans leurs specifications respectives. En general, les methodes de test d'interoperabilite peuvent etre classees en deux grandes approches: le test actif et le test passif. Le test actif est une technique de validation tres populaire, dont l'objectif est essentiellement de tester les implementations (IUT), en pratiquant une suite de controles et d'observations sur celles-ci. Cependant, une caracteristique fondamentale du test actif est que le testeur possede la capacite de controler les IUTs. Cela implique que le testeur perturbe le fonctionnement normal du systeme teste. De ce fait, le test actif n'est pas une technique appropriee pour le test d'interoperabilite, qui est souvent effectue dans les reseaux operationnels, ou il est difficile d'inserer des entrees arbitraires sans affecter les services ou les fonctionnements normaux des reseaux. A l'inverse, le test passif est une technique se basant uniquement sur les observations. Le testeur n'a pas besoin d'agir sur le SUT notamment en lui envoyant des stimuli. Cela permet au test d'etre effectue sans perturber l'environnement normal du systeme sous test. Le test passif possede egalement d'autres avantages comme par exemple, pour les systemes embarques ou le testeur n'a pas d'acces direct, de pourvoir effectuer le test en collectant des traces d'execution du systeme, puis de detecter les eventuelles erreurs ou deviations de ces traces vis-a-vis du comportement du systeme.