testes e manutencao.Em estudo realizado por Zhao e Elhaum [4], foi demonstrado que em apenas 39,6% dos projetos de software-livre, alguma ferramenta de teste foi utilizada e a grande maioria dessas ferramentas eram depuradores. Muito provavelmente esses dados refletem de forma semelhante a situacao de projetos de software de uma forma geral, nao apenas de software-livre. Porem o motivo principal desse acontecimento em projetos de software livre e a crenca na Lei de Linus, descrita por Raymond [5] da seguinte maneira: Dado uma base grande o suficiente de beta-testers e co-desenvolvedores, praticamente todo problema sera caracterizado rapidamente e a solucao sera obvia para alguem. Isso pode ser uma verdade em projetos de software livre detentores de comunidades ativas, entretanto nao tem como os desenvolvedores garantirem a existencia de uma grande quantidade de pessoas interessadas em colaborar com a evolucao do software para fazer assim valer a Lei de Linus. Dessa maneira e muito perigosa essa falta de atencao a utilizacao de ferramentas nas fases de back-end do desenvolvimento.ControversiaNo fato 31 a maior controversia esta relacionada a descrenca de que a remocao de erros gaste tanto tempo do processo de software. Porem, segundo Glass [1], em media 20% do tempo do processo e gasto com a analise de requisitos, outros 20% projetando, mais 20% codificando e impressionantes 40% removendo erros. O dobro gasto em cada uma das outras fases.Considerando que desenvolver software e uma tarefa complexa e propensa a erros, e muito improvavel que surjam tecnicas para a construcao de software que o livre de erros a serem removidos nos testes, porem fica claro pelos estudos de Glass que ao focar mais atencoes na essencia do problema a ser resolvido, o numero de erros cai consideravelmente.No fato 32, a maior controversia esta relacionada a nocao de softwares isentos de erros. Muitos especialistas consideram ser possivel isso ser feito, embora na pratica isso so aconteca geralmente para software de pouca complexidade. O objetivo ideal para projetos de software complexos e realizacao de testes que garantam que o software esteja isento de erros criticos.Muitas equipes nao dao a atencao adequada para a fase de testes de software e a grande maioria nao utiliza nenhuma ferramenta que analise automaticamente a cobertura dos testes ja realizados na estrutura. Essa falta de motivacao para utilizar ferramentas que automatizem a analise de cobertura geralmente ocorre por nao acharem viavel investir recursos para isso ou ate mesmo pelo desconhecimento dessas ferramentas.O Emma e uma ferramenta open source que ajuda nesta tarefa, fazendo a analise da cobertura de testes de um projeto Java e gerando um relatorio em formato texto ou HTML. Esse relatorio representa um feedback importante para os desenvolvedores, pois indica quais areas do projeto ainda nao estao sendo cobertas por testes automatizados e portanto devem ser tratadas prioritariamente [2]. A figura 1 apresenta um exemplo de relatorio gerado pela ferramenta Emma. Esse relatorio informa a porcentagem de cobertura de teste em cada parte da estrutura de um software. Figura 1: Relatorio HTML para cobertura de testeno Apache Velocity 1.4Para maiores informacoes sobre a ferramenta Emma, consulte o site