Guia Delphi

Testes Unitários Automatizados - Revista ClubeDelphi Magazine 151

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (5)  (0)

Nesse artigo abordamos os testes unitários, suas características através do framework DUnit e sua aplicação prática.

Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate.
Testes Unitários Automatizados
Um dos maiores desafios no desenvolvimento de software é garantir a agilidade. Porém a palavra agilidade quando interpretada erroneamente pode causar consequências desastrosas. Por exemplo, em um cenário pontual, a solicitação de um novo recurso a um projeto, sem muito estudo, pode ser implementada e colocada em produção em questão de poucas horas. Mas, o que tornou essa implementação tão rápida? Esse questionamento inicial conduz a vários outros, por exemplo, já existiam bibliotecas prontas para essa funcionalidade? O software já estava prevendo essa funcionalidade antes mesmo de entrar em produção? Essa nova implementação não faz referência a outras rotinas, minimizando impactos? Ou a rotina não foi escrita da melhor maneira possível, não foi testada adequadamente e não foi refatorada? Na maioria das vezes a pergunta que recebe uma resposta é a última, de forma negativa. Não testar ou melhorar um código pode produzir com o tempo um bug nesse novo recurso. Mas isso é só o início do problema.

Outro desenvolvedor poderá realizar a correção, e com isso, como garantir que o recurso funcionará da maneira como foi planejado? Quanto tempo seria necessário para corrigir e testar esse recurso? Como garantir que o bug não irá voltar em produção? E se os requisitos dessa funcionalidade mudarem, será fácil a adaptação? Essas são questões pertinentes que são levantadas quando não existem testes suficientes, nem processos de apoio durante o desenvolvimento. Nesse artigo abordamos os testes unitários, suas características através do framework DUnit e sua aplicação prática.


Em que situação o tema é útil
Códigos que são constantemente alterados necessitam de testes constantes. Rotinas importantes para o negócio desenvolvido também requerem testes constantes. Para acelerar o resultado desses testes são aplicadas automações, no caso, testes unitários. Dessa forma tem-se uma resposta rápida que diz se determinado código importante ainda funciona depois de uma alteração solicitada.

XP – Programação Extrema

A Programação Extrema (ou somente XP) é uma metodologia ágil que se fundamenta em cinco valores básicos: Comunicação, Simplicidade, Feedback, Coragem e Respeito. Dentro desses valores vamos destacar três. A qualidade de um código fonte está diretamente ligada a sua simplicidade. Quanto mais complexo e mais poluído for o código fonte, mais trabalhosa é a sua manutenção e evolução. Um código fonte limpo é a melhor ferramenta para evolução de um software. Mas, como fazer um código fonte limpo?

Existem inúmeras maneiras que devem ser combinadas, como por exemplo, quebrar métodos grandes em métodos menores, quebrar classes grandes em classes menores, uso de padrões de projeto, boa nomenclatura de classes, métodos e variáveis, eliminação de duplicidade de código, etc. Manter um código fonte limpo não é uma tarefa fácil, exige um processo de refatoração (Nota do DevMan 1) constante.

Nota do DevMan 1
Martin Fowler define a refatoração como uma técnica disciplinada para a reestruturação de um corpo existente de código, alterando sua estrutura interna sem mudar seu comportamento externo. Cadarefatoraçãoé uma pequena transformação aplicada ao código-fonte, visando melhorar sua legibilidade, performance, organização, adequação a um padrão etc.

Alterar um mesmo código constantemente pode conduzir a um sério problema, a coragem. É realmente seguro reestruturar completamente um método de 40 linhas, quebrando em métodos menores e renomeando variáveis de escopo interno? E como ter certeza que está funcionando após a refatoração? É claro, a resposta óbvia é realizando uma bateria de testes. Mas ai vem a pergunta, como esses testes seriam executados? Manualmente? Quanto tempo esse processo demoraria? É garantido que serão testadas todas as possibilidades básicas do método? O feedback desses testes seria realmente confiável? Chegamos à conclusão que para escrever um código fonte limpo e por consequência simples, é preciso estar constantemente executando refatorações, mas como criar coragem para executar a refatoração e como ter um resultado rápido dessa refatoração.

Testes unitários

Existem inúmeros tipos de testes, por exemplo, teste operacional, teste de volume, teste de stress, teste de configuração, teste de aceitação do usuário, etc. Grande parte desses testes foge ao controle do desenvolvedor, porém existe um tipo de teste que é de responsabilidade total do desenvolvedor, o teste unitário.

O teste unitário consiste na fase em que se testa pequenas unidades de software, por exemplo, os métodos de uma classe. Os testes unitários são testes criados e implementados pelo desenvolvedor, o que significa que esses serão rotinas automatizadas que não necessariamente necessitam de uma intervenção humana. O conceito inicialmente pode parecer complexo, mas imagine um método que calcule a soma de dois números, como mostra a "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?