Carreira Dev

23 jan, 2017

O QA programador

Publicidade

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/