Desenvolvimento - Visual Basic .NET

Qualidade de Código - Como o Visual Studio 2005 pode nos ajudar!

Para facilitar então a auditoria do que é feito, o Visual Studio 2005 nos oferece algumas ferramentas para tentar diminuir cada vez mais a quantidade de códigos incorretos ou problemáticos, com esse paradigma levantado, foi criada uma versão do Visual Studio chamada: Visual Studio Team Developer Edition, onde a qualidade no código foi a principal característica empregada.

por Alexandre Tarifa



Pré-requisito: Estar convencido que a qualidade no código é um dos fatores mais importantes para o resultado final de um sistema. Pode parecer incrível, mas nem todas as empresas dão muito valor a isso.

Qualidade de Código

Por mais que as ferramentas e linguagens de programação evoluam cada vez mais, ainda sim grande parte do código ainda é feito por um ser humano, o que possibilita então que erros aconteçam, como diz aquele ditado antigo: errar é humano.

Para facilitar então a auditoria do que é feito, o Visual Studio 2005 nos oferece algumas ferramentas para tentar diminuir cada vez mais a quantidade de códigos incorretos ou problemáticos, com esse paradigma levantado, foi criada uma versão do Visual Studio chamada: Visual Studio Team Developer Edition, onde a qualidade no código foi a principal característica empregada. A versão Professional do Visual Studio está vindo com estes mesmos recursos do Visual Studio Team Developer Edition.

Este produto faz parte de família de produtos do Visual Studio Team System (Figura 1), onde você consegue algumas informações no site www.vstsrocks.com.br.

Figura 1 – Visual Studio Team System

Os recursos são divididos em duas categorias: Ferramentas de análise de código e testes de código (Unit Test).

Análise de Código

Os analisadores de códigos já são utilizados em muitos projetos, porém sempre com ferramentas separadas do Visual Studio. Já nesta versão do Visual Studio temos o analisador de código estático do Visual Studio além do fxCop, produto já disponível na versão 2003, porém que necessitava de uma instalação à parte.

O analisador do Visual Studio trás muitas possibilidades de auditoria no código onde podemos configurar somente o que se faz relevante ao projeto a ser analisado.

Na prática

Temos um projeto Class Library simples, em VB.Net, na janela Solution Explorer, selecione My Project e então a janela de configuração é aberta. Selecione a aba Code Analisys (Figura 2).

Figura 2 – Configurações do analisador de código

Enable Code Analisys – Liga/Desliga o analisador de código

Rules – Liga/Desliga cada item ou categoria de analises que serão levadas em consideração na análise do código. Além disso é possível definir se casa análise gera somente um Warning ou Error.

No projeto criado adicione o seguinte código:

Public Function Analise(ByVal Param As String) As Collections.Generic.List(Of String)

Dim variavelNaoUsada As String

Dim lista As New Collections.Generic.List(Of String)

lista.Add("Windows Forms")

lista.Add("Asp.Net")

lista.Add("Windows Mobile")

Return lista

End Function

Os pontos que vamos configurar vão detectar problemas na nomenclatura do parâmetro, da variável que não foi utilizada, sendo assim vamos habilitar somente Naming Rules e Performance Rules. Um detalhe, é que as regras de nomenclatura que são levadas em consideração provém da convenção sugerida pela Microsoft, para saber mais conheça o Design Guidelines (Manual do Visual Studio).

Figura 3 – Analisador de código

Para rodar o analisador, basta compilar a aplicação (Control + Shift + B), assim na própria janela de OutPut é exibido o resultado da análise.

C:\Documents and Settings\alexandret\My Documents\Visual Studio 2005\Projects\AnalisadorCodigo\AnalisadorCodigo\Class1.vb(4): warning : CA1709 : Microsoft.Naming : Correct the casing of parameter name "Param".

C:\Documents and Settings\alexandret\My Documents\Visual Studio 2005\Projects\AnalisadorCodigo\AnalisadorCodigo\Class1.vb(4): warning : CA1804 : Microsoft.Performance : Class1.Analise(String):List`1<System.String> declares a local, "variavelNaoUsada", of type System.String, which is never used or is only assigned to. Use this local or remove it.

Claro que neste exemplo simples somente estes dois itens foram encontrados, já em um grande projeto é necessário uma análise refinada nos itens que serão checados.

Em casos mais criteriosos, ao invés de exibir como um simples Warning, basta na configuração alterar para Error, com isso o projeto nem mesmo é compilado.


Function
LoginAcesso(ByVal usuario As String, ByVal senha As String) As Boolean

If usuario = "Usuario" Then

Return True

Else

Return False

End If

End Function

O objetivo do teste neste caso é verificar se a validação está correta, ou seja, esperamos um retorno como True na chamada deste método.

Criar o teste unitário é muito simples, clique com o botão direito do mouse sobre o código e Create Unit Test. Uma janela de Wizzard é aberta (Figura 4)

Figura 4 – Criando o Unit Test.

Selecione o método e clique em OK. Uma nova janela é aberta pedindo o nome do projeto, note que um novo projeto do tipo Test é criado.

O Visual Studio cria então uma classe LoginTest e o método LoginAcessoTest que é o responsável pelo teste. Note alguns TODO´s, onde devemos adicionar os valores que queremos testar. A chamada do teste deve ficar conforme a listagem abaixo:

Public Sub LoginAcessoTest()

Dim target As Login = New Login

Dim usuario As String = "Alexandre" "TODO: Initialize to an appropriate value

Dim senha As String = "1234" "TODO: Initialize to an appropriate value

Dim expected As Boolean

Dim actual As Boolean

actual = target.LoginAcesso(usuario, senha)

Assert.AreEqual(expected, actual, "Valor incorreto.")

End Sub

A verificação está no Assert.AreEqual, ou seja, podemos utilizando a classe Assert fazer inúmeros tipos de testes.

Para rodar o teste, no menu do Visual Studio selecione Test > Windows > Test View (Figura 5).

Figura 5 – Test View.

Na janela Test View clique no botão Run Selection.

Figura 6 – Test Result.

Com isso temos a execução o teste finalizada porém não sabemos se 100% do código foi testado. Para isso utilizamos o recurso chamado Code Coverage, que analisa o percentual de código executado. No Solution Explorer, abra o diretório Solution Items e dê um duplo clique em localtestrun.testrunconfig, com isso uma janela é aberta. Selecione Code Coverage e habilite o projeto Class Library, clique em Apply e Close.

Figura 7 – Configuração.

Novamente pelo Test View, execute o teste criado anteriormente. Na janela Test Result, clique no último botão Show Code Coverage Results

Figura 8 – Code Coverage.

Uma nova janela de resultados é aberta, a Code Coverage Results (Figura 9), vá até o método LoginAcesso e dê um duplo clique, com isso podemos verificar o código executado.

Figura 9 – Code Coverage Result.

Conclusão: Trabalhar com o Visual Studio 2005 Team System significa ter diversos recursos adicionais em nossa ferramenta de trabalho, mesmo tendo estes recursos em forma de add-in do Visual Studio, a facilidade que os recursos integrados nos oferece já é um bom motivo para utilizarmos à ferramenta.
Alexandre Tarifa

Alexandre Tarifa - Ministra palestras e treinamentos, MVP (Most Valuable Professional), MCAD (Microsoft Certified Application Developer) e MCT (Microsoft Certified Trainer). Bacharel pela UMESP e pós-graduando pela Universidade Federal de São Carlos em Ciência da Computação. Analista de Sistemas e Líder do grupo de usuários Codificando.net São Paulo (sp.codificando.net). Escreve artigos para a revista MSDN Magazine e para os sites Linha de Código, MSDN Brasil e Enterpriseguys.
Visite o blog do autor: http://weblogs.pontonetpt.com/alexandretarifa/.