Nossa base de códigos está crescendo há 20 anos. Somos cerca de 10 desenvolvedores + sqa trabalhando com 500kloc. Algum tempo atrás, uma pequena equipe de nós (2 desenvolvedores, um do sqa) começou a trabalhar em um programa de teste automatizado. Atualmente, uma execução leva 11h e é de alguma forma um teste de integração. Estamos trabalhando nisso para reduzir isso e reduzir os falsos positivos e estamos fazendo um bom progresso nisso. Mas os detalhes não devem importar.
Está funcionando bem e continuamos a melhorá-lo. Nós (a pequena equipe) gostamos muito. Se quebrarmos algo, notamos um dia depois e não dois meses depois, quando o sqa dá uma olhada. Além disso, nossos gerentes (dev + sqa) gostam da ideia. Mas outras pessoas na equipe simplesmente ignoram os resultados do teste. Na sua opinião, se os testes falharem após um check-in, é um problema do teste e não da alteração do código e é apenas o nosso projeto de brinquedo. Tivemos discussões várias vezes se um teste com falha é um erro real. Na maioria das vezes é.
Não podemos e não queremos impor algo. Como podemos mostrar que o teste automatizado é uma coisa?
fonte
Respostas:
aviso Legal
Embora eu possa parecer um gerente, escrevi isso como um desenvolvedor que também precisava ser convencido de que os testes automatizados são bons.
Você deve entender a psicologia básica dos desenvolvedores. É uma necessidade arraigada dos desenvolvedores para confirmar o código. Qualquer coisa que os impeça é algo muito, muito ruim. O teste reprovado é definitivamente algo que os impede de fazê-lo, portanto, é uma coisa ruim. Daí a resistência.
O que você deve ressaltar é que, embora os testes automatizados os reduzam a curto prazo, a longo prazo os poupará muito sofrimento e os acelerará, porque eles poderão se concentrar mais no desenvolvimento de coisas novas e perderá menos tempo fazendo a outra coisa que os desenvolvedores odeiam: corrigir bugs.
E sim, você deve aplicá-lo. Você deve obter o suporte incondicional do gerenciamento e tornar os testes automatizados de gravação obrigatórios e inegociáveis. Com o tempo, os desenvolvedores se acostumarão a eles. O que ajudará é se você puder conceber algumas métricas que mostrem quanto mais novos desenvolvimentos foram feitos e quanto o número de bugs foi reduzido desde a introdução dos testes automáticos. As palavras são voláteis. Os números são sólidos. E os números são algo que um desenvolvedor médio entende melhor do que palavras. Se você puder provar usando números sólidos que os testes automatizados são bons, obterá pouca ou nenhuma resistência a eles.
fonte
Esse é o seu problema. Se seus testes são inadequados (mesmo que sejam confiáveis "na maioria das vezes"), as pessoas tendem a ignorar os resultados. Sua equipe de automação deve se concentrar na eliminação desses falsos negativos. Somente então o restante da equipe ganhará confiança suficiente nos resultados para realmente confiar neles.
fonte
Você definitivamente deve aplicá-lo! Se alguém enviar um novo código e os testes falharem, o código deve ser rejeitado! É a única maneira de manter com segurança um projeto de software maior.
fonte