Falando em qualidade

Contextualização

Este artigo foi elaborado a partir de um estudo empírico, baseado na troca de experiências dos autores, e de pessoas de diferentes empresas que atuam com QA. Nosso objetivo foi entender a visão do mercado em relação a área de qualidade de software, e quais conceitos estão sendo aplicados no dia-a-dia.

O que é qualidade?

Vale dizer que:

  • Coluna de testing no board não garante qualidade;
  • O máximo de cobertura de testes de UI (automatizado ou manual), por si só também não – assim como apenas testes unitários;
  • Ter um QA no time, por melhor que execute seu trabalho, ainda não garante qualidade.

Qualidade é um conjunto de ações e pensamentos,  uma cultura, e entendendo isto, a mesma deve ser absorvida por todos, de maneira cíclica e contínua, sendo importante que os valores e objetivos da organização fortaleçam a construção desta cultura, ou seja, deve ser um direcionamento top-down.

Qual o papel do quality assurance?

O papel do QA vai além de executar testes, escrever cenários ou automatizar, ele é responsável por encontrar mecanismos que viabilizem a estabilização da qualidade como cultura, e promover a melhoria contínua dos processos utilizados ao longo do ciclo de desenvolvimento, ou seja, o QA pode ser considerado um agente, mas não é ele o único responsável por garantir a qualidade do produto.

Quais as atribuições do QA em cada etapa?

Concepção – na etapa de descoberta e idealização de um produto o QA é o cara que poderá:

  • Auxiliar o PO e o UX com a visão macro do negócio;
  • Validar artefatos (requisitos funcionais e não funcionais, layout, teste de usabilidade, entre outros);
  • Identificar cenários não cobertos pelos critérios de aceite;
  • Auxiliar o PO a categorizar cenários para automação.

– Como assim o QA auxilia o PO a categorizar cenários para automação?

– Estranho não é? Mas calma, a gente explica.

Sendo o PO o principal representante do negócio e de seus stakeholders, faz sentido que ele identifique os maiores riscos do seu produto, apontando os cenários que não podem falhar de jeito nenhum, desta forma o QA poderá concentrar mais atenção a estes pontos.

Desenvolvimento – vale lembrar que o QA não está aqui para apontar erro de ninguém, mas sim:

  • Auxiliar o time a criar e executar testes unitários, integrados e de UI;
  • Estabelecer quality gates das pipelines de CI;
  • Validar as entregas junto a área de negócios;
  • Agendar testes de regressão no CI.

– O QA não vai testar, ele não automatiza, ele não faz NADA?

– Calma, vamos explicar isso também!

Todos somos responsáveis pela qualidade, logo, o desenvolvedor deve escrever testes de unidade, de componente e até de  interface, afim de garantir a qualidade da sua entrega, e o QA é responsável por gerenciar tudo isso, estando sempre alinhado com as perspectivas do time e da empresa.

Produção – aqui vale uma máxima:

Aquilo que não se pode medir, não se pode melhorar – (William Thomson).

Cabe ao QA junto ao time, analisar as métricas geradas em produção, e criar um plano de melhoria no processo para garantir que dado um incidente, o mesmo seja detectado antes de realizar o deploy.

Todo bug pode ser considerado uma lição aprendida, ou seja, o time pode analisar e identificar a causa raiz com a finalidade de prevenir incidentes semelhantes, e é papel do QA fazer estas provocações.

Quais os principais testes devo aplicar para melhorar a qualidade do meu produto?

Cremos que a pirâmide de automação não seja uma grande novidade, de qualquer forma, se podemos dar alguma sugestão, usem-na como inspiração.

Tipologia sugerida:

E como posso acompanhar a saúde das minhas entregas?

Tente avaliar a qualidade dos componentes sistêmicos de acordo com os testes que serão aplicados. Para tal, é possível criar uma régua de avaliação de acordo com a realidade de cada empresa. 

Observação: É importante lembrar que sendo qualidade uma cultura, nada deve ser imposto, mas sim, apresentado como objetivos a serem atingidos.

Exemplificando a régua:

A régua nada mais é que os tipos de testes a serem aplicados, onde os níveis são dados pela cobertura que cada teste tem no CI. Os valores apresentados são meramente ilustrativos, não temos um estudo que comprove a efetividade destes valores.

Aplicando:

A aplicação da régua consiste em levantar a cobertura de testes aplicados a cada componente sistêmico que compõe o produto.

  • Nota por componente: soma dos níveis atingidos (de acordo com a régua) em cada tipo de teste dividida pela quantidade de testes aplicados. 

SNA/ STA = NC

Onde:

SNA = somatória dos níveis atingidos

STA = somatória dos testes aplicado

NC = Nota do componente.

  • Nota da aplicação: soma das notas de cada componente dividida pela quantidade de componentes da aplicação.

SNC/ SC = NA

Onde:

SNC = somatória das notas dos componentes

SC = somatória de todos os componentes do sistema

NA = Nota da aplicação.

Senhores e senhoras, é importante reforçar que este método não tem como objetivo cobrar ou expor as áreas, mas sim identificar oportunidades para aumentar a cobertura de testes de um produto. 

Ressaltamos ainda que testar, manualmente ou de forma automática, é uma atividade que auxilia na garantia da qualidade, trazendo mais segurança ao time e ao produto em si, mas não é o único meio e tão pouco será tão efetivo se antes de qualquer coisa, não houver uma mudança de mindset, onde qualidade seja uma questão de cultura presente em todas as etapas de desenvolvimento e absorvida por todos os envolvidos.

 

Comunidades recomendadas:

Você pode obter ajuda no nosso site ‘Falando em testes’ ou no nosso grupo do WhatsApp: https://chat.whatsapp.com/Bt0B7trqGvi8TESb89su1E

Sudeste:

Sul:

Conhece outros grupos ou comunidades?

Compartilhe com a gente!

Tem uma sugestão de tema a ser abordado nas próximas publicações ou quer participar?

Fale conosco!

Conheça os autores:

Eleandra Bruna S. Monqueiro

Há 8 anos atuo como agente da qualidade, com expertise em análise, qualificação, desenvolvimento e implantação de processos, além de desempenhar papéis de execução, planejamento e liderança times de qualidade de software.

https://www.linkedin.com/in/eleandra-monq/

Matheus Fernandes Dias

Certificado CTFL e CTFL-AT que aprecia muito mais o conhecimento adquirido com o estudo do que os certificados por si só. Formado em Gestão de Tecnologia da Informação, defensor da qualidade como cultura e pesquisador das diversas formas que ela junto com um kit adequado de ferramentas podem impactar na melhoria contínua de processos e produtos de tecnologia.

https://www.linkedin.com/in/matheus-fernandes-dias-ctfl-ctfl-at-b3a717100/

Thiago Lucena

Graduado em Analise de Sistemas – Unicastelo, há 13 anos atuando como agente da qualidade, desempenhando papéis de execução, planejamento e liderança em times de qualidade de software para dispositivos móveis (Mobile e Web). Apaixonado pela metodologia ágil, atuando como Scrum Master/Agilista nas horas vagas.

https://www.linkedin.com/in/thiago-lucena-9234ba6a/