Testar o aplicativo pouco antes do lançamento já não é suficiente para garantir a qualidade do software moderno, segundo um artigo publicado no blog da JetBrains por Kerry Beetge. A ideia central é distribuir as verificações de qualidade ao longo de todo o ciclo de vida do desenvolvimento de software, para que os defeitos apareçam mais perto do momento em que são introduzidos, em vez de serem descobertos depois do acúmulo de mudanças e complexidades adicionais.
O artigo relaciona essa transformação ao aumento da dependência de código gerado por inteligência artificial; segundo uma pesquisa do Stack Overflow de 2025, 84% dos desenvolvedores usam ferramentas de inteligência artificial ou planejam usá-las no processo de desenvolvimento. A JetBrains considera que o aumento do volume de código produzido por essas ferramentas torna as revisões recorrentes e escaláveis mais importantes, mantendo a verificação humana necessária devido à possibilidade de erros serem transferidos para o resultado automatizado.
Do portão de pré-lançamento à garantia contínua
O artigo diferencia a garantia da qualidade de software (SQA), que acompanha o cumprimento dos requisitos de operação, confiabilidade, segurança e padrões ao longo de todo o ciclo de desenvolvimento, do controle de qualidade tradicional (QC), que geralmente se concentra no produto final e trata os defeitos de forma reativa. A abordagem contínua permite detectar problemas durante a escrita ou a integração do código, quando corrigi-los é menos dispendioso e está mais relacionado ao contexto original da mudança.
O artigo observa que os ciclos de lançamento passaram, nos ambientes modernos de desenvolvimento, de meses para dias, enquanto os pipelines de CI/CD permitem que o código passe do commit à produção com intervenção humana limitada. Por isso, não basta depender de uma única ferramenta; cada camada de teste detecta um tipo diferente de problema.
O que as ferramentas abrangem na prática?
- Análise estática: examina o código sem executá-lo para detectar defeitos, vulnerabilidades e violações dos padrões de codificação; um exemplo é o Qodana.
- Testes unitários: verificam o funcionamento de funções e componentes individualmente, com exemplos que incluem JUnit, Jest, PyTest e NUnit.
- Testes de integração: examinam a interação entre serviços e APIs e o fluxo de dados; entre suas ferramentas estão Postman e Soap UI.
- Testes funcionais e testes de interface: simulam os fluxos do usuário pelo navegador usando ferramentas como Playwright, Cypress e Selenium.
- Testes de desempenho: medem o comportamento sob carga e ajudam a detectar gargalos, vazamentos de memória e lentidão nas consultas, usando ferramentas como JMeter, LoadRunner e k6.
- Testes de segurança: combinam SAST, SCA, verificação de dependências, DAST e detecção de segredos ou chaves de API inseridos por engano.
Como as ferramentas são escolhidas e integradas ao trabalho?
O artigo propõe avaliar as ferramentas de acordo com sua integração com CI/CD, seu suporte às linguagens e aos frameworks utilizados, sua capacidade de automatizar tarefas repetitivas, sua escalabilidade com o crescimento do código e das equipes, o fornecimento de relatórios acionáveis, além das práticas de segurança da própria ferramenta.
Quanto à implementação, recomenda transferir as verificações para o momento da escrita do código, automatizar os testes recorrentes, executá-los a cada commit ou build e monitorar a dívida técnica por meio de indicadores como complexidade do código, duplicação e cobertura de testes. Também enfatiza a necessidade de incluir a verificação de segurança no fluxo habitual de garantia da qualidade, em vez de adiá-la para uma revisão separada antes do lançamento.
Leitura da certi.news
A mudança efetiva proposta pelo artigo não é a adição de um novo teste, mas a redistribuição da responsabilidade pela qualidade dentro do ciclo de desenvolvimento. Essa abordagem beneficia as equipes que trabalham com lançamentos frequentes ou dependem de arquiteturas distribuídas e dependências externas, mas não elimina os testes manuais nem o julgamento de engenharia; a automação, especialmente a baseada em inteligência artificial, pode acelerar a descoberta de problemas sem garantir, por si só, a completude da cobertura ou a correção dos resultados. Além disso, a fonte apresenta orientações gerais e exemplos de ferramentas, mas não estabelece uma estrutura quantitativa para compará-las nem comprova resultados independentes de comparação de desempenho.