A proposta do teste de aceite é muito convidativa: em vez de ter uma equipe de testadores, que realiza diversos testes no seu software a cada release, isso passa a ser feito uma única vez, e a cada nova versão eles são rodados novamente, de maneira automática, através de alguns scripts.
Ferramentas como o Selenium e o WebDriver auxiliam nessa proposta e são agnósticos a tecnologias. Equipes ágeis de Ruby, C# e Java já as utilizam. Porém um problema que tem se tornado comum é a manutenção desses testes.
James Shore descreve bem esse problema em um post no seu blog. Na sua opinião, compartilhada por muitos na comunidade, testes de aceite acabam ficando muito lentos, sendo um peso para a equipe carregar, e já que é testada desde a interface até o back end, eles são quebradiços: pequenas mudanças provavelmente quebram testes já existentes:
...ferramentas de testes de aceitação servem invariavelmente para criar testes de integração end-to-end, que são devagares e quebradiços...Uma vez que você tenha muitos testes, eles se tornarão um fardo real de manutenção. Estes dois problemas--de clientes que não participam, o que elimina o propósito dos testes de aceitação, e que eles criam um fardo de manutenção significante, quer dizer que testes de aceitação não valem a pena. Eu não os uso mais e não os recomendo.
Mesmo que sejá fácil corrigi-los, dá trabalho mantê -los. George Dinwiddie discordou e postou uma resposta ao James Shore em seu blog. George diz que:
Minha experiência diz que, times que não fazem testes de aceite rapidamente chegam ao ponto onde adicionar novas features tornam-se lentas e lentas, exatamente porque isso toma tempo para testar todas funcionalidades. Algumas vezes eles começam a descobrir quais funcionalidades eles precisam retestando, a que não seria possível quebrá-la com aquela mudança.
Obviamente existem problemas, a tecnologia está evoluindo e ainda tem muito a melhorar, assim como foi no início da adoção dos testes de unidade. Apesar disso os testes de unidade não apresentavam tantos obstáculos e o feedback sempre foi rapido.
Há também estudos tentando encontrar formas de escrever testes de aceite mais manuteníveis.
Você acha que testes de aceitação são realmente importantes? O que você usa para melhorar o processo?