logcover輕量級覆蓋率測試工具
logcover 是一款非常便捷的統(tǒng)計測試用例異常日志覆蓋率的工具??汕逦胤治龀龀绦蛟创a中異常日志的覆蓋情況,檢驗測試充分度,指導(dǎo)測試用例完善。
使用場景: 度量異常分支測試覆蓋率,覆蓋單元測試、模塊測試、集成測試
背景:
異常測試是軟件測試中非常重要的一環(huán),異常測試充分與否直接影響到測試質(zhì)量和產(chǎn)品線上穩(wěn)定性。
logcover是Baidu質(zhì)量部推出的一款專門用于度量異常測試覆蓋率的輕量級工具,通過度量異常日志的測試覆蓋率來反應(yīng)異常測試覆蓋率,因為打印異常日志的程序分支往往更需要測試覆蓋的異常分支。
原理:
結(jié)合程序源代碼和測試執(zhí)行產(chǎn)生的日志,計算程序異常日志的測試覆蓋率。
例如: 源代碼中有100處異常日志(warning、fatal、error)打印點,程序在測試過程中,產(chǎn)生了100條日志,對應(yīng)源代碼中50處日志打印點,則異常日志覆蓋率是50%,同時,logcover會給出覆蓋日志和未覆蓋日志的所有信息,包括文件名、行號等,便于快速識別未覆蓋異常日志。
實現(xiàn):
? 根據(jù)svn,對源代碼進行輕量級靜態(tài)分析,獲得代碼中異常日志打印的原始信息
? 收集單機/多機測試日志,并對日志文件進行parse、filter、merge等處理,得到實際覆蓋的日志信息
? 根據(jù)代碼中的原始日志信息和實際測試產(chǎn)生的日志信息,做diff計算,得出異常log覆蓋率和覆蓋信息
? 覆蓋率報告郵件推送
logcover使用說明:
1: 下載logcover
2: 修改對應(yīng) logcover.cfg文件
logcover_type =0 表示單機模式;logcover_type=1表示多機模式。
選擇多機模式時,對應(yīng)填寫 machines、user、password、log_paths和script_path
3: 執(zhí)行 sh logcover.sh $svn $log_cover_log_dir $mail_list -s $mail_subject
$svn : 被測程序svn源碼路徑
$log_cover_log_dir: log文件存放路徑
$mail_list : 覆蓋率報告推送郵件列表,多郵件中間以空格分隔。例如:[email protected] [email protected]
-s $mail_subject : 推送郵件自定義主題
logcover執(zhí)行環(huán)境依賴:
1: perl v5.8.5+
2: python v2.7+
3: svn client v1.6.5+
