"Industry average experience is about 1–25 errors per 1000 lines of code for delivered software. The software has usually been developed using a hodgepodge of techniques (Boehm 1981, Gremillion 1984, Yourdon 1989a, Jones 1998, Jones 2000, Weber 2003). Cases that have one-tenth as many errors as this are rare(...)
The Applications Division at Microsoft experiences about 10–20 defects per 1000 lines of code during in-house testing and 0.5 defects per 1000 lines of code in released product (Moore 1992)."
(Steve Mcconnell, Code Complete)
Então pensei: "vou calcular a quantidade provável de erros no meu programa usando um valor de 25 defeitos a cada 1000 linhas." Então caiu minha ficha: não sei quantas linhas meu programa tem.
A quantidade de linhas de um programa, na minha concepção, é a quantidade de linhas não-nulas nos arquivos. Portanto um comando capaz de contar o número de linhas do projeto é:
grep -r -v "^[ \t]*$" * |wc -l
Como meu projeto usa o controle de versão Git, um comando equivalente capaz de gerar o resultado mais rapidamente é:
git grep -v "^[ \t]*$" |wc -l
Este projeto em que estou trabalhando é feito em Rails. Quando mandei o Rails criar a estrutura inicial do meu projeto (quando executei "rails nome-do-projeto"), imediamente criei um commit inicial. Quero medir agora o número de linhas que adicinei ao projeto após o commit inicial, para obter um número de linhas que descarte o código do próprio framework (Rails). Para isso, primeiro vou contar o número de linhas do commit inicial (usando o SHA-1 do commit inicial):
git grep -v "^[ \t]*$" f7ed2ae5373a7e045f8b0c092a3f5f4c000911ec |wc -l
7235
Agora vou contar o número de linhas do commit final:
git grep -v "^[ \t]*$" |wc -l
17889
Para saber o número de linhas que adicionei ao projeto: 17889 - 7235 = 10.654 linhas. Usando um valor de 25 defeitos a cada 1.000 linhas, estimo que meu programa teria 266 defeitos.
Nenhum comentário:
Postar um comentário
Por favor identifique-se: primeiro nome, instituição, ou o que lhe convier.