Partilhar via


Teste controlado por dados

O Teste controlado por dados é uma metodologia de teste em que os valores de entrada e saída de um teste são separados do código. Esse formalismo normalmente significa que um pequeno investimento em tornar o código de teste um pouco mais genérico permite que um grande número de casos de teste seja escrito simplesmente identificando os dados envolvidos.

O Teste Controlado por Dados é ótimo para testar áreas que funcionam com um conjunto de valores de entrada que definem seu comportamento – por exemplo, ao testar uma API, os parâmetros de entrada e saída podem ser definidos como uma fonte de dados e o código de teste consome os dados, faz as chamadas à API e valida os resultados.

Suporte a testes controlados por dados no TAEF

O TAEF oferece uma variedade de opções para criar testes controlados por dados. Vamos entender essas opções para que você possa escolher qual se encaixa melhor no cenário de teste.

A solução de teste baseada em dados baseada em tabela permite que você tenha controle refinado sobre as variações de parâmetro de dados, bem como a definição dos tipos de parâmetro. O DataSource nesse caso é uma tabela definida em um arquivo XML. Você pode especificar os tipos de parâmetro (int, unsigned int, size_t, bool, double, DWORD, __int64 etc e sua variante de matriz homogênea) ou ter o tipo padrão para WEX::Common::String (nativo) ou cadeia de caracteres (gerenciado). Cada Linha na tabela é um conjunto de variação nos valores de parâmetro. O método de teste será invocado novamente para cada Linha na tabela. Aqui está um snippet de um DataSource XML para testes baseados em dados baseados em tabela:

1  <?xml version="1.0"?>
2   <Data>
3     <Table Id ="Table1">
4          <ParameterTypes>
5                  <ParameterType Name="Size">Int32</ParameterType>
6                  <ParameterType Name="Color">String</ParameterType>
7          </ParameterTypes>
8          <Row>
9                 <Parameter Name="Size">12</Parameter>
10                 <Parameter Name="Color">Blue</Parameter>
11         </Row>
12         <Row>
13                 <Parameter Name="Size">4</Parameter>
14                 <Parameter Name="Color">White</Parameter>
15         </Row>
16         <Row>
17                 <Parameter Name="Size">9</Parameter>
18                 <Parameter Name="Color">Black</Parameter>
19         </Row>
20    </Table>
21  </Data>

Para ler mais: teste baseado em dados baseado em tabela.

O suporte a testes controlados por dados leves não fornece a fidelidade total que a solução de teste baseada em dados baseada em tabela oferece. Para esclarecer: o teste controlado por dados de peso leve restringe os parâmetros de dados a serem WEX::Common::String(native) ou String(managed) em relação aos vários tipos compatíveis com a solução de teste controlada por dados baseada em tabela. Mas se você estiver procurando uma variação de dados rápida e de baixo custo (por exemplo, um ou dois parâmetros) para criar um método de teste controlado por dados e adicionar um arquivo XML, pois o DataSource parece não valer a pena, o teste controlado por dados leve pode ser exatamente o que você está procurando. Um ótimo exemplo disso é um desenvolvedor escrevendo um teste de unidade para uma API, digamos OpenThemeData(...) e deseja verificar a API em "Button", "Listbox" e "ScrollBar". Pode ser uma sobrecarga demais para criar um arquivo XML DataSource para isso, mas com o suporte a testes controlados por dados leves, isso pode ser feito com eficiência no próprio código-fonte. Se mais de um parâmetro for especificado, o TAEF gerará uma expansão combinatória n-way de parâmetros por trás da cena e o método de teste será invocado para cada combinação. Para ler mais: teste controlado por dados leves.

A expansão combinatória n-way que o teste controlado por dados leve oferece pode ficar cara e fornecer retornos decrescentes à medida que o cenário de teste fica mais complexo. Em um cenário de teste tão complexo, o PICT (Teste Combinatório Independente Parwise) oferecido pela solução de teste baseado em dados baseada em PICT pode ser o que você está procurando. PICT fornece muito valor gerando um conjunto compacto de resultados de parâmetro para obter cobertura abrangente sobre os parâmetros. Descubra links para saber mais sobre PICT e como usar essa solução na solução de teste baseada em dados baseada em PICT .

Usando o suporte a testes baseados em dados baseados em WMI , você também pode adicionar pré-condição aos seus testes, bem como obter informações (dados) com base nos recursos disponíveis no computador de teste. Por exemplo, se você quiser executar o teste somente se o computador estiver ingressado no domínio e também precisar das informações de nome de domínio ao executar o teste. O DataSource nesse caso é uma consulta WQL. Saiba mais sobre como aproveitar os testes baseados em dados baseados em WMI em seu cenário de teste.

Tendo em mente todas as opções listadas acima, você também pode criar um design em que uma combinação das opções acima pode parecer adequada. Por exemplo, talvez você queira usar uma consulta WMI para obter informações sobre todas as impressoras conectadas ao computador de teste, mas pode haver outro conjunto de parâmetros que pode ser definido antecipadamente usando um constructo de teste baseado em dados baseado em tabela. Várias especificações do DataSource também podem ser úteis, se você quiser que os dados do teste venham de duas tabelas separadas, permitindo que cada tabela seja reutilizável em outros testes. Leia os detalhes sobre como especificar vários DataSources para um teste e quais restrições se aplicam ao fazer isso: Especificando várias fontes de dados

Nesta seção