As correlações de dados automatizadas requerem, às vezes, ajustes manuais,
e as correlações manuais complexas requerem, às vezes, um entendimento detalhado
de como o aplicativo testado será implementado.
Ao executar um teste, você pode perceber que o servidor não está no
carregamento esperado ou que seu banco de dados não está sendo atualizado conforme esperado. A
correlação de dados incompleta ou incorreta é a provável causa desses problemas. A seguir,
um procedimento recomendado para ajudá-lo a identificar problemas na correlação de dados antecipadamente:
Necessariamente, os algoritmos de correlação de dados do gerador de teste baseiam-se
nas boas práticas reconhecidas seguidas pelos designers do aplicativo. Como essas
práticas estão em contínuo desenvolvimento, estes tipos de erros de correlação de dados
automatizada podem ocorrer:
- Correlação insuficiente: valores de teste que deviam ter sido correlacionados
não foram. As três possíveis causas são:
- Dois parâmetros que devem ser correlacionados possuem nomes diferentes.
- Um valor deve ser correlacionado com um valor anterior que não aparece
no local esperado.
- Um parâmetro ou um valor deve ser correlacionado com um parâmetro ou um
valor anterior que não aparece no teste por ser um valor calculado.
- Correlação excessiva: foram correlacionados valores de teste que não são relacionados.
- Correlação incorreta: valores de teste que devem ser correlacionados são correlacionados
incorretamente.
Correlação Insuficiente: os parâmetros possuem nomes diferentes
ou aparecem em locais inesperados
Quando dois parâmetros que devem
ser correlacionados possuem nomes diferentes, a correlação de dados automatizada não consegue identificar
que os dois estão relacionados. Por exemplo, considere
o pedido http://www.madeupsite.com?id=12345. Em vez de id=12345, a resposta do servidor com a qual esse pedido deve ser correlacionado
é customer_id=12345. O id de parâmetro precisa ser correlacionado com customer_id.
De forma
semelhante, a correlação de dados normalmente relaciona um valor de resposta retornado do servidor
a um valor de pedido subseqüente. Os algoritmos de correlação automatizada consultam
nos locais usuais -- URL e Dados Post -- as sugestões de correlação. Mas são
possíveis outros esquemas para o retorno de parâmetros. Por exemplo, considere
o pedido http://www.madeupsite.com?id=12345. Em vez de id=12345, a
resposta do servidor com a qual esse pedido deve ser correlacionado é
o par nome/entidade href name="id" entity="12345". O id de parâmetro precisa
ser correlacionado com name="id" e o valor 12345 com entity="12345".
Alguns
outros exemplos mais gerais:
- O Siebel utiliza o formato de matriz em estrela: os algoritmos de correlação padrão
não entendem como recuperar-se e substituir nesse formato.
- O SOAP designa os parâmetros de correlação em arquivos XML externos: os algoritmos de
correlação não entendem a correspondência entre os parâmetros no
arquivo externo e no teste
Para correlacionar manualmente nesses casos:
- Utilizando a procura ou a navegação pelo teste, localize os dois parâmetros que devem ser
correlacionados.
- Vá para o parâmetro que aparecer primeiro no teste. Conforme explicado em Criando uma Referência ou uma Referência de Campo, coloque
o parâmetro em uma referência. (Em alguns casos, esse parâmetro já pode estar
em uma referência, portanto, esta etapa não será necessária.)
- Vá para o outro parâmetro. Conforme explicado em Correlacionando
um Valor de Pedido com uma Referência, correlacione o segundo parâmetro com
a referência mais antiga.
Correlação Insuficiente: um parâmetro não tem nome
É
possível que um parâmetro ou um valor precise ser correlacionado com um parâmetro
ou um valor anterior que não tem nome no teste, porque foi calculado (por
exemplo, por um programa Javascript). Nesse caso, para correlacionar corretamente,
será necessário entender como e onde o parâmetro ou o valor foi calculado
e, em seguida, utilizar um bloco de código personalizado. O código personalizado é discutido em Ampliando
os Testes com Código Java Personalizado.
Por exemplo, considere a URI http://www.madeupsite.com?login_stamp=12345_Dec_12_04,
em que login_timestamp é a concatenação do ID de login e a data atual.
Nesse caso, será necessário código personalizado que execute a concatenação do
ID de login e a data.
Em outro exemplo, suponha que o servidor tenha
retornado o ID de login e a data como entidades separadas (href "customer_id=12345"
Date="Dec_12_04"). Nesse caso, você pode colocar esses parâmetros em referências
separadas e, em pedidos subseqüentes utilizando o ID do cliente e a data, substituí-los
separadamente.
Correlação Excessiva
A correlação de dados automatizada baseia-se
na correspondência de padrões: um parâmetro ou um valor de parâmetro é correlacionado com um parâmetro
ou um valor de parâmetro subseqüente com um nome exato ou semelhante. Mas, às vezes,
os parâmetros com nomes exatos ou semelhantes não são na verdade relacionados. No melhor
caso, a correlação desnecessária é inofensiva ou inclui uma carga leve que é
inapropriada. No pior caso, o aplicativo não espera uma correlação
e falha durante a reprodução.
Para remover uma correlação de dados supérflua:
- No editor de teste, utilizando a procura ou a navegação (os valores correlacionados aparecem
em vermelho), localize um valor que não deve ser correlacionado.
- Clique com o botão direito do mouse no valor e selecione Remove Substitution (Remover Substituição).
Alternativamente, faça o seguinte:
- No editor de teste, clique em uma página que contenha pedidos correlacionados
inapropriadamente.
- Clique com o botão direito do mouse em qualquer lugar na tabela Dados de Teste e selecione Show References (Mostrar Referências).
- Clique em uma linha da tabela (letra vermelha) que esteja indicando uma correlação inapropriada
e clique no botão Remove Substitution (Remover Substituição) na
tabela.
Correlação Incorreta
Um parâmetro que requeira correlação
de dados pode aparecer várias vezes durante um teste. Por exemplo, um parâmetro de
ID de sessão que aparece inicialmente quando um usuário efetua login poderá aparecer em todos
os pedidos subseqüentes. É possível que várias instâncias de um parâmetro
em um teste não sejam os mesmas e que os algoritmos de correlação escolham
a instância incorreta.
As preferências de Geração de Teste incluem uma preferência
denominada
Optimize automatic data correlation for (Otimizar correlação de dados automática para):
- Accuracy (Exatidão): cada ocorrência do parâmetro é correlacionada
com a ocorrência anterior mais próxima. Esse é o padrão.
- Efficiency (Eficiência): cada ocorrência do parâmetro é correlacionada
com uma única ocorrência anterior.
As correlações de instâncias incorretas são menos prováveis com a configuração
Accuracy (Exatidão),
mas ainda assim são possíveis. Para corrigir manualmente esse problema:
- No editor de teste, utilizando a procura, a navegação ou a tabela Dados de Teste da página,
localize os valores correlacionados incorretamente.
- Clique com o botão direito do mouse no valor ou na linha da tabela e clique em Remove Substitution (Remover Substituição).
- Clique novamente com o botão direito do mouse no valor, selecione Substitute from (Substituir a partir de)
e selecione o parâmetro correto.