Sonar參數(shù)分析_第1頁
Sonar參數(shù)分析_第2頁
Sonar參數(shù)分析_第3頁
Sonar參數(shù)分析_第4頁
Sonar參數(shù)分析_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Sonar參數(shù)分析API compatibility1. API behavior changes-Clirr Plugin正常接口變化數(shù)2. API breaks-Clirr Plugin可能引發(fā)錯(cuò)誤的接口變化3. New API-Clirr Plugin新增接口數(shù)4. Total API Changes-Clirr Plugin接口變化總數(shù)注:以上參數(shù)需要依賴于Clirr,暫時(shí)仍存在問題Architecture5. Architecture- Total Quality Plugin架構(gòu)質(zhì)量計(jì)算方式:ARCH = 100 TITI = Tangle Index6. Architecture

2、 Tangle Index- Total Quality Plugin架構(gòu)復(fù)雜指標(biāo)Complexity7. Complexity默認(rèn)復(fù)雜度8. Complexity /class默認(rèn)類復(fù)雜度9. Complexity /file默認(rèn)文件復(fù)雜度10. Complexity /method默認(rèn)方法復(fù)雜度11. Complexity Factor- Quality Index Plugin復(fù)雜度因素計(jì)算方式:CF = (5 * Complexity>30) * 100 / (Complexity>1 + Complexity>10 + Complexity>20 + Comp

3、lexity>30)12. Complexity Factor Methods- Quality Index Plugin方法復(fù)雜度因素13. QI Complexity-Quality Index Plugin復(fù)雜度質(zhì)量指標(biāo)計(jì)算方式:(Complexity>30 *10 + Complexity>20 * 5 + Complexity>10 * 3 + Complexity>1) / validLinesDesign14. Design Classes and Methods Complexity- Total Quality PluginNOM = (1 -

4、(class_complexity - 12) / (acel * 12) * 50 + (1 - (method_complexity - 2.5) / (acel * 2.5) * 50 參見1915. Design Coupling Between Objects- Total Quality PluginCBO = (1 - (efferent_coupling - 5) / (acel * 5) * 100 參見1916. Design Depth of Inheritance Tree- Total Quality PluginDIT = (1 - (depth_of_inheri

5、tance_tree - 5) / (acel * 5) * 100 參見1917. Design Lack of Cohesion of Methods- Total Quality PluginLCOM = (1 - (lack_of_cohesion_of_method - 1) / (acel * 1) * 100 參見1918. Design Response for Class- Total Quality PluginRFC = (1 - (response_for_class - 50) / (acel * 50) * 100 參見1919. Design Quality- T

6、otal Quality Plugin設(shè)計(jì)質(zhì)量計(jì)算方式:DES = 0.15*NOM + 0.15*LCOM + 0.25*RFC 0.25*CBO + 0.20*DIT NOM = (1 - (class_complexity - 12) / (acel * 12) * 50 + (1 - (method_complexity - 2.5) / (acel * 2.5) * 50 LCOM = (1 - (lack_of_cohesion_of_method - 1) / (acel * 1) * 100 RFC = (1 - (response_for_class - 50) / (ace

7、l * 50) * 100 CBO = (1 - (efferent_coupling - 5) / (acel * 5) * 100 DIT = (1 - (depth_of_inheritance_tree - 5) / (acel * 5) * 100Acel參數(shù)因子的值可以在Sonar setting頁面配置。每一個(gè)度量標(biāo)準(zhǔn)的默認(rèn)闕值也可以進(jìn)行配置(例如,50是response_for_class的默認(rèn)閾值)。20. LCOM4(Lack of cohesion of methods)用來說明class內(nèi)部方法和變量之間的關(guān)系, 值越大, 說明內(nèi)聚性越差. 一般情況下 LCOM4=1是

8、內(nèi)聚性最佳的. 2說明可以拆成兩個(gè)類, 以此類推.但是這種測(cè)量對(duì)門面服務(wù)類來說不適用. 有時(shí)候很小的類也會(huì)根據(jù)需要合并在一起, 盡管關(guān)聯(lián)不大21. Package tangle index包復(fù)雜指數(shù)此參數(shù)為包的復(fù)雜等級(jí),最好的值為0%,意味著包之間沒有圈依賴;最差的值為100%,意味著包與包之間的關(guān)系特別的復(fù)雜。該指數(shù)的計(jì)算公式:2 * (package_tangles / package_edges_weight) * 100.22. RFC(Response for Class)通過檢查一個(gè)方法被調(diào)用的情況來反映一個(gè)class的復(fù)雜程度. 也可以簡單的理解為一個(gè)類所包含的方法多寡.23.

9、Suspect LCOM4 densityLCOM4密度值Documentation24. Comment linesJavadoc、多行注釋、單行注釋的總數(shù)。空注釋行、頭文件中的注釋(主要用于定義許可證)以及commented-out行均不會(huì)包括在內(nèi)。25. Commented-out LOC注釋掉的代碼行數(shù)。Javadoc塊不會(huì)被掃描26. Comments (%)注釋行數(shù)/(注釋行數(shù)+有效代碼行數(shù))27. Public documented API (%)添加注釋的公有API占總的公有API的百分比28. Public undocumented API公有API未添加注釋個(gè)數(shù)Duplic

10、ation29. DRYness - Total Quality PluginDRYNESS = 100 - Duplicated lines density30. Duplicated blocks重復(fù)塊數(shù)31. Duplicated files重復(fù)文件數(shù)32. Duplicated lines重復(fù)行數(shù)33. Duplicated lines (%)重復(fù)行占總行數(shù)的百分比34. Useless Duplicated Lines-Useless Code Tracker無用的重復(fù)行數(shù);當(dāng)前的Sonar告訴你有50重復(fù)的行數(shù),但是不能告訴你是有兩塊25行的代碼重復(fù)(這樣你可以節(jié)省25行代碼)還是

11、有5塊10行(這樣你可以節(jié)省40行代碼)的代碼重復(fù);通過這個(gè)插件,你可以獲取到額外的信息。General35. Analysability Value- SIG Maintainability Model可理解性請(qǐng)查看37指標(biāo)后的詳細(xì)介紹36. Changeability Value- SIG Maintainability Model可擴(kuò)展性37. Stability Value- SIG Maintainability Model穩(wěn)定性38. Testability Value- SIG Maintainability Model可測(cè)試性可維護(hù)性可通過7個(gè)質(zhì)量特性來衡量:可理解性可測(cè)試性可

12、修改性可靠性可移植性可使用性效率這個(gè)插件標(biāo)示了一個(gè)Software Improvement Group(SIG)可維護(hù)性模型這個(gè)模型需要兩步: 計(jì)算基數(shù)的指標(biāo),然后結(jié)合他們計(jì)算出更高層面上的數(shù)值。每一個(gè)指標(biāo)被分成5級(jí)別排名:從-(很糟糕)到+(非常好)第一步加上基數(shù)的指標(biāo)。Volume: 基于代碼的行數(shù)RankLOC - > 1310000- > 6550000 > 246000+ > 66000+ > 0 Duplications: 基于代碼重復(fù)的密度RankDuplication- > 20%- > 10%0 > 5%+ > 3%+ &

13、gt; 0% Unit tests: 基于單元測(cè)試覆蓋率RankCoverage+ > 95% + > 80%0 > 60%- > 20%- > 0%Complexity:基于方法的圈復(fù)雜度第一步根據(jù)圈復(fù)雜度的范圍確定在方法代碼行中的百分比。Eval Complexity Very high > 50 High > 20 Medium > 10 Low > 0 然后根據(jù)分布,我們使用下面的表格來計(jì)算等級(jí):Rank Medium High Very High + < 25% < 0% < 0% + < 30% <

14、 5% < 0% 0 < 40% < 10% < 0% - < 50% < 15% < 5% 否則等級(jí)是-Unit size: 基于方法代碼的行數(shù)第一步根據(jù)行數(shù)的范圍確定方法代碼行數(shù)的百分比。Eval LOCsVery high > 100High > 50 Medium > 10 Low > 0 然后根據(jù)分布,使用下面的表格來計(jì)算等級(jí):Rank Medium High Very High + < 25% < 0% < 0% + < 30% < 5% < 0% 0 < 40% <

15、10% < 0% - < 50% < 15% < 5% 否則等級(jí)為-第二步是通過一個(gè)簡單的平均,將他們結(jié)合起來,使用以下映射表來確定最終等級(jí).VolumeComplexityDuplicationsUnit sizeUnit testsanalysabilitychangeabilitystabilitytestability因此4個(gè)代表軟件可維護(hù)性四維的先進(jìn)指標(biāo)。可選項(xiàng),通過將4個(gè)指標(biāo)簡單的結(jié)合在一塊,可以得到可維護(hù)性排名。需要注意的是,圖表的顏色代表實(shí)際結(jié)合后的值,從紅色=-到綠色=+.39. Profile version未知未知40. Quality Index

16、- Quality Index Plugin計(jì)算方式:QI = 10 - 4.5 * coding - 2 * complexity - 2 * coverage -1.5 * style41. SIG MM- SIG Maintainability ModelSIG可維護(hù)性模型,參考3742. Technical Debt ($)-Technical Debt Plugin清除所有技術(shù)債務(wù)需要的花費(fèi)43. Technical Debt in days-Technical Debt Plugin需要多少人日去解決技術(shù)債務(wù)44. Technical Debt ratio-Technical De

17、bt Plugin技術(shù)債務(wù)占整個(gè)項(xiàng)目的比例45. Total Quality- Total Quality Plugin總體質(zhì)量計(jì)算方式:TQ= 0.25*ARCH + 0.25*DES + 0.25*CODE + 0.25*TSManagement46. Burned budget燃盡預(yù)算47. Business value商業(yè)價(jià)值48. Team size團(tuán)隊(duì)規(guī)模注:以上變量為手動(dòng)輸入變量,另外這里可以添加一些自定義的變量Rules49. Blocker violations阻礙性違規(guī)50. Code Quality- Total Quality Plugin代碼質(zhì)量計(jì)算方式:Code =

18、 0.15*DOC + 0.45*RULES + 0.40*DRYNESS DOC = Documented API density RULES = Rules compliance index DRYNESS = 100 - Duplicated lines density51. Critical violations嚴(yán)重違規(guī)52. Dead Code- Useless Code Tracker無作用程序代碼53. Info violations建議級(jí)別違規(guī)54. Major violations重要違規(guī)55. Minor violations次要違規(guī)56. Potential Dead C

19、ode- Useless Code Tracker當(dāng)前代碼中未使用的protected方法數(shù)目;此參數(shù)可通過PMD :UnusedProtectedMethod或者SQUID:UnusedProtectedMethod獲取到。計(jì)算他們行數(shù)的和值。57. QI Coding Violations-Quality Index Plugin代碼違規(guī)質(zhì)量指標(biāo)(PMD規(guī)則指數(shù))計(jì)算方式:(Blocker * 10 + Critical * 5 + Major * 3 + Minor + Info) / validLines58. QI Coding Weighted Violations-Quality

20、 Index Plugin代碼違規(guī)權(quán)重指標(biāo)59. QI Style Violations-Quality Index Plugin風(fēng)格違規(guī)質(zhì)量指標(biāo)(CheckStyle規(guī)則指數(shù))計(jì)算方式:Style = (Errors*10 + Warnings) / ValidLines * 10QI = 10 - 4.5 * coding - 2 * complexity - 2 * coverage -1.5 * style60. QI Style Weighted Violations-Quality Index Plugin風(fēng)格違規(guī)權(quán)重質(zhì)量指標(biāo)61. Rules compliance遵守規(guī)則率62.

21、 Security rules compliance- Security Rules PluginSecurity規(guī)則遵守率63. Security violations- Security Rules Plugin符合Security規(guī)則數(shù)目64. Violations違規(guī)總數(shù)65. Weighted Security Violations- Security Rules PluginSecurity規(guī)則權(quán)重值(總數(shù))Size66. AccessorsGetter及setter方法的數(shù)量 / Getterspublic String getName()   &#

22、160; return ;public boolean isParent()     return this.isParent;/ Setterspublic void setName(String name)      = name;public void setIsParent(boolean isParent)     this.isParent = isParent;67. Artifact

23、Size (Kb)- Artifact Size Plugin記錄最終產(chǎn)品大小68. Classes類總數(shù)69. Files文件數(shù)70. Lines文件中行數(shù)71. Lines of code代碼行數(shù)72. Methods方法數(shù)目73. Packages包數(shù)目74. Public API公共類、公共方法(不包括訪問器)以及公共屬性(不包括public final static類型的)的數(shù)目。75. StatementsJava語言規(guī)范中沒有塊定義的語句數(shù)目;此數(shù)目在遇到含有if, else, while, do, for, switch, break, continue, return, th

24、row, synchronized, catch, finally等關(guān)鍵字的語句時(shí)增加。例如:/i = 0;if (ok)if (exit) if (3 = 4);if (4 = 4) ; else trywhile(true)for(.).語句數(shù)目不會(huì)隨著以下情況增加,類、方法、字段、注釋定義、包以及import定義。76. Total Useless Code- Useless Code Tracker可以刪除的代碼行數(shù)Tests77. Coverage覆蓋率78. Line coverage行覆蓋率79. QI Test Coverage-Quality Index Plugin測(cè)試覆蓋

25、率質(zhì)量指標(biāo)80. Skipped unit tests忽略的單元測(cè)試數(shù)81. Testing Quality- Total Quality Plugin測(cè)試質(zhì)量計(jì)算方式:Test = 0.80*COV + 0.20*SUC COV = Code coverage SUC = Unit Tests success density82. Uncovered lines未覆蓋行數(shù)83. Unit test errors單元測(cè)試出錯(cuò)數(shù)84. Unit test failures單元測(cè)試失敗數(shù)85. Unit test success (%)單元測(cè)試成功率86. Unit tests單元測(cè)試個(gè)數(shù)87.

26、Unit tests duration單元測(cè)試需要的時(shí)間SCM88. CommitsSVN庫總的提交數(shù)89. Last commit最近的一次提交時(shí)間SQALE90. SQALE RatingSQALE(Software Quality Assessment based on Lifecycle Expectations)評(píng)級(jí);基于生命周期期望的軟件質(zhì)量模型91. SQALE Remediation CostSQALE整治成本附錄92. Sonar插件插件名稱插件介紹度量參數(shù)ABAPABAP項(xiàng)目插件Artifact Size衡量項(xiàng)目產(chǎn)品的大小Artifact Size (Kb)Branding

27、允許添加Logo到Sonar界面上Build Breaker在有一個(gè)警報(bào)閾值滿足時(shí),停止分析處理CC項(xiàng)目插件C RulesC規(guī)則插件Clirr檢查Java庫二進(jìn)制文件及源代碼與之前版本的兼容性API behavior changesAPI breaksNew APITotal API ChangesClover通過Atlassian Clover(收費(fèi))獲取覆蓋率CobolCobol項(xiàng)目插件CrowdAtlassian Crowd在Sonar上的認(rèn)證委托Email分析報(bào)告可通過Email進(jìn)行傳輸EmmaEmma是替代Clover和Cobertura測(cè)量單元測(cè)試代碼覆蓋率的工具FlexActio

28、nScript項(xiàng)目插件French Pack法語包Google Calendar將Google日歷集成到SonarGreenPepper收集GreenPepper Maven plugin提供的測(cè)試報(bào)告到Sonar上GroovyGroovy項(xiàng)目插件JMeter在Sonar上展示JMeter測(cè)試結(jié)果JaCoCoJaCoCo是替代Clover和Cobertura測(cè)量單元測(cè)試代碼覆蓋率的工具JavaScriptJavaScript項(xiàng)目插件Jira從Jira服務(wù)中收集項(xiàng)目缺陷的數(shù)目LDAPLDAP在Sonar上的認(rèn)證委托Mantis從Mantis BugTracker中檢索項(xiàng)目缺陷的個(gè)數(shù)Motion

29、Chart顯示一組指標(biāo)隨著時(shí)間的演變(需要接入互聯(lián)網(wǎng))NaturalNatural項(xiàng)目插件PAM允許Sonar在*nix box上使用PAM認(rèn)證PDF ReportPDF報(bào)告插件PHPPHP項(xiàng)目插件PL/SQLPL/SQL項(xiàng)目插件Quality Index根據(jù)編碼規(guī)范、樣式、復(fù)雜度、覆蓋率計(jì)算一個(gè)全局的質(zhì)量指標(biāo)QI Test CoverageQI Style Weighted ViolationsQI Style ViolationsQI Coding Weighted ViolationsQI Coding ViolationsComplexity FactorComplexity Fact

30、or MethodsQI ComplexityQuality IndexRadiator使用treemap顯示度量指標(biāo)SCM Activity從SCM收集和報(bào)告信息。CommitsLast commitSIG Maintainability ModelSIG可維護(hù)性模型接口SIG MMTestability ValueStability ValueChangeability ValueAnalysability ValueSecurity Rules檢測(cè)一組已定義的安全規(guī)則Weighted Security ViolationsSecurity violationsSecurity rules

31、 complianceSonar Cutoff Plugin通過日期排除要分析的文件;所有從最后修改時(shí)間到配置的截止時(shí)間之內(nèi)的源文件都被排除在外。當(dāng)你需要分析在現(xiàn)有代碼基礎(chǔ)上新增代碼或修改時(shí),這可能是有用的。這種方式對(duì)于以前各階段的分析不會(huì)影響分析結(jié)果。Sonar Piwik PluginPiwik(/)是一個(gè)開源的可替換Google Analytics來使用的網(wǎng)絡(luò)分析軟件,特別是在內(nèi)部網(wǎng)站。Piwik插件可以將Sonar上個(gè)人瀏覽活動(dòng)的記錄提交到Piwik服務(wù)器。Sonargraph通過循環(huán)依賴及其他架構(gòu)方面的指標(biāo)提供架構(gòu)改進(jìn)功能SQALE基于生命周期期望的軟件

32、質(zhì)量評(píng)估SQALE Remediation CostSQALE RatingSpanish Pack西班牙包Switch Off Violations關(guān)閉違規(guī)檢查Taglist分析代碼中像TODO或者/TODO的標(biāo)記Technical Debt以美元計(jì)算修復(fù)源代碼中所有質(zhì)量問題所需要的工作量Technical Debt ratioTechnical Debt in daysTechnical Debt ($)Timeline高級(jí)時(shí)間機(jī)器(time machine)圖表(需要連入互聯(lián)網(wǎng))Total Quality將代碼質(zhì)量、設(shè)計(jì)、架構(gòu)及測(cè)試質(zhì)量結(jié)合在一塊提供項(xiàng)目的整體質(zhì)量度量Testing Qu

33、alityCode QualityTotal QualityDrynessDesign QualityDesign Response for ClassDesign Lack of Cohesion of MethodsDesign Depth of Inheritance TreeDesign Coupling Between ObjectsDesign Classes and Methods ComplexityArchitecture Tangle IndexArchitectureTrac從Trac中檢索和報(bào)告項(xiàng)目問題Useless Code Tracker查找項(xiàng)目內(nèi)重復(fù)源代碼Tota

34、l Useless CodePotential Dead CodeDead CodeUseless Duplicated LinesViews創(chuàng)建項(xiàng)目的樹狀圖,項(xiàng)目按照應(yīng)用程序進(jìn)行分類,應(yīng)用程序按照小組來進(jìn)行分類,小組按照部門進(jìn)行分類Visual BasicVisual Basic項(xiàng)目插件Web分析Web代碼Xml分析XML和XHTML文檔fb-contrib新的FindBugs規(guī)則Checkstyle使用Checkstyle 5.1分析Java代碼Cobertura使用Cobertura.獲取覆蓋率Core提供覆蓋到所有語言的通用組件Database Cleaner清除舊的或無用的數(shù)據(jù),來提

35、高數(shù)據(jù)庫性能Design分析Java字節(jié)碼來計(jì)算O.O.度量值并提取資源之間的依賴關(guān)系Duplications查找項(xiàng)目中重復(fù)的源代碼Email notificationsEmail通知English Pack英語包Findbugs使用分析Java代碼Google analytics將Google Analytics跟蹤腳本添加到Sonar應(yīng)用程序PMD使用分析Java代碼Squid for JavaSquid分析JavaSurefire使用Surefire獲取單元測(cè)試結(jié)果93. Sonar幫助文檔中的度量值度量是Sonar的核心,有效的使用Sonar,需要完全了解每個(gè)參數(shù)的定義和計(jì)算方式。Na

36、meKeyDescriptionPhysical lineslines回車數(shù)目Comment linescomment_lines Javadoc、多行注釋、單行注釋的總數(shù)??兆⑨屝?、頭文件中的注釋(主要用于定義許可證)以及commented-out行均不會(huì)包括在內(nèi)。/* * This is a javadoc block *  <- empty comment line considered as a blank line */  <- empty comment line considered as a blank l

37、ine/* * This is a multi-comment block */ This is a single-comment block/ log("Debug information"); <- commented-out line of code is not a comment lineCommented-out lines of codecommented_out_code_lines注釋掉的代碼行數(shù)。Javadoc塊不會(huì)被掃描/* someoneCommentMeOutOneDay();* nobodyKnowWhatAmISupp

38、osedToDo();*/Lines of codenclocphysical lines - blank lines - comment lines - header file comments - commented-out lines of codeDensity of comment linescomment_lines_densitycomment lines / (lines of code + comments lines) * 100%Packagespackages包數(shù)目Classesclasses類的數(shù)目,包括內(nèi)部類、接口、枚舉及注釋標(biāo)簽Filesfiles分析的文件數(shù)目D

39、irectoriesdirectories分析的目錄數(shù)目AccessorsaccessorsGetter及setter方法數(shù)目,通過get(reading)或set(writing)一個(gè)類屬性/ Getterspublic String getName()     return ;public boolean isParent()     return this.isParent;/ Setterspublic void setName(String name) &#

40、160;    = name;public void setIsParent(boolean isParent)     this.isParent = isParent;MethodsFunctions方法數(shù)目,不包括訪問器。一個(gè)構(gòu)造函數(shù)算作一個(gè)方法Public APIpublic_api公共類、方法(不包括訪問器)以及屬性(不包括public final static修飾的屬性)Public undocumented APIpublic_undocumented_api不包含javadoc塊的

41、公共API數(shù)目Density of public documented APIpublic_documented_api_density(public API - undocumented public API) / public API * 100%Duplicated linesduplicated_lines重復(fù)的物理行數(shù)Duplicated blocksduplicated_blocks重復(fù)的代碼塊數(shù)Duplicated filesduplicated_files涉及到重復(fù)代碼的文件數(shù)目Density of duplicated linesduplicated_lines_densit

42、yDuplicated lines / Physical lines * 100%StatementsstatementsJava語言規(guī)范中沒有塊定義的語句數(shù)目;此數(shù)目在遇到含有if, else, while, do, for, switch, break, continue, return, throw, synchronized, catch, finally等關(guān)鍵字的語句時(shí)增加。例如:/i = 0;if (ok)if (exit) if (3 = 4);if (4 = 4) ; else trywhile(true)for(.).語句數(shù)目不會(huì)隨著以下情況增加,類、方法、字段、注釋定義、包

43、以及import定義。Complexitycomplexity圈復(fù)雜度也被稱為McCabe度量。它簡單歸結(jié)為一個(gè)方法中if , for , while等塊的數(shù)目。當(dāng)一個(gè)方法的控制流分割,圈計(jì)數(shù)器加1.除不被認(rèn)為是方法的訪問器外,每個(gè)方法默認(rèn)有最小的值1,所以不會(huì)增加復(fù)雜度。對(duì)于以下的每一個(gè)java關(guān)鍵字/語句,圈復(fù)雜度均會(huì)加1:ifforwhilecasecatchthrowreturn (當(dāng)不是一個(gè)方法最好一個(gè)語句時(shí))&&|?注意else, default及finally不會(huì)增加CCN的值。另一方面,一個(gè)含switch語句及很大塊case語句的簡單方法可以擁有一個(gè)令人驚訝的高

44、的CCN值(同時(shí),當(dāng)將switch塊轉(zhuǎn)化為等效的if語句時(shí),它具有相同的CCN值)。例如,下面的方法具有5的復(fù)雜度。public void process(Car myCar) <- +1 if(myCar.isNotMine() <- +1 return; <- +1 car.paint("red"); car.changeWheel(); while(car.hasGazol() && car.getDriver().isNotStressed() <- +2 car.drive(); return;Average complex

45、ity by methodfunction_complexity方法的平均圈復(fù)雜度Complexity distribution by methodfunction_complexity_distribution方法復(fù)雜度的分布Average complexity by classclass_complexity類的平均圈復(fù)雜度Complexity distribution by classclass_complexity_distribution類復(fù)雜度的分布Average complexity by filefile_complexity文件平均復(fù)雜度Violationsviolation

46、s違規(guī)總數(shù)New Violationsnew_violations新的違規(guī)數(shù)目xxxxx violationsxxxxx_violationsXxxxx級(jí)別違規(guī)的數(shù)目,xxxxx為阻礙、嚴(yán)重、主要、次要和建議New xxxxx violationsnew_xxxxx_violations新的Xxxxx級(jí)別違規(guī)的數(shù)目,xxxxx為阻礙、嚴(yán)重、主要、次要和建議Weighted violationsweighted_violations通過每個(gè)級(jí)別的相關(guān)系數(shù),違規(guī)權(quán)重的總和(Sum(xxxxx_violations * xxxxx_weight))Rules compliance indexviol

47、ations_density100 - weighted_violations / Lines of code * 100Unit testsTests單元測(cè)試數(shù)目Unit tests durationtest_execution_time執(zhí)行單元測(cè)試的時(shí)間Unit test errortest_errors單元測(cè)試發(fā)生錯(cuò)誤的數(shù)目Unit test failurestest_failures單元測(cè)試以不符合預(yù)期的異常失敗Unit test success densitytest_success_density(Unit tests - (errors + failures)/ Unit tes

48、ts * 100Skipped unit testsskipped_tests跳過的單元測(cè)試數(shù)目Line Coverageline_coverage行覆蓋率Line coverage = LC / EL其中LC 覆蓋的行數(shù) (lines_to_cover - uncovered_lines)EL 可執(zhí)行的代碼行數(shù) (lines_to_cover)New Line Coveragenew_line_coverage新代碼或更新代碼的行覆蓋率Branch coveragebranch_coverage分支覆蓋率Branch coverage = (CT + CF) / (2*B)其中CT 條件至少

49、一次為“true”的分支CF 條件至少一次為“false”的分支(CT + CF = conditions_to_cover - uncovered_conditions) B 分支的總數(shù)量 (2*B = conditions_to_cover)New Branch Coveragenew_branch_coverage新的或更新代碼的分支覆蓋率Coveragecoverage覆蓋率coverage = (CT + CF + LC)/(2*B + EL) 其中CT -條件至少一次為“true”的分支CF -條件至少一次為“false”的分支LC -覆蓋的行數(shù)(lines_to_cover - uncovered_lines) B -分支的總數(shù)量(2*B = conditions_to_cover)EL 可執(zhí)行代碼的總行數(shù) (lines_to_cover)New Coveragenew_coverage新的或更新代碼的覆蓋率Conditions to Coverconditions_to_cover單元測(cè)試覆蓋的條件總數(shù)New Conditions to Covernew_conditions_t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論