Implémentation de la corrélation des données pour la génération de tests

Pour implémenter la corrélation de données pour la génération de tests, familiarisez-vous avec ces classes : com.ibm.rational.test.lt.datacorrelation.testgen.proto.IProtoElementAdapter, com.ibm.rational.test.lt.datacorrelation.testgen.DataCorrelator et com.ibm.rational.test.lt.datacorrelation.testgen.IDCStringLocator.

Pour implémenter la corrélation des données en vue de la génération de tests et de l'édition de scripts, vos éléments de modèle doivent étendre les classes com.ibm.rational.test.lt.models.behavior.data.DataSource et com.ibm.rational.test.lt.models.behavior.data.Substituter afin que vous puissiez associer les sources de données et les remplaçants à vos éléments de modèle. En outre, lorsque vous étendez ces classes, assurez-vous de bien implémenter le code de sorte à ce que les remplaçants et les sources de données soient remplacés dans votre modèle. Pour plus d'informations, reportez-vous à la documentation du modèle.

Vous devez créer votre propre plug-in de corrélation de données, qui étendra le point d'extension DCTestgenProto, défini dans le plug-in com.ibm.rational.test.lt.datacorrelation.testgen. Votre code doit implémenter l'interface IProtoElementAdapter définie dans com.ibm.rational.test.lt.datacorrelation.testgen.proto en vue de l'extension du point d'extension. Ensuite, lorsque vous étendez le point d'extension DCTestgenProto, utilisez les éléments suivants :
  • ID - Il s'agit de l'ID unique de votre extension.
  • Nom - Nom significatif.
  • Point - Point d'extension com.ibm.rational.test.lt.datacorrelation.testgen.DCTestgenProto
.
Les détails des autres éléments sont les suivants :
  • class - Il s'agit du nom complet de la classe (comprenant le nom du plug-in) qui implémente IProtoElementAdapter.
  • protoType - Type d'élément de modèle que traite ce plug-in ; par exemple, dans le cas d'HTTP, l'élément de modèle traité est com.ibm.rational.test.lt.models.behavior.http.HTTPRequest.
  • generic - Il s'agit d'une valeur booléenne pouvant être true ou false. Si la valeur est associée à true (vrai), cela signifie que si d'autres plug-ins traitent le même prototype, ce plug-in est appelé en dernier.
  • uniqueID - Cet ID est unique parmi tous les corrélateurs de données.

Une fois que vous avez étendu le point d'extension de la corrélation des données, le moteur de corrélation de données principal appelle votre code avec tous les éléments du type de modèle que vous avez défini.

La corrélation des données se compose de deux processus, lors de la génération du test. La première partie correspond à la corrélation automatique des données qui a lieu lors de la génération du test. Cette opération est effectuée via un appel à DataCorrelator.CorrelateAll(). Lorsque cette méthode est appelée automatiquement par testgen, elle appelle à son tour deux méthodes principales dans votre plug-in. Ces méthodes sont IProtoAdapter.findSubs() et IProtoAdapter.findReference(). La méthode findSubs() doit renvoyer une liste des remplaçants détectés pour l'élément en cours transmis à votre méthode ou la valeur null en l'absence de remplaçants. La méthode findReference() doit essayer de rechercher une référence pour le remplaçant qui lui est transmis. Commencez à rechercher les références à l'élément situées avant le remplaçant, puis poursuivez votre recherche en arrière dans la suite de tests jusqu'à ce que vous trouviez une référence appropriée. Si aucune référence n'est détectée, la valeur null est renvoyée. CorrelateAll est utilisé pour rechercher toutes les corrélations possibles de sorte que l'utilisateur n'ait pas à les rechercher manuellement lors de l'édition.

Les autres composants de la classe IProtoAdapter sont appelés lors de l'édition du test lorsqu'un utilisateur souhaite créer un site de substitution ou une référence, ou qu'il désire effectuer une corrélation entre un site de substitution et une référence. Si vous créez votre propre type de remplaçants ou de sources de données, vos méthodes makeDataSource() et makeSub() seront utilisées à ces fins. La classe DCStringLocator vous sera transmise avec toutes les informations relatives aux décalages et au texte nécessaires. Utilisez cette classe DCStringLocator pour déterminer le remplaçant ou la source de données à créer, puis rappelez IDataCorrelator. Les corrélations, les remplaçants et les sources de données sont créés automatiquement dans le modèle. Lisez la documentation relative à la classe IDataCorrelator pour savoir quelles méthodes appliquer.


Commentaires