Artigo Clube Delphi 60 - TestComplete

Artigo da Revista Clube Delphi Edição 60.

Esse artigo faz parte da revista Clube Delphi Edição 60. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.

TestComplete

Testes automáticos de aplicações

Conforme suas aplicações vão se tornando maiores, um problema em potencial começa a aparecer: a introdução de novos bugs no programa quando são feitas alterações no código. Você tem o programa relativamente estável, quando é solicitada uma modificação qualquer. A mudança é implementada, mas começam a aparecer erros em locais que funcionavam anteriormente.

Esse é um pesadelo que atormenta qualquer desenvolvedor, a ponto de alguns evitarem fazer mudanças substanciais no código. Isso se torna pior quando avaliamos nosso código e verificamos que está uma verdadeira bagunça e necessitamos fazer uma faxina nele (em “desenvolvimentês”, poderíamos chamar isso de refactoring).

Como fazer essas mudanças sem criar um novo problema? A resposta está em testes automatizados. Cria-se uma rotina de testes, que são executados a cada nova mudança, para verificar se não foram introduzidos erros. Essa rotina poderia ser feita manualmente, a partir de uma lista – a cada mudança, todos os itens da lista são verificados e, caso não haja erros, passa-se para a fase seguinte. Com um programa grande, torna-se demorado executar todos os testes, além de ter o problema de pular alguns passos. Após algum tempo, os testes são relaxados ou deixam de serem executados e os problemas aparecem adiante.

Uma solução é usar um Unit Testing, que pode ser feito usando DUnit (para Delphi) ou NUnit (para .NET): cria-se testes automatizados para os métodos das classes, que são executados a cada mudança, verificando a introdução de erros. Isso já é um grande passo, pois à medida que temos testes confiáveis, estamos seguros que não introduzimos erros em nossos métodos, além de ter uma base de teste sempre confiável, que é executada sempre da mesma maneira.

 

Nota: veja uma introdução ao DUnit com Delphi na edição 52.

 

O Unit Testing tem algumas limitações:

·Como garantir que a interação entre os métodos não criou novos erros? Embora tenhamos testado os métodos individualmente, nem sempre podemos garantir que a interação entre as classes esteja correta. Por exemplo, a classe funciona bem com uma instância, mas como funciona com duas instâncias ativas?

·Como fazer testes visuais: se um método é essencialmente visual (uma rotina de desenho na tela, por exemplo), como garantir que o resultado está correto sem verificá-lo manualmente?

·Como testar a interface de usuário? Devemos simular cliques do mouse ou teclar algo para obter um resultado – como fazer isso?

·Como verificar se a aplicação se comporta bem ao longo do tempo? Como saber se, após uma hora de uso, a aplicação não travará ou apresentará erros?

 

Podem-se criar testes que passem por cima de algumas dessas limitações, porém isso nem sempre é fácil, muitas vezes o teste a ser criado passa a ser tão ou mais complexo que o próprio código a ser testado (nesse caso, será que é necessário um projeto para testar o projeto de testes?)." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados