Compartilhar 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 delas se ajusta melhor ao seu cenário de teste.

A solução de teste baseado em dados de tabela permite que você tenha controle detalhado sobre as variações dos parâmetros de dados, bem como a definição dos tipos de parâmetros. 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 dirigidos por dados 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 orientado a dados baseado em tabela.

O suporte a testes controlados por dados leve não fornece a fidelidade total que a solução de teste baseada em tabela oferece. Para esclarecer: o teste controlado por dados leve restringe os parâmetros de dados a serem WEX::Common::String(native) ou String(managed) em comparação com os vários tipos compatíveis com a solução de teste 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 tornar 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 relação a "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 combinatorial n-way de parâmetros nos bastidores e o método de teste será invocado para cada combinação. Para ler mais: teste orientado por dados leve e eficiente.

A expansão combinatória n-way que testes leves baseados em dados oferecem pode se tornar cara e fornecer retornos decrescentes à medida que o cenário de teste se torna mais complexo. Em um cenário de teste tão complexo, o PICT (Teste Combinatorial Independente Parwise) oferecido pela solução de teste baseado em dados baseado 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 PICT .

Usando o suporte de teste baseado em dados baseado em WMI , você também pode adicionar pré-condição aos 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 do nome do domínio ao executar o teste. O DataSource nesse caso é uma consulta WQL. Saiba mais sobre como aproveitar o teste baseado em dados baseado em WMI em seu cenário de teste.

Ciente de todas as opções listadas acima, você também pode criar um design em que uma combinação das opções acima possa 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