W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
目前存在多種軟件衡量標(biāo)準(zhǔn)用于衡量代碼覆蓋率:
行覆蓋率(Line Coverage)
行覆蓋率(Line Coverage)按單個(gè)可執(zhí)行行是否已執(zhí)行到進(jìn)行計(jì)量。
函數(shù)與方法覆蓋率(Function and Method Coverage)
函數(shù)與方法覆蓋率(Function and Method Coverage)按單個(gè)函數(shù)或方法是否已調(diào)用到進(jìn)行計(jì)量。僅當(dāng)函數(shù)或方法的所有可執(zhí)行行全部已覆蓋時(shí) PHP_CodeCoverage 才將其視為已覆蓋。
類與特質(zhì)覆蓋率(Class and Trait Coverage)
類與特質(zhì)覆蓋率(Class and Trait Coverage)按單個(gè)類或特質(zhì)的所有方法是否全部已覆蓋進(jìn)行計(jì)量。僅當(dāng)一個(gè)類或性狀的所有方法全部已覆蓋時(shí) PHP_CodeCoverage 才將其視為已覆蓋。
Opcode 覆蓋率(Opcode Coverage)
Opcode 覆蓋率按函數(shù)或方法對(duì)應(yīng)的每條 opcode 在運(yùn)行測試套件時(shí)是否執(zhí)行到進(jìn)行計(jì)量。一行(PHP的)代碼通常會(huì)編譯得到多條 opcode。進(jìn)行行覆蓋率計(jì)量時(shí),只要其中任何一條 opcode 被執(zhí)行就視為此行已覆蓋。
分支覆蓋率(Branch Coverage)
分支覆蓋率(Branch Coverage)按控制結(jié)構(gòu)的分支進(jìn)行計(jì)量。測試套件運(yùn)行時(shí)每個(gè)控制結(jié)構(gòu)的布爾表達(dá)式求值為 true
和 false
各自計(jì)為一個(gè)分支。
路徑覆蓋率(Path Coverage)
路徑覆蓋率(Path Coverage)按測試套件運(yùn)行時(shí)函數(shù)或者方法內(nèi)部所經(jīng)歷的執(zhí)行路徑進(jìn)行計(jì)量。一個(gè)執(zhí)行路徑指的是從進(jìn)入函數(shù)或方法一直到離開的過程中經(jīng)過各個(gè)分支的特定序列。
變更風(fēng)險(xiǎn)反模式(CRAP)指數(shù)(Change Risk Anti-Patterns (CRAP) Index)
變更風(fēng)險(xiǎn)反模式(CRAP)指數(shù)(Change Risk Anti-Patterns (CRAP) Index)是基于代碼單元的圈復(fù)雜度(cyclomatic complexity)與代碼覆蓋率計(jì)算得出的。不太復(fù)雜并具有恰當(dāng)測試覆蓋率的代碼將得出較低的CRAP指數(shù)??梢酝ㄟ^編寫測試或重構(gòu)代碼來降低其復(fù)雜性的方式來降低CRAP指數(shù)。
Note
目前 PHP_CodeCoverage 尚不支持 Opcode覆蓋率、分支覆蓋率 及 路徑覆蓋率。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: