Tag Archives: integração contínua

Testes automatizados

A idéia por trás de usar testes automatizados é possuir uma maneira rápida de se testar uma determinada aplicação. A etapa de testes em um processo tradicional de desenvolvimento de software é feitos após a conclusão da construção e, geralmente, feito de forma manual, o problema nesse caso é que é algo excessivamente repetitivo, caro, demorado e incerto. Quando você testa alguma rotinha do sistema e verifica que ela está ok, dificilmente você vai voltar nela para re-testar, pois você presume que não vai ter problema, afinal, você já o testou. Isso é normal e muito comum, é um trabalho muito chato ter que testar todo o sistema toda vez que fizer alguma alteração.

Produtividade elevada

Produtividade elevada

Uma maneira de resolver esse problema é fazendo com que o computador teste para você, ele é muito mais rápido, barato, não torna seu trabalho repetitivo, pois não requer interferência do usuário e usando algumas métricas como Code Coverage você consegue ter uma lista de testes que te dê uma certeza do que foi e o que não foi testado.

Estes testes são escritos na forma de código fonte pelo próprio programador que escreveu a rotina a ser testado, uma técnica muito famosa nessa área é chamado de TDD que sugere que os testes sejam escritos antes do programa em si, existem vantagens significativas no uso desta prática, mas não vou entrar nesse assunto.

Outra prática muito interessante é a de Integração Contínua, onde você tem um ambiente que gera um deploy completo do seu código, executa sua suíte de testes e te deixa informado sobre os resultados. Se der certo, o produto está pronto para ser colocado em produção livre de bugs. Aqui vale uma observação, testes funcionando não significam que seu software não tem bug, mas te deixa ciente de que todos os bugs conhecidos e já testados nunca mais vão ocorrer novamente.

É comum pensar que ao utilizar testes automatizados não iremos mais precisar de uma área de testes, na minha opinião isso está errado e a área ganha ainda mais significado, ela precisa encontrar bugs, quanto mais bugs que ela encontrar, melhor. Todos esses bugs devem ser passados para a equipe de desenvolvimento que vai se responsabilizar de simular o erro usando testes automatizados, isso vai garantir que o mesmo bug nunca mais ocorra.

Quer saber mais sobre? Sugiro a leitura dos seguintes links, alguns conceituais e outros com exemplo de implementação. Se você trabalha com .Net e quiser aprender TDD, sugiro a leitura deste meu post.

Compilando suas views no ASP.NET MVC

Uma das vantagens em se utilizar uma linguagem compilada é que alguns erros de digitação são pegos no processo de compilação e não somente quando você executa a aplicação. No ASP.NET MVC as views não são compiladas ao fazer o build no visual studio e, portanto, estão sujeitas a ter tais erros. O problema mais comum é quando você faz um Refactor -> Rename em uma de suas classes, o visual studio NÃO vai renomear essas classes em suas views, e você só vai notar o erro quando estiver nagendo na página. Para que o visual studio compile suas views, e consequentemente, resolva o problema citado, siga os passos:

  1. Com o notepad, abra o arquivo *.csproj ou *.vbproj da sua aplicação MVC.
  2. Procure a tag <PropertyGroup> e antes de fechá-la (</PropertyGroup>), adicione o seguinte conteúdo: <MvcBuildViews>true</MvcBuildViews>.

Existem várias tags PropertyGroup e cada uma deles corresponde a uma configuração de build dentro do visual studio (Debug/Release), utilize aquela que você achar melhor ou então insira dentro de todas elas. Feito isso, os problemas encontrados serão listados na aba Error List.

So far, so good

Compiling!

Só tem um porém, você vai sentir um enorme delay no build, o tempo de compilação quase triplica.

Quando se está trabalhando em um projeto pequeno não fará tanta diferença, agora quando seu projeto for muito grande, você pode optar por esperar enquanto toma um café, brincar de “lutinha” com seu amigo de trabalho ou pedir para seu chefe um servidor de integração contínua.

No caso de optar pela última opção (a melhor delas, mesmo gostando da segunda), você pode deixar para compilar suas views uma vez por dia caso demore muito.

É importante lembrar que uma aplicação compilada não significa que está funcionando, a melhor maneira de saber é rodando testes automatizados, logo TATFT.

Sharing Buttons by Linksku