Hoje vamos trabalhar com reflexões sobre a transição do meu papel de desenvolvedor para analista de QA.
Aviso: as opiniões deste artigo são minhas e qualquer pessoa é livre para discordar. =)
O início da carreira como desenvolvedor
Eu programo profissionalmente faz um pouco mais de sete anos, principalmente para web e usando tecnologias variadas. Nesse período, eu mudei de posição algumas vezes: antes de ser programador, eu já trabalhei como suporte e tinha vontade de me tornar um analista de infraestrutura (cheguei até a estudar para certificações Linux). Alguns anos depois, um caminho se abriu com uma oportunidade como programador e eu abracei.
Agora não foi diferente… Depois de sete anos exclusivamente como programador, surgiu a oportunidade de trabalhar como QA e eu achei válido experimentar.
A mudança para QA
A reação inicial de praticamente todos os meus amigos e colegas desenvolvedores ao falar sobre o meu novo papel foi essa:
Mas algumas pessoas reagiram positivamente:
No início, eu fiquei bastante incomodado com essas reações. Eram praticamente um aviso pra eu desistir e pedir pra voltar a ser um desenvolvedor normal. Mas eu decidi continuar no projeto e participar das reuniões do Capítulo de QA da empresa – a estrutura de engenharia do Spotify possui áreas de conhecimento chamadas “Capítulos”, e o Capítulo de QA reúne todos os profissionais dessa área na empresa – e ouvir a experiência dos outros QAs da Concrete e de fora, participando inclusive do Meetup de Qualidade de Software em SP.
Com isso, descobri que o mercado de QA está mudando. A figura do profissional que faz somente testes manuais está cada vez mais deixada de lado, enquanto a demanda por profissionais que saibam programar não para de crescer. Em um mundo onde o desenvolvimento ágil é a norma, os testes precisam de ser automatizados para não perdermos tempo.
As reações negativas que recebi, na verdade, eram fruto de um preconceito com o cargo e não refletem a realidade – talvez por pensarem apenas no QA que faz teste manual.
Então, quando comecei a estudar sobre o assunto, descobri que existem diferentes perfis de QAs no mercado (veja este artigo falando sobre o Testador Ágil). Dos perfis apresentados, o perfil que mais me chamou a atenção foi o técnico:
“Os QAs técnicos trabalham em par com desenvolvedores para construir a aplicação sem gap técnico. Eles codam juntos. Eles também ajudam os desenvolvedores a desenvolver usando TDD, promovendo boas práticas como código limpo e padrões de desenvolvimento, garantindo um código de alta qualidade.”
A epifania: o QA Desenvolvedor
Após essas descobertas houve uma epifania: o profissional de QA é um desenvolvedor, mesmo que ele não saiba disso.
Sim, ainda existe uma barreira entre os desenvolvedores e os QAs, e alguns desenvolvedores pensam que o seu trabalho é diminuído pelos QAs e vice-versa. Essa é uma barreira que o QA desenvolvedor de hoje p̶o̶d̶e deve ajudar a quebrar.
O que eu já sabia e percebi que podia ajudar
Depois desse momento mágico, eu vi que com a minha experiência existem várias coisas que eu poderia ajudar o Time, agora como QA:
- Testes de API: já trabalhei em projetos de desenvolvimento de API e esse conhecimento foi bastante útil para lidar com os Testes de API (ou Testes de Contrato);
- TDD e testes unitários : pareando com os desenvolvedores do time. Basicamente duas pessoas escrevem código no mesmo computador, no qual uma possui o papel do Piloto, que escreve o código, e o Navegador, que observa. Para quem conhece pouco ou nada de testes unitários ou TDD, recomendo participar de um Coding Dojo;
- Testes end-to-end: antes de atuar como QA eu já havia implementado algumas vezes testes end-to-end. Na Concrete Solutions nós criamos duas ferramentas para facilitar a vida para criar estes tipos de teste: o Magneton e o Sunomono (Web e Mobile respectivamente).
- Docker, Linux e outros conhecimentos de Infra do passado: este tópico não está diretamente ligado à minha vida como programador, mas foi um conhecimento importante que adquiri ao longo dos anos — antes e durante — a minha carreira como programador. Esse tipo de conhecimento é importante quando você precisa lidar com um CI/CD, ambientes de desenvolvimento, conversar com os DevOps, explicar alguma tecnicalidade para o cliente etc.
O que descobri que posso aprender
Devido ao tempo curto de um Sprint, é necessário que o profissional de QA esteja bastante próximo ao negócio, ajudando a identificar os percalços antes que os desenvolvedores passem por eles, prevenindo bloqueios ao time.
Acredito que o fato de ter estado do lado do desenvolvedor por tantos anos pode me ajudar a estreitar o abismo entre o negócio e os desenvolvedores. Ainda assim não é algo simples e requer uma soft skill de comunicação que eu acredito que preciso melhorar.
Outros assuntos que são importantes aprender são testes de segurança e de carga. Poder garantir que o software que o time está produzindo possui uma segurança aceitável e que ela aguenta pancada são argumentos mais do que suficientes pra mim.
O que você pode aprender
Estamos em 2017, gente. Acredito que já passamos do tempo em que saber programar era algo opcional. Eu entendo que pode ser complicado, mas é necessário dar o primeiro passo. Não faltam materiais gratuitos ou pagos de estudo ou comunidades nos quais é possível obter informação:
- agiletesters.com.br: comunidade brasileiras de analistas de teste;
- codecademy.com : aulas interativas de programação em várias linguagens diferentes;
- khanacademy.com : também possui aulas de programação;
- tryruby.org: mais uma aula interativa, apresentando Ruby;
- alura.com.br : ensino à distância de linguagens e frameworks, todos relacionados a desenvolvimento de software.
Esses são apenas alguns dos links que podemos buscar conhecimento.
Considerações finais
Espero com este texto ter ajudado, de certa forma, tanto o desenvolvedor que não conhece bem o papel de QA hoje, quanto o QA que não sabe da sua relevância no mercado atual.
Caso tenham dúvidas, críticas ou elogios, por favor comentem.
***
Artigo originalmente publicado em: http://www.concretesolutions.com.br/2017/01/18/o-qa-programador/