Blog > Automação de Testes em WebServices com SoapUI (Parte 2): Data-Driven Testing

20/fev

Neste segundo post da série "Automação de Testes em WebServices com SoapUI" veremos uma implementação básica de um teste seguindo o conceito de Data-Driven Testing (Teste Dirigido por Dados), funcionalidade disponível na versão Pro desta ferramenta.

O conceito de Data-driven Testing

Segundo o Wikipedia, " Data-driven testing (DDT) é um termo usado na área de Teste de Software para descrever testes feitos usando uma tabela de condições diretamente como dados de entrada e respostas, bem como, os processos onde configurações e controles não possuem informação escrita diretamente no código (Hard-Coded)."

Quando utilizamos este conceito, a inteligência dos testes executados passa a estar localizada em uma base de dados externa, geralmente em uma tabela, ao invés de estar diretamente no código.

A aplicação deste conceito se dá quando percebemos que está sendo necessário criar diversos scripts de teste iguais, mas apenas os dados são diferentes, por exemplo:

Teste #1

  1. Acesse a tela de login 
  2. Informe o login "julio.lima"
  3. Informe a senha "123"
  4. Clique em Ok
  5. Veja a mensagem "Sucesso ao acessar o sistema"

Teste #2

  1. Acesse a tela de login
  2. Informe o login "julio.lima"
  3. Informe a senha "321"
  4. Clique em Ok
  5. Veja a mensagem "Falha, senha incorreta"

Podemos perceber que ambos os testes possuem a mesma estrutura, e apenas os dados mudam. Seguindo o conceito DDT, nosso teste ficaria semelhante ao abaixo:

Tabela de Dados 

Login Senha Mensagem de resposta
julio.lima 123 Sucesso ao acessar o sistema
julio.lima 321 Falha, senha incorreta

Script de Teste 

  1. Acesse a tela de login
  2. Informe o login "[Login]"
  3. Informe a senha "[Senha]"
  4. Clique em Ok
  5. Veja a mensagem "[Mensagem de resposta]"

A quantidade de repetições do script será baseada na quantidade de linhas contida na Tabela de Dados, e em cada execução o valor contido nas colunas será atribuído às variáveis, aqui representadas por [ ].

Data-Driven Testing no SoapUI

A funcionalidade de DDT está disponível apenas na versão Pro do SoapUI, e pode ser utilizada em qualquer parte de um Caso de Teste. Ou seja, uma vez trabalhando com uma base de dados, podemos utilizar os valores contidos nela em requisições e respostas provenientes das operações da interface de um serviço.

Veremos abaixo um exemplo completo da utilização do conceito de DDT que será implementada no script que havia sido criado na  parte 1 deste ciclo de posts sobre SoapUI. A idéia é executar uma série de testes com diversas temperaturas, e verificar se as respostas estão corretas. A fonte de dados utilizada nestes testes será proveniente do elemento "DataSource Excel" disponível no SoapUI Pro:

Passo 1: Adicione o elemento DataSource dentro do TestStep

Dê um duplo clique sobre o TestStep, clique sobre o elemento DataSource:

 Nomeio como "DadosDeTeste":

Passo 2: Crie a tabela que contém os dados do teste

Vamos utilizar uma planilha do excel para armazenar os dados que serão utilizados nos testes, para isso, crie a planilha contendo os dados abaixo:

Selecione o tipo de fonte de dados que será utilizada, neste caso, "Excel":

Aponte a planilha do excel que contém os dados que serão utilizados nos testes:

Vemos que a célula onde irá iniciar a iteração precisa conter o valor "A2", pois a primeira linha da planilha possui os valores correspondentes ao título das colunas.

Clique no botão "Add a new property" para adicionar colunas contidas na planilha do Excel:

Adicione duas propriedades: Temperatura e Resposta

Passo 3: Altere os dados hard-coded por valores vindos da tabela

Abra a requisição "CelsiusToFahrenheit" e clique com o botão direito sobre o campo onde está o valor 37 e selecione Get Data > Step 1: [DadosDeTeste] > Property [Temperatura]:

Envie a requisição:

Vemos que a resposta foi "98.6":

Clique com o botão direito sobre a resposta "98.6" e adicione uma asserção de conteúdo, elemento utilizado para verificar a respostas obtidas a partir de requisições:

Clique com o botão direito sobre a resposta obtida "98.6"e selecione Get Data > Step 1: [DadosDeTeste] > Property [Resposta] e clique em "Save":

Passo 4: Finalizando e executando os testes

Dê duplo clique sobre o elemento "Test Steps"e clique sobre o botão "Create a new datasource loop", que é utilizado para fazer com que o teste seja executado novamente utilizando a próxima linha da tabela:

Nomeie-o como "DadosDeTeste Loop":

Aponte qual é o Datasource utilizado neste teste:

Para executar o teste clique duas vezes sobre o elemento "Test Steps" e clique no botão:

Vemos na janela do relatório de execução que a requisição foi executada 3 vezes e que em todas os testes obtiveram sucesso:

Conclusão

Utilizando o conceito de DDT é possível criar testes que consigam iterar em dados de uma fonte, facilitando a criação de combinações e reduzindo a duplicação de scripts. Uma vez que este conceito pode ser implementado dentro de um projeto de teste no SoapUI, posso aumentar a cobertura de testes, aumentando a variação de entradas e saídas utilizadas nos testes.

A Qualister é revendedora oficial do SoapUI no Brasil, e oferece treinamentos para turmas abertas EAD, Presenciais e In Company. Conheça nossos cursos acessando o link abaixo:

http://www.qualister.com.br/cursos/

Downloads

Fontes

http://en.wikipedia.org/wiki/Data-driven_testing

http://www.soapui.org/Data-Driven-Testing/function...

POSTS RELACIONADOS

AGENDA

CURSOS RELACIONADOS