Os profissionais da sua empresa, incluindo você, sabem como medir qualidade de software? Ao conversar com os executivos de tecnologia, é possível perceber que a cultura de qualidade de software está em evolução no Brasil. Os especialistas das empresas se preocupam, cada vez mais, em eliminar bugs, proporcionar uma boa experiência aos usuários e reduzir perdas financeiras e de imagem decorrentes de falhas. No entanto, muitos ainda não sabem como algumas ferramentas geram métricas, que devem ser usadas para avaliar se as aplicações estão evoluindo.
A boa notícia é que algumas informações já estão disponíveis e podem ser usadas para analisar quais os pontos de melhoria a serem trabalhados. As avaliações negativas sobre funcionalidades publicadas nas lojas de aplicativos ou em sites como o Reclame Aqui, são exemplos de informações a serem utilizadas por aqueles que desejam melhorar seu produto digital e a experiência do cliente. No caso de empresas que comercializam serviços ou produtos é indicado mensurar a taxa de conversão de acessos em vendas. Ao avaliar seu percentual mensal, é possível saber se mais clientes conseguem trafegar e concluir as compras sem problemas. Isso significa que o produto digital está cumprindo sua função.
Mas também é essencial avaliar a quantidade de problemas detectados por meio de testes e as melhorias de processos no desenvolvimento. Confira abaixo algumas formas de medir a evolução dos produtos digitais:
Backlog de bugs
É essencial fazer um backlog com todos os bugs encontrados durante os testes, sejam eles exploratórios, de API, regressão e até de performance, feitos no produto digital, inclusive classificando os problemas quanto à sua criticidade, impactos se não forem corrigidos, e repercussões para o usuário final.
O backlog é mais que um registro: os problemas reportados devem ser corrigidos, priorizando-se aqueles que geram mais riscos ao negócio e atrapalham a experiência do cliente. Além disso, é necessário efetuar uma revisão constante para saber quais bugs ainda estão presentes. É preciso ficar atento ao backlog, pois, ao longo do tempo é possível realizar análises e questionamentos. Caso ocorra uma queda no número de registros de bugs, isso se dá por qual motivo? Será que a qualidade do código aumentou? Ou a inserção de testes automatizados estabilizou o número de incidências?
Cobertura de testes automatizados
Parte dos cenários mapeados por meio de testes humanos (manuais) pode ser automatizada e quantificada. Mas é preciso entender as necessidades do negócio e priorizar as funcionalidades importantes, que geram mais impactos para o usuário ou demandam muito tempo para serem testadas manualmente. Produtos mais evoluídos tendem a ter uma maior cobertura por meio de automatizações implementadas em diferentes níveis da pirâmide de testes.
Os testes automatizados devem ser incluídos em uma ferramenta de Integração Contínua para que, a cada alteração do código, sejam apontadas novas falhas e defeitos. É possível acompanhar o percentual de testes inseridos na ferramenta. Uma recomendação é que 100% dos cenários críticos tenham esse acompanhamento.
Boas práticas
A evolução da qualidade no processo de desenvolvimento também precisa ser medida. É importante avaliar a adoção das boas práticas de desenvolvimento nas equipes. Processos com falhas, onde os bugs são reportados em arquivos errados ou não-oficiais (fora das ferramentas de gestão) e, por consequência, não são corrigidos – ou, pior, nem são reportados – devem ser eliminados.
As boas ações, como o reporte adequado, a correção dos problemas e a participação do QA (analista de qualidade) desde o início das discussões sobre as regras de negócio de um novo produto ou funcionalidade, devem ser mapeadas e implantadas nas equipes. Dessa forma é possível avaliar o percentual de adoção dessas práticas nas squads e trabalhar para melhorar o desempenho das equipes.
Otimização do tempo
Segundo o livro Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations, empresas de alta performance usam 49% do tempo de uma semana para desenvolver novas funcionalidades e processos. Isso acontece porque elas não demoram muito tempo para resolver problemas. Em contrapartida, equipes com baixa performance em desenvolvimento, ou seja, sem processos bem definidos ou instáveis levam uma porção considerável de tempo para corrigir falhas no produto (mesmo em ambiente de produção) e precisam retrabalhar funcionalidades que, se tivessem sido feitas corretamente desde o início, já teriam sido entregues.
Quando o time realiza a implementação correta do backlog de bugs, das automatizações de testes e das boas práticas de desenvolvimento, é possível reduzir a quantidade de horas dedicadas para testar o software. Pois, menos bugs serão gerados, as automatizações aceleram os testes de funcionalidades com ações repetitivas, as equipes sabem como se preparar para a avaliação e reportar corretamente os problemas detectados e têm mais tempo para criar funcionalidades e inovações.
Responsáveis
Os resultados obtidos demandam análise dos números e a realização de ações. Por exemplo, se o backlog de bugs está alto, os desenvolvedores precisam fazer as correções necessárias. Portanto, devem ser acompanhados com frequência por profissionais como diretores de tecnologia, QAs Leads, Tech Leads e profissionais de produto, para poderem providenciar junto ao time ações corretivas e melhorias nos processos da análise e o reporte dos resultados de desenvolvimento.
Lembre-se que qualidade não deve ser usada apenas para medir a quantidade de possíveis problemas, mas para promover a evolução do produto digital e agregar mais valor aos clientes, por meio da prevenção de falhas e melhorias de processos.
Grace Libânio, Head de Negócios da Sofist.