O TOTVS CodeAnalysis é uma ferramenta desenvolvida para permitir aos clientes efetuarem uma verificação em seus fontes customizados, afim de certificar a qualidade dos mesmos. Através de regras pré-determinadas, a ferramenta possibilita que os requisitos indicados sejam corrigidos evitando um maior impacto em atualizações.
Uma das recomendações da ferramenta é para a validação da utilização do ambiente do cliente com Dicionário de Dados no Banco de Dados.
O serviço consiste no cadastro de um projeto no site do CodeAnalysis, envio de um arquivo compactado com os fontes a serem analisados, e agendamento da análise desses fontes. Ao final, é exibida uma tela com o resultado da análise, apontando o que precisa ser corrigido ou melhorado nos fontes.
Abaixo iremos detalhar os passos para efetuar essa validação.
- Acesse o site https://codeanalysis.totvs.com.br e clique em Entrar
- No primeiro acesso, é necessário criar uma nova conta. Clique em Novo cliente
- Preencha os dados conforme exemplo abaixo e clique em Cadastrar:
Obs.: é necessário inserir o Totvs ID utilizado no License Server Virtual do Cliente.
- Será exibida na tela um aviso de que a senha temporária foi enviada por e-mail (se por acaso o e-mail não for recebido, clique em Esqueceu sua senha e insira o e-mail para enviar novamente)
- Acesse o e-mail, copie a senha temporária enviada, e na tela de login do CodeAnalysis, digite o e-mail que foi cadastrado, insira a senha temporária enviada e clique em Entrar
- Insira a senha temporária atual, e então cadastre uma nova senha
- Será exibida uma mensagem de senha alterada com sucesso, e voltará para a tela de login. Digite então novamente o e-mail cadastrado e entre com a nova senha
- Será exibida uma tela para a inclusão de Projetos, que é o local onde iremos agendar o envio dos fontes e análise dos mesmos. Clique em +Projeto
- Na tela seguinte, preencha os dados conforme exemplo abaixo, e clique em Confirmar
Nome do projeto: Defina o nome que será utilizado neste projeto
Descrição do projeto: Descrição deste projeto
Tipo de acesso dos arquivos: define como os fontes serão enviados para análise. Para o nosso exemplo, utilizaremos a opção Upload
Usuários: Selecione os usuários que terão acesso a este projeto. Por padrão o usuário inicial já está criado e pode ser selecionado. Se quiser adicionar outros usuários, utilize o menu lateral Usuários
Obs.:
Formato dos arquivos e pastas: os arquivos e pastas não devem conter espaços e/ou acentos em seus nomes.
ADVPL Include: Se o projeto tiver includes adicionais aos padrões do Protheus, a pasta dele deve ser indicada neste campo. O formato de digitação da pasta é baseado nas pastas que devem conter no arquivo compactado. Obrigatoriamente o arquivo compactado deve conter uma pasta chamada src, que conterá os fontes, e se tiver includes, uma pasta para eles. No nosso exemplo, o arquivo compactado contém a pasta my_include e a pasta src dentro de uma pasta principal chamada projeto_exemplo, conforme imagem abaixo:
- Após preencher as informações, clique em Confirmar
- Será exibida uma mensagem informando que o projeto foi cadastrado com sucesso, e a página mostrará o projeto criado. Se precisar alterar alguma informação, clique em Manutenção. Caso esteja OK, clique em Agendar
- Será exibida uma janela para o carregamento do arquivo compactado. Clique em Selecionar arquivo, selecione o seu arquivo compactado, e clique em Agendar
- Será exibida uma mensagem de Agendamento efetuado, confirmando o envio dos fontes
- Ao enviar o seu Projeto para a análise, ele entrará em uma fila de execução, e assim que verificado, será exibida a informação de Status de Executado. Para verificar, no menu lateral, clique em Agendamentos
- Na tabela dos agendamentos, na coluna Link SonarQube, será exibido o link com as informações da análise feita pela Totvs referentes ao seu projeto. Clique sobre o link para abrir o projeto no SonarQube
- Nesta tela serão exibidas as informações analisadas. Para verificar as regras da Totvs, clique no menu Rules e use o filtro ADVPL
Classificação dos tipos de Bugs apontados pelo CodeAnalysis
Todos os bugs devem ser observados, uma vez que são impeditivos para o bom funcionamento do sistema (todos são problemas).
Classificação dos bugs:
Blocker: é o bug mais crítico
Minor: bug menos crítico.
CodeSmell: é uma recomendação de correção (nada impede que no futuro um CodeSmell torne-se um bug).
Os bugs podem ou não ser por performance, essa informação vem acompanhada na descrição de cada issue.