Implementando a Correlação de Dados para Geração de Teste

Para implementar a correlação de dados para geração de teste, familiarize-se com estas classes: com.ibm.rational.test.lt.datacorrelation.testgen.proto.IProtoElementAdapter, com.ibm.rational.test.lt.datacorrelation.testgen.DataCorrelator e com.ibm.rational.test.lt.datacorrelation.testgen.IDCStringLocator.

Para implementar a correlação de dados para geração de testes e edição de scripts, seus elementos de modelo devem estender com.ibm.rational.test.lt.models.behavior.data.DataSource e com.ibm.rational.test.lt.models.behavior.data.Substituter para que você possa associar origens de dados e substitutos aos seus elementos de modelo. Além disso, ao estender essas classes, certifique-se de implementar o código para fazer com que Substitutos e Origens de Dados persistam no modelo. Para obter mais informações, consulte a documentação do modelo.

É preciso criar seu próprio plug-in de correlação de dados para estender o ponto de extensão DCTestgenProto, que é definido no plug-in com.ibm.rational.test.lt.datacorrelation.testgen. Para estender o ponto de extensão, o código precisa implementar a interface IProtoElementAdapter, a qual é definida em com.ibm.rational.test.lt.datacorrelation.testgen.proto. Em seguida, ao estender o ponto de extensão DCTestgenProto, utilize os seguintes itens:
  • ID - Esse é o ID exclusivo de sua extensão.
  • Nome - O nome que é significativo para você.
  • Ponto - Ponto de extensão com.ibm.rational.test.lt.datacorrelation.testgen.DCTestgenProto
.
Os outros detalhes do elemento são:
  • class - Nome completo da classe (incluindo o nome do plug-in) que implementa IProtoElementAdapter.
  • protoType - Tipo de elemento de modelo que este plug-in manipula, por exemplo, em HTTP, o elemento de modelo que é manipulado por com.ibm.rational.test.lt.models.behavior.http.HTTPRequest.
  • generic - Valor booleano que pode ser verdadeiro ou falso. Se for verdadeiro, significa que, se houver outros plug-ins que manipulem o mesmo protoType, esse plug-in será chamado por último.
  • uniqueID - Esse ID é exclusivo entre todos os correlacionadores de dados.

Depois de estender o ponto de extensão do mecanismo de correlação de dados, o mecanismo de correlação de dados principal chamará o código com todos os elementos do tipo de modelo definido.

Há duas partes na correlação de dados na hora de testgen. A primeira parte é a correlação de dados automática, que ocorre na hora do testgen. Isso ocorrerá através de uma chamada ao DataCorrelator.CorrelateAll(). Quando este método é chamado automaticamente por testgen, ele, por sua vez, chamará dois métodos principais no plugin. Esses métodos são IProtoAdapter.findSubs() e IProtoAdapter.findReference(). O método findSubs() deve retornar uma lista de substitutos, localizados para o elemento atual, transmitido no método, e nulo se nenhum substituto for localizado. O método findReference() deve tentar localizar uma referência para o substituto transmitido. Você começa a procurar por referências no elemento antes do substituto e continua trabalhando inversamente no conjunto de testes até localizar uma referência adequada. Se nenhuma referência for localizada, retorne nulo. CorrelateAll é utilizado para localizar todas as correlações possíveis, para que o usuário não tenha que localizá-las manualmente no momento de edição do teste.

As outras partes da classe IProtoAdapter são chamadas no momento da edição do teste, quando um usuário cria um site de substituição, uma referência ou faz uma correlação entre um site de substituição e uma referência. Se você estiver criando seu próprio tipo de Substitutos ou Origens de Dados, os métodos makeDataSource() e makeSub() serão utilizados para isso. A classe DCStringLocator será transmitida a você com todas as informações necessárias sobre deslocamentos e texto. Utilize esse DCStringLocator para determinar qual substituto ou origem de dados é preciso criar e, em seguida, chamar de volta para IDataCorrelator. As correlações, substitutos e origens de dados serão criadas no modelo. Leia a documentação sobre a classe IDataCorrelator para descobrir que métodos são apropriados para suas finalidades.


Feedback