本篇文章記錄一下,針對軟件開發(fā)公司bug數(shù)量的一些思考,到底團隊開發(fā)中怎樣一個bug數(shù)量算是正常情況,以下是我收集到信息.
bug率標(biāo)準(zhǔn)
CMMI級別中做出了相關(guān)的指標(biāo)規(guī)定沥割,千行代碼缺陷率(bug率):
CMM1級 11.95‰
CMM2級 5.52‰
CMM3級 2.39‰
CMM4級 0.92‰
CMM5級 0.32‰
可以通過git log統(tǒng)計代碼數(shù)量
git log的方式,依賴于提交記錄今野,統(tǒng)計全量夹抗,統(tǒng)計個人魔策,按時間段統(tǒng)計都能做氓皱,但有一些問題 :
經(jīng)測試不能完全反應(yīng)整體的記錄滞造,只是單純的統(tǒng)計數(shù)量增加续室,空白行不能省略
在加上時間段統(tǒng)計后,調(diào)整時間谒养,部分不準(zhǔn)確git log的方式挺狰,依賴于提交記錄明郭,統(tǒng)計全量,統(tǒng)計個人丰泊,按時間段統(tǒng)計都能做薯定,但有一些問題 :
經(jīng)測試不能完全反應(yīng)整體的記錄,只是單純的統(tǒng)計數(shù)量增加瞳购,空白行不能省略
在加上時間段統(tǒng)計后话侄,調(diào)整時間,部分不準(zhǔn)確
統(tǒng)計總量
git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
統(tǒng)計總量:按時間節(jié)點
git log --pretty=tformat: --since ==2021-4-1 --until=2022-01-31 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
統(tǒng)計個人:按提交人
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2021-4-1 --until=2022-01-31 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
統(tǒng)計個人:按提交人和指定文件后綴 (.html|.cs|.md|.xml|.properties)
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.cs\|.md\|.xml\|.properties\)$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
統(tǒng)計個人按時間
git log --since=2021-11-28 --until=2022-11-28 --author="name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }