sexta-feira, 23 de março de 2007

Enquete - Você escreve testes unitários?






Bom, esta é um enquete para verificar se o "povo" anda escrevendo teste unitário e criando (ou tentando) um software de qualidade!

A enquete está no meu ao lado direito do blog!!!

Não deixe de votar!!!!



Você escreve testes unitários?

Sim, sempre

Sim, mas nem sempre

De vez em quando, raramente

Não, tenho o costume

Não, isso é um saco!













Qualidade de Software - Parte 1






Bom, todos hoje em dia ouvem falar de Qualidade de Software. Mas é importante relembrar as premissas para que o software sair mesmo com qualidade...
Basicamente será colocar aqui a característica, significado e pergunta reflexiva que você sempre deve fazer sobre seu produto.

Característica Significado Pergunta chave
Funcionalidade Conjunto de funções que atendem ás necessidades do produto. Satisfaz às necessidades?
Confiabilidade Capacidade do produto de manter seu desempenho. É imune a falhas?
Usabilidade Facilidade de utilização do produto É fácil de usar?
Eficiência Relação entre Funcionalidade e Confiabilidade É rápido e “enxuto”?
Manutenibilidade Esforço necessário para modificar o produto. É fácil de modificar?
Portabilidade Capacidade do produto ser transferido de um ambiente para outro É fácil de usar em outro ambiente?

Para verificar se o seu produto está aderindo aos padrões de qualidade, você deve fazer estas perguntas a si mesmo (e tomar as providências necessárias)!
Conforme o tempo veremos as sub-características de cada uma destas características acima.

quinta-feira, 22 de março de 2007

Teste seu código-fonte!






Bom... vamos começar com uma pergunta:
"Quem costuma verificar a qualidade de seu código-fonte"?

Parece até estranho, mas a quantidade de erros bobos que cometemos até conseguir atingir um nível satisfatório de qualidade é grande!
Por isso existem algumas ferramentas de análise de código-fonte*.

* aplicativos Java! :)

Vamos então ao que interessa!!!

FindBugs
Site: http://findbugs.sourceforge.net/
Licença: GNU Public License
Integração com IDE's: NetBeams, Eclipse

Ferramenta de análise de código a procura de bug's. Ele verifica código "malicioso", má pratica de programação, performance, etc...

Exemplo de relatório


PMD
Site: http://pmd.sourceforge.net/
Licença: BSD
Integração com IDE's: JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, e Emacs.

Ferramenta que vascula o código-fonte a procura de erros como: possíveis bugs de código, código, métodos e variáveis não utilizadas, sugestões de melhorias, loops desnecessários ou gerando mais de um tipo de saida, código duplicado entre outros.
Possui um Sistema de Regras muito interessante para você mesmo criar suas métricas de qualidade no código.
É possível automatizar a verificação com scripts do ANT ou do Maven.

Exemplo de relatório

Estas foram duas ferramentas que eu tive contato. No proprio site do PMD existe um link referenciando outras ferramentas: http://pmd.sourceforge.net/similar-projects.html

Cabe a cada desenvolvedor utilizar a ferramenta achar interessante, mas não esqueça de utilizar esta prática no seu código-fonte.

Abraços!

quarta-feira, 21 de março de 2007

Como documentar seus testes






Bom, vou falar aqui como documentar seus testes, não só os unitários que os desenvolvedores estão acostumados a criar, mas vou falar de uma norma existente pra isso, a norma IEEE 829.

O propósito desta norma é facilitar a comunicação e, dentre outras coisas, prover uma forma organizada de manter uma documentação eficaz para seus testes.

Então vamos direto ao que interessa...
Esse documento descreve 8 sugestões de documentação:

  • Plano de Teste: Apresenta o planejamento para execução do teste, incluindo a abrangência, abordagem, recursos e cronograma das atividades de teste.

A tarefa de especificação de testes é coberta por 3 documentos:

  • Especificação de Projeto de Teste: Refina a abordagem apresentada no Plano de Teste e identifica as funcionalidades e características a serem testadas pelo projeto e por seus testes associados.
  • Especificação de Caso de Teste: Define os casos de teste, incluindo dados de entrada, resultados esperados, ações e condições gerais para a execução do teste.
  • Especificação de Procedimento de Teste: Especifica os passos para executar um conjunto de casos de teste.

Os relatórios de teste são cobertos por 4 documentos:

  • Diário de Teste: Apresenta registros cronológicos dos detalhes relevantes relacionados com a execução dos testes.
  • Relatório de Incidente de Teste: Documenta qualquer evento que ocorra durante a atividade de teste e que requeira análise posterior.
  • Relatório-Resumo de Teste: Apresenta de forma resumida os resultados das atividades de teste associadas com uma ou mais especificações de projeto de teste e provê avaliações baseadas nesses resultados.
  • Relatório de Encaminhamento de Item de Teste: Identifica os itens encaminhados para teste no caso de equipes distintas serem responsáveis pelas tarefas de desenvolvimento e de teste.
Estes são apenas os "resumos" de cada item.
Você não precisa utilizar todos estes itens necessariamente. O ideal é você utilizar o que mais se adequar a sua necessidade.

Para saber mais sobre esta norma e sobre o assunto visite estes links http://www.ruleworks.co.uk/testguide/IEEE-std-829-1998.htm
http://www.ieee.org.br/
http://www.ieee.org/portal/site

sábado, 17 de março de 2007

Primeiro Post :)






Bem...
Como estou iniciando numa nova área: Qualidade e Teste de Software, resolvi criar um blog para compartilhar minhas experiências, idéias, etc...

Já tenho inúmeros post's na cabeça, mas vamos começar com calma, hehe!

Abraços!