Existem diversas formas de se apurar e garantir a qualidade de um software que está em desenvolvimento.

Porém boa parte só são executadas após uma entrega ao menos parcial da aplicação, através de testes diversos como por exemplo os testes exploratórios.

Garantir a qualidade do software é fundamental e para isso podemos associar práticas conhecidas a ferramentas como o SonarQube.

Mas afinal de contas o que é o SonarQube?

SonarQube é uma ferramenta para garantir a qualidade do código fonte em desenvolvimento.

Ele realiza diversas análises durante o processo de compilação da aplicação, detectando por exemplo:

  • Trechos de código fonte que possam gerar bugs
  • Duplicidade de linhas de comando, prevenindo a repetição de instruções desnecessárias
  • Segurança

Essas análises atendem a métricas de qualidade configuradas na própria ferramenta seguindo alguns padrões predefinidos, mas que são facilmente customizáveis.

Versões do SonarQube

O SonarQube, on premises tem as versões:

  • Community (versão gratuita, com algumas limitações)
  • Developer
  • Enterprise
  • Data Center

Também é possível utilizar a versao em nuvem do Sonar, o SonarCloud, que pode ser utilizado 14 dias para testes.

Em qualquer versão utilizada o custo será baseado na quantidade de linhas de código analisadas.

Verificando o código fonte

Após fazer sua escolha de versão do SonarQube, basta conecta-lo ao seu Azure DevOps.

E configurar a análise do código através do pipeline de build.

De acordo com as métricas e regras definidas é possível não bloquear o build da aplicação caso o código não atenda aos requisitos de qualidade.

Quando o build for finalizado com sucesso, será possivel acompanhar os resultados das análises no seu portal do SonarQube.

Concluindo

A integração dos times é um dos principais pilares da cultura DevOps, ela permite que em conjunto sejam definidas práticas, processos e a adoção de ferramentas como o Azure DevOps e o SonarQube.

Graças aos times de Desenvolvimento, Qualidade e Operações estarem sempre trabalhando em conjunto, fica claro para todos que o objetivo final é o mesmo:

  • Desenvolver aplicações com cada vez mais qualidade e sendo entregue mais rapidamente.

Grande abraço e até a próxima.