msdn14_capa.gif

Clique aqui para ler todos os artigos desta edição

Automação de teste de API no .NET

por James McCaffrey

Este artigo discute

Este artigo usa as seguintes tecnologias:

·          Automação de testes de aplicação

·          Técnicas de códigos para testes

·          Cenários de testes

.NET, VB.NET

 

Download:

TestRun0408.exe (124KB)

Chapéu

Testes

 

 

O tipo mais básico de automação de teste de software é o teste automatizado de API. O teste de API envolve essencialmente os métodos individuais que formam um sistema de software, em vez de testar todo o sistema. O teste de API também é chamado de teste de unidades, teste modular, teste de componentes e teste de elementos. Tecnicamente os termos são bastante diferentes, mas no uso casual podemos considerá-los como tendo o mesmo significado. A idéia é que você deve verificar se as partes individuais do sistema funcionam corretamente, porque se não funcionarem, o sistema como um todo não poderá estar correto. O teste de API é absolutamente essencial para qualquer sistema de software.

Nete artigo mostrarei as técnicas e princípios básicos do teste automatizado de API no ambiente .NET. A melhor maneira de ilustrar o que pretendo fazer é por meio de duas figuras. A Figura 1 mostra um aplicativo fictício no Windows®, que é o sistema completo que utiliza a biblioteca que estou testando. Durante o teste costumamos chamar o programa ou a API que estiver sendo testada de sistema sob teste (system under test - SUT) para distinguir do sistema da ferramenta de teste.

 

image001.gif
Figura 1
Aplicativo StatCalc

 

O aplicativo StatCalc calcula a média de um grupo de números inteiros. Nos bastidores, o aplicativo StatCalc consulta minha biblioteca MathLib.dll, que possui uma classe que contém os métodos ArithmeticMean, GeometricMean e HarmonicMean. Lembre-se de suas aulas de estatística: a média aritmética é uma média normal, a média geométrica é uma média de valores de índices, e a média harmônica é uma média de valores de razão. Para este exemplo, quero testar somente esses três métodos da biblioteca, não todo o aplicativo StatCalc, que contém código adicional para a interface de usuário.

Para testar manualmente na API um único caso de teste neste cenário, seria preciso criar um pequeno programa de teste, copiar e colar o código fonte de um dos métodos que eu estivesse testando do código fonte de MathLib.dll em meu programa de teste, inserir por hardcode alguns argumentos de entrada no método, executar o programa, examinar visualmente o retorno de saída, determinar de alguma forma se o resultado estaria ou não correto e gravar essas informações em algum lugar, por exemplo, em uma planilha do Excel. Eu precisaria fazer isso algumas milhares de vezes para começar a ter certeza de que entenderia o comportamento dos métodos que estivesse testando. E o pior de tudo, sempre que o código do sistema sob teste ou de sua DLL básica fosse alterado, eu teria que recomeçar tudo de novo. Uma estratégia muito melhor é usar os recursos poderosos do ambiente .NET para criar testes automáticos de API. A Figura 2 mostra o exemplo de execução de um programa que faz exatamente isso.

 

image002.gif

Figura 2 Saída do programa de teste

 

Neste exemplo, o programa de teste é um aplicativo de console que lê dados de casos de teste (ID do caso de teste, método a ser testado, argumentos de entrada e resultado esperado), chama o método especificado e compara o resultado com um resultado esperado para determinar se o teste foi aprovado ou reprovado. Nas seções a seguir, examinarei brevemente o sistema sob teste, para que você saiba o que estou testando e como estou testando. Apresentarei e explicarei com detalhes o programa de teste que gerou a saída mostrada na Figura 2, e descreverei como você poderá ampliar as técnicas apresentadas aqui para atender às suas necessidades.

 

O sistema sob teste

Um dos princípios mais básicos do teste de software é que você deve conhecer o sistema sob teste para poder testá-lo. E a melhor maneira de conhecer um sistema sob teste é examinar seu código-fonte. A ...

Quer ler esse conteúdo completo? Tenha acesso completo