### [1、程序代码信息汇总]()
![](image/5630a58f51486.png)
程序代码信息汇总中显示当前代码基本信息、代码注释比例、代码可维护性。它能有效地检查出代码的整体状况,并指出相应的薄弱点。
计算上述指标需要使用到以下数据并对应映射表来确定:可分析性、可修改性、稳定性、可测试性的最终等级
<table class="msotablemediumgrid3accent"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="70" class="calibre12"><p class="msonormal3"><span class="calibre13"><span> </span></span></p></td><td valign="top" width="99" class="calibre14"><p class="msonormal3"><span class="calibre13">基于代码的行数</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre14"><p class="msonormal3"><span class="calibre13">段复杂度(JC0)</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre14"><p class="msonormal3"><span class="calibre13">基于代码重复的密度</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre15"><p class="msonormal3"><span class="calibre13">基于方法代码的行数</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre16"><p class="msonormal3"><span class="calibre13">段覆盖率(SC0)</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="70" class="calibre17"><p class="msonormal3"><span class="calibre13">可分析性</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre18"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre18"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre18"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre21"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre22"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td></tr><tr class="calibre11"><td valign="top" width="70" class="calibre23"><p class="msonormal3"><span class="calibre13">可修改性</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre24"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre24"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre24"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre25"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre26"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td></tr><tr class="calibre11"><td valign="top" width="70" class="calibre27"><p class="msonormal3"><span class="calibre13">稳定性性</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre28"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre28"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre28"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre29"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre30"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td></tr><tr class="calibre11"><td valign="top" width="70" class="calibre31"><p class="msonormal3"><span class="calibre13">可测试性</span><span class="calibre13"/></p></td><td valign="top" width="99" class="calibre32"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre32"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre32"><p class="msonormal5"><span class="calibre20"><span> </span></span></p></td><td valign="top" width="99" class="calibre33"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td><td valign="top" width="99" class="calibre34"><p class="msonormal4"><span class="calibre19">R</span><span class="calibre20"/></p></td></tr></tbody></table>
可分析性
(基于代码的行数+基于代码重复的密度+基于方法代码的行数+段覆盖率)/3
可修改性
(段复杂度+基于代码重复的密度)/2
稳定性性
段覆盖率
可测试性
(段复杂度+基于方法代码的行数+段覆盖率)/3
其中页面中对应显示,级别分为4个等级:
<table class="msotablemediumgrid3accent"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="62" class="calibre35"><p class="msonormal3"><span class="calibre13">级别</span><span class="calibre13"/></p></td><td valign="top" width="101" class="calibre36"><p class="msonormal3"><span class="calibre13">0</span><span class="calibre37"/></p></td><td valign="top" width="101" class="calibre36"><p class="msonormal3"><span class="calibre13">1</span><span class="calibre13"/></p></td><td valign="top" width="101" class="calibre36"><p class="msonormal3"><span class="calibre13">2</span><span class="calibre13"/></p></td><td valign="top" width="101" class="calibre38"><p class="msonormal3"><span class="calibre13">3</span><span class="calibre13"/></p></td><td valign="top" width="100" class="calibre39"><p class="msonormal3"><span class="calibre13">4</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="62" class="calibre40"><p class="msonormal3"><span class="calibre13">描述</span><span class="calibre13"/></p></td><td valign="top" width="101" class="calibre41"><p class="msonormal3"><span class="calibre6">极差</span><span class="calibre6"/></p></td><td valign="top" width="101" class="calibre41"><p class="msonormal3"><span class="calibre6">差</span><span class="calibre6"/></p></td><td valign="top" width="101" class="calibre41"><p class="msonormal3"><span class="calibre6">中</span><span class="calibre6"/></p></td><td valign="top" width="101" class="calibre42"><p class="msonormal3"><span class="calibre6">良</span><span class="calibre6"/></p></td><td valign="top" width="100" class="calibre43"><p class="msonormal3"><span class="calibre6">优</span><span class="calibre6"/></p></td></tr></tbody></table>
### [各项指标属性分级表]()
星云测试根据行业标准按照各项指标进行属性分级,用于最后的等级计算。
#### [基于代码的行数:]()
<table class="msotablemediumgrid3accent"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="112" class="calibre47"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="91" class="calibre48"><p class="msonormal3"><span class="calibre13">0</span><span class="calibre37"/></p></td><td valign="top" width="91" class="calibre48"><p class="msonormal3"><span class="calibre13">1</span><span class="calibre13"/></p></td><td valign="top" width="91" class="calibre48"><p class="msonormal3"><span class="calibre13">2</span><span class="calibre13"/></p></td><td valign="top" width="91" class="calibre49"><p class="msonormal3"><span class="calibre13">3</span><span class="calibre13"/></p></td><td valign="top" width="90" class="calibre50"><p class="msonormal3"><span class="calibre13">4</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="112" class="calibre51"><p class="msonormal3"><span class="calibre13">基于代码的行数</span><span class="calibre13"/></p></td><td valign="top" width="91" class="calibre52"><p class="msonormal3"><span class="calibre6">> 1310000</span><span class="calibre6"/></p></td><td valign="top" width="91" class="calibre52"><p class="msonormal3"><span class="calibre6">> 655000</span><span class="calibre6"/></p></td><td valign="top" width="91" class="calibre52"><p class="msonormal3"><span class="calibre6">> 246000</span><span class="calibre6"/></p></td><td valign="top" width="91" class="calibre53"><p class="msonormal3"><span class="calibre6">> 66000</span><span class="calibre6"/></p></td><td valign="top" width="90" class="calibre54"><p class="msonormal3"><span class="calibre6">0</span><span class="calibre6"/></p></td></tr></tbody></table>
#### [基于代码重复的密度]()
<table class="msotablemediumgrid3accent"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="140" class="calibre55"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre56"><p class="msonormal3"><span class="calibre13">0</span><span class="calibre37"/></p></td><td valign="top" width="85" class="calibre56"><p class="msonormal3"><span class="calibre13">1</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre56"><p class="msonormal3"><span class="calibre13">2</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre57"><p class="msonormal3"><span class="calibre13">3</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre58"><p class="msonormal3"><span class="calibre13">4</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="140" class="calibre59"><p class="msonormal3"><span class="calibre13">基于代码重复的密度</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre60"><p class="msonormal3"><span class="calibre6">> 20%</span><span class="calibre6"/></p></td><td valign="top" width="85" class="calibre60"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">10</span><span class="calibre6">%</span><span class="calibre6"/></p></td><td valign="top" width="85" class="calibre60"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">5</span><span class="calibre6">%</span><span class="calibre6"/></p></td><td valign="top" width="85" class="calibre61"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">3%</span><span class="calibre6"/></p></td><td valign="top" width="85" class="calibre62"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">0</span><span class="calibre6">%</span><span class="calibre6"/></p></td></tr></tbody></table>
#### [基于代码段测试覆盖率(SC0)]()
<table class="msotablemediumgrid3accent"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="126" class="calibre63"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre64"><p class="msonormal3"><span class="calibre13">0</span><span class="calibre37"/></p></td><td valign="top" width="88" class="calibre64"><p class="msonormal3"><span class="calibre13">1</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre64"><p class="msonormal3"><span class="calibre13">2</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre65"><p class="msonormal3"><span class="calibre13">3</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre66"><p class="msonormal3"><span class="calibre13">4</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="126" class="calibre67"><p class="msonormal3"><span class="calibre13">基于段测试覆盖率</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre68"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">0</span><span class="calibre6">%</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre68"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">20</span><span class="calibre6">%</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre68"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">60</span><span class="calibre6">%</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre69"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">80%</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre70"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">95</span><span class="calibre6">%</span><span class="calibre6"/></p></td></tr></tbody></table>
#### [基于代码段复杂度(JC0)]()
第一步,根据圈复杂度的范围确定在方法代码行中的百分比:
<table class="msotablemediumgrid3accent1"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="126" class="calibre71"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre72"><p class="msonormal3"><span class="calibre13">Low</span><span class="calibre37"/></p></td><td valign="top" width="88" class="calibre73"><p class="msonormal3"><span class="calibre13">Medium</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre73"><p class="msonormal3"><span class="calibre13">High</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre74"><p class="msonormal3"><span class="calibre13">Very high</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="126" class="calibre75"><p class="msonormal3"><span class="calibre13">基于代码段复杂度</span><span class="calibre13"/></p></td><td valign="top" width="88" class="calibre76"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">0</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre77"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">10</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre77"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">20</span><span class="calibre6"/></p></td><td valign="top" width="88" class="calibre78"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">50</span><span class="calibre6"/></p></td></tr></tbody></table>
第二步,然后根据分布,我们使用下面的表格来计算等级
<table class="msotablemediumgrid3accent2"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="93" class="calibre79"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre80"><p class="msonormal3"><span class="calibre13">Medium</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre80"><p class="msonormal3"><span class="calibre13">High</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre80"><p class="msonormal3"><span class="calibre13">Very High</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre81"><p class="msonormal3"><span class="calibre13">1</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre82"><p class="msonormal3"><span class="calibre6">< 50%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre82"><p class="msonormal3"><span class="calibre6">< 15%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre83"><p class="msonormal3"><span class="calibre6">< 5%</span><span class="calibre6"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre84"><p class="msonormal3"><span class="calibre13">2</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre85"><p class="msonormal3"><span class="calibre6">< 40%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre85"><p class="msonormal3"><span class="calibre6">< 10%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre86"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre87"><p class="msonormal3"><span class="calibre13">3</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre88"><p class="msonormal3"><span class="calibre6">< 30%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre88"><p class="msonormal3"><span class="calibre6">< 5%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre89"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre90"><p class="msonormal3"><span class="calibre13">4</span><span class="calibre37"/></p></td><td valign="top" width="150" class="calibre91"><p class="msonormal3"><span class="calibre6">< 25%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre91"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre92"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td></tr></tbody></table>
不在上述范围,否则等级是0
#### [基于方法代码的行数(Unit size)]()
第一步,根据行数的范围确定方法代码行数的百分比:
<table class="msotablemediumgrid3accent1"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="140" class="calibre93"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre94"><p class="msonormal3"><span class="calibre13">Low</span><span class="calibre37"/></p></td><td valign="top" width="85" class="calibre94"><p class="msonormal3"><span class="calibre13">Medium</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre94"><p class="msonormal3"><span class="calibre13">High</span><span class="calibre13"/></p></td><td valign="top" width="84" class="calibre95"><p class="msonormal3"><span class="calibre13">Very high</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="140" class="calibre96"><p class="msonormal3"><span class="calibre13">基于方法代码的行数</span><span class="calibre13"/></p></td><td valign="top" width="85" class="calibre97"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">0</span><span class="calibre6"/></p></td><td valign="top" width="85" class="calibre97"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">10</span><span class="calibre6"/></p></td><td valign="top" width="85" class="calibre97"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">50</span><span class="calibre6"/></p></td><td valign="top" width="84" class="calibre98"><p class="msonormal3"><span class="calibre6">> </span><span class="calibre6">100</span><span class="calibre6"/></p></td></tr></tbody></table>
第二步,然后根据分布,使用下面的表格来计算等级:
<table class="msotablemediumgrid3accent2"><tbody class="calibre10"><tr class="calibre11"><td valign="top" width="93" class="calibre99"><p class="msonormal3"><span class="calibre13">分级</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre100"><p class="msonormal3"><span class="calibre13">Medium</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre100"><p class="msonormal3"><span class="calibre13">High</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre100"><p class="msonormal3"><span class="calibre13">Very High</span><span class="calibre13"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre101"><p class="msonormal3"><span class="calibre13">1</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre102"><p class="msonormal3"><span class="calibre6">< 50%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre102"><p class="msonormal3"><span class="calibre6">< 15%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre103"><p class="msonormal3"><span class="calibre6">< 5%</span><span class="calibre6"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre104"><p class="msonormal3"><span class="calibre13">2</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre105"><p class="msonormal3"><span class="calibre6">< 40%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre105"><p class="msonormal3"><span class="calibre6">< 10%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre106"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre107"><p class="msonormal3"><span class="calibre13">3</span><span class="calibre13"/></p></td><td valign="top" width="150" class="calibre108"><p class="msonormal3"><span class="calibre6">< 30%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre108"><p class="msonormal3"><span class="calibre6">< 5%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre109"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td></tr><tr class="calibre11"><td valign="top" width="93" class="calibre110"><p class="msonormal3"><span class="calibre13">4</span><span class="calibre37"/></p></td><td valign="top" width="150" class="calibre111"><p class="msonormal3"><span class="calibre6">< 25%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre111"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td><td valign="top" width="150" class="calibre112"><p class="msonormal3"><span class="calibre6">< 0%</span><span class="calibre6"/></p></td></tr></tbody></table>
否则等级为0。