Frederico Moreira

Comecei a me interessar por Agile Testing um pouco após do início da minha carreira, porém sem efetivamente saber do que se tratava. Em 2009 quando eu ainda tratava a Automação de Testes como um “super” desafio, através de um amigo de profissão tive acesso ao Livro Agile Testing – A Practical Guide for Testers and Agile Teams que assim como a grande maioria dos testers que já leram este, julgo como a bíblia do Agile Testing.

Mas antes de prosseguir já deixo uma primeira dica que é antes de estudar sobre Agile Testing, primeiro estudar sobre o “Manifesto Ágil”, considero de imensa importância entender os valores e princípios do manifesto, porque qualquer abordagem, práticas e etc que se derivar do manifesto irá seguir os mesmos valores e princípios.

Atualmente vejo em muitos currículos e até em perfis no Linkedin as pessoas escrevendo conhecimento em Agile Testing, mas será que estas realmente possuem este conhecimento? Assim como as pessoas as vezes falam que trabalham em times ágeis e na verdade aplicam parte de uma metodologia apenas, sem ao menos preocupar se estão agregando valor ou efetivamente aplicando as recomendações básicas da metodologia utilizada.

Acredito que não é apenas colocar um chapéu e dizer eu sou um Agile Tester ou então apenas por ter fortes skills de automação considerar ser um agile tester, o papel de um tester em um time ágil gira muito além de saber automatizar testes ou aplicar uma prática de BDD.

Partindo da quebra de paradigma que é necessária para atuar de uma forma mais efetiva em um time ágil, onde julgo que a comunicação é tudo, o tester precisa ter coragem, no sentido de sentar ao lado de um desenvolvedor e de uma forma amigável falar que alguma coisa não está certa ou não está retornando um comportamento esperado e ainda ajudando aumentar a cobertura dos testes unitários num time que utiliza TDD por exemplo. Até mesmo na hora de ajudar esclarecer um desejo de um cliente com perguntas, mesmo que talvez estas não sejam sempre pertinentes.


Enquanto nas metodologias tradicionais os testers esperam pelo documento de requisitos para deste derivar seus casos de testes, num time ágil o papel de um tester é questionar, levantar a maior quantidade de dúvidas que você tiver a respeito dos desejos de um cliente, ajudando assim não só a ele mesmo, mas o time inteiro entender melhor o que o cliente realmente deseja, como consequência você irá ajudar no planejamento gerando assim tarefas mais objetivas.

  Automação de Testes

 As skills de automação de testes desempenham um papel fundamental no Agile Testing, mas estas estão longe de ser o objetivo final, nem mesmo os testes manuais feitos de maneira exploratória, o objetivo do Agile Testing é fazer com que os testes sejam parte integrada e natural dentro de um processo de desenvolvimento ágil que seja Scrum, Kanban ou qualquer outro.

"Coisas" Técnicas

Entender de "coisas" técnicas é essencial! Muitas vezes testers tradicionais não tem acesso ao banco de dados da aplicação que estão testando, quando tem acesso nem se quer executam um Select qualquer. Não tem mais como fugir disto, pode ter certeza que entender "coisas" técnicas vai agregar e muito valor ao time e a qualidade do produto desenvolvido. 

Defino coisas técnicas como coisas "simples" mesmo, como uma query sql, alguma ferramenta de integração continua como Jenkis, Bamboo e Continuum, entender um pouco de CSS, um pouco da linguagem que o time utiliza, conhecer e utilizar algum framework da família xUnit. Não é se tornar especialista, mas sim saber como utilizar uma ferramenta X,Y,Z em pró do time ou saber o básico da linguagem utilizada no time para aumentar a cobertura dos testes unitários junto ao desenvolvedor por exemplo, não só implementando, mas contribuindo com cenários de testes que só nós conseguimos imaginar.

Testes Exploratórios

Segundo Elisabeth Hendrickson testes exploratório é "Uma abordagem sistemática para descobrir riscos utilizando técnicas de análise rigorosas juntamente com heurísticas de testes".

"Em um time ágil os testers utilizamos testes exploratórios para ajudar o time a identificar se estão evitando, com sucesso que os bugs cheguem ao código final." 

Teste manual existe sim em Agile Testing, mas de uma maneira diferente, na verdade de forma exploratória, onde simultaneamente um tester vai aprender sobre o software que está testando, utilizando a sua experiência e usando sempre o feedback do ultimo teste para executar o próximo.

Vinculado ao assunto os testers pode utilizar o SBT (Session Based Test) onde criamos um pequeno documento conhecido como Charter, podemos dizer que o charter é o objetivo do teste baseado em sessão. Abaixo segue um exemplo:

Explore it! By Elisabeth Hendrickson

A maturidade do time é muito importante, pois a qualidade passa ser responsabilidade de todos da equipe não só da pessoa com o papel de tester, o time agora é auto-organizado, onde a comunicação é tudo e fugindo do tradicional o time não responde mais e-mails, foco na colaboração, teste agora é uma atividade não mais uma fase, a suposição perde espaço para perguntas, prevenir bugs é MAIOR que procurar bugs, as alterações requisitados pelo cliente são "bem vindas", ou seja, são vistas de maneira diferente do tradicional e possuem maior aceitação.

Qualidade = Responsabilidade do Time

Uma das atividades mais interessante na minha opinião é decidir junto ao time a estratégia de automação de teste, ou seja, definir  em qual nível deve-se automatizar um cenário de teste, diferente dos tempos que eu trabalhava em empresas onde existia apenas testes automatizados na profundidade de interface (GUI Tests) e ainda feita apenas por testers, muitas vezes sem se pensar em arquitetura de um projeto de teste automatizado, algumas vezes projetos feitos apenas com record-play e sendo executado em uma quantidade de horas que tornava na maioria das vezes o projeto de automação incrédulo na visão de gerentes de projeto e diretoria de tecnologia das empresas. 

Pirâmide de Automação de Testes

Assim como a um tempo atrás eu fiz, aconselho a você testador, de modelo tradicional ou não, profissional alocado, profissional de fábrica de teste ou software a repensar sua carreira, é colocar na balança seus conhecimentos e desejos de evolução. Sair da zona de conforto quase sempre é um bom combustível de ânimo para uma evolução na carreira e possibilitando até a realização de um sonho de trabalhar com atividades incríveis/desafiadoras em um ambiente incrível que você sempre almejou. 

Adeus Zona de conforto

Muitas pessoas vão dizer: "Mas existe isso?""Existe este lugar?" Sinceramente não sei se todos encontrarão, mas ao apostar numa oportunidade que eu tive, me fez sair da zona de conforto e encontrar um ambiente / atividades com características bem perto do que eu sempre quis trabalhar.

A intenção  deste post foi trazer algumas informações e opiniões minhas sobre Agile Testing, já possuo uma certa experiência atuando efetivamente em times ágeis, mas acredito que temas como este são passíveis de discussões e de uma diversidade imensa de opiniões. Fiquem a vontade em concordar ou não, aqui críticas são bem vindas também! :)

Referências:

Elisabeth Hendrickson:
  1. http://www.slideshare.net/ehendrickson
  2. Explore It! new book on Pragmatic Programmers

  • https://leanpub.com/AgileTesting/read
  • http://blogdojonas.com.br/2014/05/18/o-papel-dos-testadores-nos-times-scrum/
  • http://www.stickyminds.com/article/how-software-tester-helps-during-product-discovery?page=0%2C1
  • http://blog.myscrumhalf.com/2014/03/melhorando-sua-estrategia-de-testes-automatizados/
  • Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin e Janet Gregory