5.4.2条件判定覆盖
TT除了提供了几种段覆盖率统计,也提供了条件判定的多种覆盖率,具体的有条件为真(TURE),条件为假(FALSE)、条件真假(BOTH)、分支覆盖又称判定覆盖(Branch覆盖)、条件/判定覆盖(C/DC)、修正的条件判定/覆盖(MC/DC)。TT囊括了几乎所有的条件判定类的覆盖率。给测试人用提供程序中各种条件判定式中各条件以及各判定的真假分支执行情况以及各种相关复杂度统计数据,直观、多方位、几近全面的逻辑表达式的分支覆盖统计让繁杂的测试变得容易、简单、精准。
通过ControlFlow视图部分,选中代码中条件判定式,右侧窗口会显示各个条件、条件组合以及整个判定表达式的真假分支被执行的情况,表示执行过、表示没有被执行。测试人员可以根据执行情况,去补充增加相应的测试用例,完善测试,达到100%覆盖测试。如果测试人员不能很好的设计补充测试用例,可以和开发人员进行沟通,确定没被覆盖的分支如何设计测试用例。通过TT很直观很准确的定位到那块代码或那些分支没有被覆盖,让测试和开发很好的协同工作,减少了沟通时间,同时也减少了沟通障碍。
5.5复杂度分析
在软件开发过程中,保证代码质量时,往往会被要求控制代码复杂度。复杂度称为代码量度是经过了很长的一段历史经历的,令大多人熟知的圈复杂度简称CC也是这段历史的产物,每个公司都会有对圈复杂度的一个告警值。
TT通过复杂度分析,给出多种复杂度的计算值,对于高复杂度的模块应考虑重构。对于高复杂度的模块,还可以进一步得知其控制流程图和逻辑框图的复杂程度。控制好复杂度能有效地增强软件产品的可维护性,降低bug的发生率,同时也让软件产品的测试工作能更好的进行。
TT提供的复杂度除了之前提到的JC0,JC1,JC1+,CC0(包含case语句在内的圈复杂度)、CC1(不包含case在内的圈复杂度)以及JC2(条件-段的测试复杂度)
JC2=所有可见段+不可间段+所有条件判定语句个数。
在ListView里面我们可以点击某个复杂度对函数进行升序降序排列,对于高复杂度的,点击调转到ControlFlow图部分查看对应的控制流程图。可以和开发人员沟通,对模块进行优化,控制复杂度,使得测试工作更好展开。
6. 详细直观的报表能够快速的汇总测试项目的各项指标信息,以多样化的表现形式向用户展示了测试用例执行结果以及源代码的各项指标
点击工具栏View->Analyzer Report进入报表界面。
(1)基本信息统计部分
主要是对当前项目的当前版本的行数统计、包数量统计、文件数量统计、类数量统计、函数数量统计以及测试用例数量统计。
(2)覆盖率扇形图
TT个人版的目前的覆盖率的划分是固定的,划分了4个区域分别是0%~25%、25%~50%、50%~75%、75%~100%。TT的企业版的这些数据区间是可以自动设置的,企业可以根据项目的要求设定合适的有针对性的覆盖率区间。
下图为本次案例的覆盖率统计,可以看到设计的测试用例的还是没有充分测试的,需要有针对性的增加测试用例完善测试。
文件的各个覆盖率统计扇形图
类的各个覆盖率统计扇形图
函数的各个覆盖率统计扇形图
(3)复杂度扇形图 TT的个人版针对复杂度的划分区间是根据行业经验值来划分的,历史研究认为复杂度大于10会存在很大的出错风险。我们可以看到整个源代码中绝大多数的函数的复杂度都是<10,只有少数的函数还需要进一步优化改进。
(4)覆盖率统计 LRV:表示最后一次运行时的覆盖率 CLV:表示累积覆盖率 横坐标表示:SC0,SC1,SC1+,TRUE,FALSE,BOTH,BRANCH,CDC,MCDC 九种不同类型的函数覆盖率; 纵坐标表示: 不同类型覆盖率*100的数值;
(5)覆盖率按天的增长曲线图
横轴表示不同的日期;纵轴表示覆盖率*100的数值; 黄色图形部分表示覆盖率的变化走势 (6)排行榜 TT提供的排行榜有 1.函数复杂度排行(显示复杂度最高的10个函数以及对应的复杂度) 2.函数热度排行(执行次数最多的10个函数以及执行次数) 3.测试用例贡献度排行(测试覆盖率做多的10个测试用例) 4.正向追溯排行(测试覆盖函数最多的10个测试用例,根据波及到的函数数量排行) 5.逆向追溯排行(波及到的用例数最多的10个函数) 6.扇入扇出最多的函数排行 7.条件复杂度排行(按照子条件的数量排行,列出MC/DC覆盖率)
7. 支持分布式测试场景
支持分布式应用的集成测试 当用户的系统为分布式系统,由多个组件在集成环境下同时对外提供服务的情况下,TT支持对这个分布式环境的各个组件及其交互的联合测试。即可以看到一个外部请求,对不多个子系统之间的所有的执行情况。 支持多用户同时测试与测试数据的有效隔离 TT允许多个用户同时对被测应用测试,而不同用户针对不同用例即时在同一时刻做的测试而产生的测试数据之间也不会发生任何混淆的情况 |