Você deve estar aí pensando… “claro né, automação de testes também é desenvolvimento de software, portanto, deve ser iterativo e incremental, ixtepôw!” Porém, minha ideia aqui vai além disso. A ideia de processo iterativo (de iteração) e incremental (de incremento) começa lááá no teste manual.
“Como assim? Automação de testes começa no teste manual?”
Na minha experiência como testador de software, sim, pois comecei a trabalhar com teste de software em 2004, testando aplicações focadas para T.I., tais como softwares de atualização automática (tipo Windows updates), softwares para gerência de redes, firmwares para hardware, e testes da mesma aplicação em diversas línguas do mesmo sistema operacional. Nesta época, eu basicamente executava passos previamente descritos por um “analista de testes”, e sugeria e editava casos de teste (manualmente).
Daí passei para o testes de software para outros negócios, tais como automação bancária, automação judiciária, dentre vários outros tipos de negócios específicos, e logo notei pessoas trabalhando com automação de testes, e além disso, ganhando mais por isto! E quando digo ganhando mais, não estou falando só em termos financeiros, mas também em termos de ganho de tempo para focar em questões mais relevantes relacionadas à teste de software. E também, ganhando mais em qualidade de vida, visto que a automação esta aí para nos ajudar a não precisarmos fazer o mesmo trabalhar de forma repetitiva.
Com o tempo passei a perceber o extremo valor de se trabalhar com testes automatizados, mas sabia que isto exigia certa base de conhecimentos (em ferramentas, métodos de trabalho, tecnologias, etc.). E aí iniciou-se mais uma iteração, a qual adicionaria um novo incremento em minhas habilidades como testador de software.
Comecei a ler sobre o assunto; fiz trabalhos na faculdade (em uma cadeira de Administração da Produção) sobre o assunto, fazendo um link com os assuntos abordados na matéria; baixei versões trial de softwares de automação para começar a entender seus funcionamentos; e cursei alguns cursos específicos sobre o assunto.
Em uma segunda iteração, comecei a praticar o conhecimento aprendido. Tive que fazer testes automatizados utilizando recursos de record & play back, para mostrar que isto não funciona, para então demonstrar que automação de testes exige de um framework de testes.
Na pŕoxima iteração, já comecei a trabalhar em um contexto onde havia um framework de testes, o que facilitava muito o desenvolvimento de testes automatizados, mas ainda havia muita resistência com relação a seu uso, falta de confiança de sua efetividade e pouca proximidade com o time de desenvolvimento.
Daí então apareceu um tal de BDD (behavior-driven development). Este, um mundo totalmente novo para mim, porém, novamente comecei a buscar por uma base, participando de eventos relacionados ao assunto (preferencialmente daqueles tipo “mão-na-massa”), comecei a ler livros sobre o assunto e comecei a praticar. Com o BDD, percebi certa facilidade no desenvolvimento de testes automatizados, que realmente provém um feedback entendível ao time de desenvolvimento, e que asseguram testes de regressão em funcionalidades essenciais ao sistema.
Agora, estou ainda adicionando o incremento de obtenção de conhecimento sobre esta área (o BDD), a qual creio que vai seguir comigo por algum tempo, porém, também tenho planos de em uma próxima iteração, repassar à você o conhecimetno adquirido, pois acredito que automação de testes será cada vez mais parte do papel de um testador de software no mundo do desenvolvimento ágil, e além disso, acredito que testadores manuais possam adquirir, de forma iterativa e incremental, os conhecimentos e habilidades necessários para desempenharem este papel tão importante no desenvolvimento de aplicações com qualidade.
Dica de QA: Adicione incrementos em seu conhecimento de forma iterativa. Baby steps!
Veja a versão em Inglês deste post, aqui