O que é teste baseado em dados? Aprenda a criar Framework

Teste baseado em dados

Teste baseado em dados é um método de teste de software no qual os dados de teste são armazenados em formato de tabela ou planilha. O teste orientado a dados permite que os testadores insiram um único script de teste que pode executar testes para todos os dados de teste de uma tabela e esperar a saída do teste na mesma tabela. Também é chamado de teste orientado a tabela ou teste parametrizado.

Estrutura orientada a dados

Estrutura orientada a dados é uma estrutura de teste de automação na qual os valores de entrada são lidos de arquivos de dados e armazenados em variáveis ​​em scripts de teste. Ele permite que os testadores criem casos de teste positivos e negativos em um único teste. Os dados de entrada na estrutura orientada a dados podem ser armazenados em fontes de dados únicas ou múltiplas, como .xls, .xml, .csv e bancos de dados.

Estrutura orientada a dados

Por que testes baseados em dados?

Teste baseado em dados é importante porque os testadores frequentemente têm vários conjuntos de dados para um único teste e a criação de testes individuais para cada conjunto de dados pode ser demorada. O teste orientado a dados ajuda a manter os dados separados dos scripts de teste e os mesmos scripts de teste podem ser executados para diferentes combinações de dados de teste de entrada e os resultados do teste podem ser gerados com eficiência.

Exemplo:

Por exemplo, queremos testar o sistema de login com vários campos de entrada com 1000 conjuntos de dados diferentes.

Para testar isso, você pode seguir diferentes abordagens:

Abordagem 1) Crie 1000 scripts, um para cada conjunto de dados, e execute cada teste separadamente, um por um.

Abordagem 2) Altere manualmente o valor no script de teste e execute-o várias vezes.

Abordagem 3) Importe os dados da planilha Excel. Busque dados de teste das linhas do Excel, uma por uma, e execute o script.

Nos três cenários apresentados, os dois primeiros são trabalhosos e demorados. Portanto, o ideal é seguir a terceira abordagem.

Assim, a terceira abordagem nada mais é do que uma estrutura baseada em dados.

Como criar uma estrutura de automação baseada em dados

Estrutura de automação baseada em dados

Considere que você deseja testar a funcionalidade de login de um aplicativo.

Passo 1) Identifique os casos de teste

  • Insira o nome de usuário e a senha corretos – Login bem-sucedido
  • Insira o nome de usuário incorreto e a senha correta – Falha de login
  • Insira o nome de usuário correto e a senha incorreta – Falha de login

Passo 2) Crie etapas de teste detalhadas para os três casos de teste acima

Caso de teste# Descrição Etapas de teste Dados de teste resultados esperados
1 Verifique o login para obter credenciais válidas
  1. Inicie o aplicativo
  2. Digite a senha do nome de usuário
  3. Clique em OK
  4. Veja os resultados
Nome de usuário: válido senha: válido Sucesso de login
2 Verifique o login para credenciais inválidas
  1. Inicie o aplicativo
  2. Digite a senha do nome de usuário
  3. Clique em OK
  4. Veja os resultados
Nome de usuário: senha inválida: válida Falha no login
3 Verifique o login para credenciais inválidas
  1. Inicie o aplicativo
  2. Digite a senha do nome de usuário
  3. Clique em OK
  4. Veja os resultados
Nome de usuário: senha válida: inválida Falha no login

Passo 3) Criar script de teste

Se você observar as etapas do teste permanecem comuns nas 3 etapas do teste. Você precisa criar um script de teste para executar estas etapas

// This is Pseudo Code 

// Test Step 1: Launch Application 
driver.get("URL of the Application");  

// Test Step 2: Enter Username 
txtbox_username.sendKeys("valid"); 

// Test Step 3: Enter Password 
txtbox_password.sendKeys("invalid"); 

// Test Step 4: Check Results 
If (Next Screen) print success else Fail

Passo 4) Crie um Excel/csv com os dados de teste de entrada

Estrutura de automação baseada em dados

Passo 5) Etapa Modifique o script para fazer loop nos dados de teste de entrada. Os comandos de entrada também devem ser parametrizados

// This is Pseudo Code
// Loop 3 Times
for (i = 0; i & lt; = 3; i++) {
    // Read data from Excel and store into variables
    int input_1 = ReadExcel(i, 0);
    int input_2 = ReadExcel(i, 1);

    // Test Step 1: Launch Application
    driver.get("URL of the Application");

    // Test Step 2: Enter Username
    txtbox_username.sendKeys(input_1);
    // Test Step 3: Enter Password

    txtbox_password.sendKeys(input_2);
    // Test Step 4: Check Results
    If(Next Screen) print success
    else Fail
}

Acima estão apenas 3 casos de teste. O script de teste pode ser usado para fazer um loop nos seguintes casos de teste apenas anexando valores de dados de teste a Excel

  • Insira o nome de usuário e a senha incorretos – Falha no login
  • Insira o nome de usuário e a senha corretos em branco – Falha no login
  • Insira o nome de usuário e a senha em branco – Falha no login

E assim por diante

Melhores práticas de Data Driven testing

Abaixo estão listadas as melhores práticas de teste para testes orientados a dados:

  • É ideal usar informações realistas durante o processo de teste baseado em dados
  • A navegação do fluxo de teste deve ser codificada dentro do script de teste
  • Impulsione APIs virtuais com dados significativos
  • Use dados para impulsionar afirmações dinâmicas
  • Teste resultados positivos e negativos
  • Adapte testes funcionais baseados em dados para segurança e desempenho

Vantagens dos testes baseados em dados

Data-Driven oferece muitas vantagens, algumas delas são:

  1. Permite testar aplicativos com vários conjuntos de valores de dados durante testes de regressão
  2. Os dados de teste e de verificação podem ser organizados em apenas um arquivo e são separados da lógica do caso de teste.
  3. Com base na ferramenta é possível ter os scripts de teste em um único repositório. Isso torna os textos fáceis de entender, manter e gerenciar.
  4. Ações e funções podem ser reutilizadas em diferentes testes.
  5. Algumas ferramentas geram dados de teste automaticamente. Isso é útil quando são necessários grandes volumes de dados de teste aleatórios, o que ajuda a economizar tempo.
  6. O teste baseado em dados pode realizar qualquer fase do desenvolvimento. Os cuidados de teste baseados em dados geralmente são mesclados em um único processo. No entanto, ele pode ser usado em vários casos de teste.
  7. Permite que desenvolvedores e testadores tenham uma separação clara entre a lógica de seus casos/scripts de teste e os dados de teste.
  8. Os mesmos casos de teste podem ser executados várias vezes, o que ajuda a reduzir casos de teste e scripts.
  9. Quaisquer alterações no script de teste não afetam os dados de teste

Desvantagens dos testes baseados em dados

Algumas desvantagens do método de teste de automação baseado em dados são:

  1. A qualidade do teste depende das habilidades de automação da equipe de implementação
  2. A validação de dados é uma tarefa demorada ao testar uma grande quantidade de dados.
  3. A manutenção é um grande problema, pois é necessária uma grande quantidade de codificação para testes orientados a dados.
  4. São necessárias habilidades técnicas de alto nível. Um testador pode precisar aprender uma linguagem de script totalmente nova.
  5. Haverá mais documentação. Principalmente relacionado à infraestrutura de testes de gerenciamento de scripts e resultados de testes.
  6. Um editor de texto como o Bloco de Notas é necessário para criar e manter arquivos de dados.

Conclusão

  • Orientado a dados é uma estrutura de automação de teste que armazena dados de teste em formato de tabela ou planilha.
  • Na estrutura de automação de testes baseada em dados, os dados de entrada podem ser armazenados em fontes de dados únicas ou múltiplas, como xls, XML, csv e bancos de dados.
  • Criar um teste individual para cada conjunto de dados é um processo demorado e demorado. A estrutura do Data Driven Testing resolve esse problema mantendo os dados separados dos testes funcionais.
  • Em Data Driven Testing, é uma opção ideal usar informações realistas
  • Ele permite testar aplicativos com vários conjuntos de valores de dados durante Teste de regressão
  • A desvantagem deste método é que ele depende das habilidades de automação da equipe de implementação