Está é minha nova mania. Usar testes funcionais automatizados. Primeiro comecei com um projeto pessoal meu, no qual a quantidade de regressões era enorme, e depois no trabalho, quando eu automatizei boa parte dos testes de uns sistemas bem cabeludos. E parece mágica, na segunda iteração de desenvolvimento, o custo de escrevê-los já se pagou.
Eu sempre tentei usar ao máximo automação de testes, quase sempre foi com os unitários, só que mais por conta da forma que eu desenvolvo. Agora que recentemente eu começei a usar pesadamente os funcionais, posso dizer que é o melhor investimento que uma equipe pode fazer em um projeto.
Primeiro que dificilmente um sistema não vá sofrer manutenções grandes ao longo de sua vida útil, então simplesmente o fato de poder executar de forma barata um enorme conjunto de testes é muito bom. Segundo, pela minha pouca experiência, automatizar testes funcionais custa em termos de tempo, pouco mais de 1,5x o custo de executá-los manualmente. Logo, na segunda execução você já entra no lucro.
Finalmente, uma boa suite automatizada de testes te da muito mais liberdade e segurança para fazer manutenções mais ousadas, de forma mais agil e gastando menos tempo.
Eu desenvolvi uma suite de testes funcionais para a JVM que estou escrevendo, ela é bem pequena, mas serve por enquanto para garantir todo funcionamento básico do sistema, e todo bug que encontro ganha mais um teste para aumentar sua robustes. Só isso me permitiu refatorar e reestruturar o sistema todo com poucos bugs sobrando.
Então, se você quiser dar uma sugestão para o seu gerente que vai melhorar em muito a qualidade dos sistemas produzidos pela sua equipe e reduzir custos, diga para ele que testes funcionais automatizados devem ser escritos para todo o sistema.
3 responses so far ↓
1 Carlos Villela // Oct 2, 2006 at 4:12 am
Outra regrinha bacana eh sempre que possivel, escrever um teste unitario (que roda BEM mais rapido) sempre que um teste funcional falhar.
Assim, nao soh a cobertura dos seus testes unitarios aumenta, mas vc evita builds muito longos (e talvez ache possiveis bugs na sua suite de testes funcionais, tambem).
2 Bruno // Oct 2, 2006 at 1:38 pm
Que ferramentas ou frameworks são usados para escrever testes funcionais?
3 kumpera // Oct 2, 2006 at 10:36 pm
Verdade Carlos, testes de regressão são muito uteis. Quanto a implementar eles como testes unitários ou funcionais é uma decisão particular de cada projeto.
Bruno, ferramentas para testes funcionais existem várias. Depende muito do seu sistema, para sites web, existe o Selenium. O Fit é um framework para criar suites de testes funcionais é recomendo bastate seu uso.
No meu caso mais recente, para exemplificar, eu programei o negocio todo, que é bem simples até se você for ver. São umas 10 classes responsáveis por subir um banco de dados, carregar a aplicação, executar os testes e verificar os resultados.
Estou usando javascript (via rhino) para verificar os resultados, de forma que é trivial escrever mais testes. Meu caso é bem atípico por se tratar de uma aplicação em lote que processa arquivos em disco, então a entrada de cada teste são um punhado de arquivos e a saída são alguns registros em banco e outros arquivos de resultado.
Leave a Comment