最近测试项目bug比较多,领导要求做一个代码千行bug率统计,目前没想到好的自动化方法,只想到了在编译机器上用linux命令获取研发的代码行数进行统计:
1.连文件的空行都进行统计的linux命令:
find . -name '*.java'|xargs wc -l|grep 'total'|awk '{print $1}'
find . -name '*.java'|xargs cat|wc -l
2.去掉空行
find . -name '*.java'|xargs cat|grep -v ^$|wc -l
3.去掉空行和注释
find . -name '*.java'|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc-l
4.去掉空行和//注释, //注释和
- /**
- * @author xxx 2012-6-15 下午3:19:47
- */ 注释的行
find . -name '*.java'|xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$ -e ^\s*\/\*\*.*$ -e ^\s*\*.*$ -e ^\s*\*\/.*$|wc-l //^\s*以空格开头任意多个,\/\/是//的转义字符,\*是*的转义字符,\*\/是*/的转义字符, .*$任意字符数字等任意个未结尾
项目计算结果:
一期bug:120;
Test-crm-inventory:86310行
Test-crm-ui-web:38316行
代码千行bug率计算:120/(86310+38316)*1000/1000=8.33‰(实际bug率要高于此,这两个项目原先已经存在,只是添加了一部分新代码,实际除的是整个代码量)