Seção: Tutoriais Banda Larga

10/03/06

Defeitos de Software I: Introdução

 

O desenvolvimento de software é marcado por preocupações como:

  • Cumprimento do cronograma;
  • Custos dentro do planejado;
  • Confiabilidade e robustez do produto em campo.

Essas preocupações são motivadas por diversos insucessos de produtos de software que levaram à perda de mercado ou ao comprometimento da imagem em relação à qualidade e que tiveram origem no mau planejamento do desenvolvimento.

 

Em resposta a essas preocupações muito tem se feito em relação à organização e definição do processo de desenvolvimento de software e o controle de qualidade ao longo do desenvolvimento. Podemos citar o "Capability Maturity Model (CMM)" , Telcordia e a ISO 9001.

 

O controle de qualidade visa a detecção de desvios ao longo do processo de desenvolvimento. A análise dos desvios permite a correção pontual de rumo do desenvolvimento ou até mudanças no processo que beneficiarão também desenvolvimentos posteriores.

 

A avaliação da confiabilidade visa:

  • Avaliar a qualidade do software por meio do controle de qualidade e de medidas como MTBF (Mean Time Between Failures), indisponibilidade, intensidade de falha, etc. Essas medidas são primordiais para sistema com requisito de alta confiabilidade e segurança (safety);
  • Prever o número de defeitos em campo tanto quanto à severidade como ao volume para dar suporte aos contratos de garantia e estimar o esforço de manutenção.

Neste tutorial apresentaremos uma metodologia de avaliação da qualidade do software visando a previsão de defeitos e não a obtenção de medidas de confiabilidade. Uma proposta para a previsão do número de defeitos em campo será objeto de outro tutorial.

 

A metodologia de avaliação se baseia no histórico de defeitos detectados durante a fase de teste de sistema. Por defeito entendemos a detecção de uma operação do sistema que não está conforme a especificação e que necessita de uma correção do software para ser sanado.

 

A principal ferramenta usada para o controle de qualidade é o gráfico de controle bastante usado no controle de processos fabris de modo a garantir que o produto fabricado está dentro de determinadas especificações.

 

É uma ferramenta poderosa que já usamos no tutorial para análise de alarmes visando aumentar a disponibilidade da rede. O gráfico de controle é usado no controle da "fabricação" de software para garantir que a taxa de defeitos detectada ao longo do processo de desenvolvimento está dentro de limites especificados.

 

Não existe um modelo amplamente aceito para avaliação da confiabilidade de software tanto de avaliação da qualidade como de previsão de defeitos. O modelo mais utilizado e que adotaremos no tutorial é o de crescimento de confiabilidade. Os modelos são ditos de "crescimento de confiabilidade" porque supõem que o processo de detecção e correção de falhas é perfeito e consequentemente o sistema tende a crescer em confiabilidade ao longo do tempo.

 

Na prática isso não acontece e períodos de crescimento (diminuição da taxa de defeitos) e decrescimento (aumento da taxa de defeitos) de confiabilidade se sucedem ao longo do desenvolvimento ou de operação em campo. Mesmo com essas variações os modelos de crescimento de confiabilidade podem se aplicados desde que no momento da liberação (release) a tendência seja de crescimento de confiabilidade.