选择示波器界面中刚建立的用例,选择start进行数据接收。连接移动设备有USB和热点等多种方式可以点击help获得相关说明。
5.测试数据获取完毕后,TT超高速、大型、互动的图形化系统展示5.1主界面-调用关系视图
5.2主界面-控制流程视图
5.3主界面-函数列表视图
5.4覆盖率分析
主界面的CallGraph、ControlFlow、ListView三个视图是可以相互切换的,我们可以通过查看每个函数的各个覆盖率的数据,如果覆盖率没有达到100%的,可以选择查看函数的那部分代码或者分支执行的测试用例没有覆盖到。
ListView视图是以列表的形式显示了项目包含的所有函数的各种覆盖率信息和复杂度信息的统计数据,支持翻页、跳转指定页,按各列升序排序等功能。
5.4.1段覆盖
设置跳转到CoverageView中的函数调转,选中的函数的SC0=80% ,SC1=88.9%,SC1+=88.9%,JC0=5, JC1=11,JC1+=9。
例如:SC0块测试覆盖。如果程序的所有可见段(程序块)至少被执行一次,则该段程序的SC0覆盖率达到了100%。
SC0= 被执行的块个数/该段程序包含的块个数(即可见段个数),JC0=一段程序的块的个数。也就是JC0是SC0的分母。同样JC1是SC1的分母,JC1+是SC1+的分母。
(1)以SC0为例子,怎么查看那些块没有被测试用例组覆盖到,引导测试人员完善测试用例,达到100%覆盖。跳转到CoverageView界面,如下图,选择Coverage->SC0,覆盖率是80%,该覆盖块包含的静态代码块是5,覆盖到的是4块,可以看到蓝色的Block:978没有覆盖到,如果测试用例满足了if(i<5) 这个条件,那么Block:978块就会被覆盖到。
当然我们也可以在ControlFlow视图部分看到相应的代码执行覆盖情况,如下图我们可以看到return true;这个语句的执行次数为0,if(i<10)中的i<10的真分支没有被执行,只有假分支被执行过。
(2)TT提供的段覆盖包括SC0,SC1,SC1+,那TT为什么光段覆盖率就会提供三种呢?
我们都知道普通的段覆盖被看做最弱的覆盖率,而大多数软件测试过程中所提到的段覆盖就是TT的 SC0覆盖,这种覆盖率标准只考虑覆盖代码中的执行语句块,却不考虑各种语句结构的分支覆盖情况等,因此往往被看做比较弱的覆盖,但却是很必要的一种覆盖量度。TT考虑到普通的段覆盖的缺点,因此在SC0的基础上提出了SC1以及SC1+覆盖率,都是SC0覆盖率的加强版。
SC1——标准段测试覆盖。如果程序的所有顶端不可见段至少被执行一次并且满足SC0 100%覆盖,则该程序的一组测试用例满足SC1 100%覆盖。
SC1=被执行的代码块(包括不可见段0以及不可见段2)/该段程序包含的块个数(包括不可见段0以及不可见段2)
不可见段0(if和swicth)判断体结束后的不可见段,即if和switch中条件判定式不满足的情况,会存在一个不可见段
不可见段2(for、while和do-while)循环体结束后的不可见段,即for、while、do-while循环条件不满足时,会正常跳出循环,这时会存在一个不可见段。
SC1+——增强标准段测试覆盖。如果程序的所有低端循环边界不可见段至少被执行一次并且满足SC1 100%覆盖,则该程序的一组测试用例满足 SC1+ 100%。
SC1+=被执行的代码块(包括不可见段0,不可见段2以及不可见段1)/该段程序包含的块个数(包括不可见段0,以及不可见段2以及不可见段1)
不可见段1(for和while)非正常的结束循环体时的不可见段,也就是指for和while循环体一次都没有被执行的情况,这时会存在一个不可见段。
上述那个例子的覆盖率信息是SC0=80% ,SC1=88.9%,SC1+=88.9%,SC1和SC1+相同,那这就意味着这个函数代码中没有for以及while循环,SC0和SC1不同意味着这个函数代码中存在条件语句。
SC0各段的覆盖情况
SC1各段的覆盖情况
上图中红色框的为条件的隐藏段,也就是当条件不满足时所走的分支,4个隐藏代码块都被执行过,也就意味着这4个条件的假分支都至少被执行过一次。可以转换到ControlFlow视图部分,这些条件的假分支是都被执行过的。 |