华唐产品 | 解决方案 | 技术支持 | 成功案例 | 下载中心 | 培训中心 | AEP理论中心
 >  首页 > 产品
华唐产品导航
  高频EDA设计仿真工具
  自动化软件测试工具
   
C/C++测试
   
  C++test
  Insure++
  CodeTEST
  VectorCAST
   
Java测试
Web应用测试
WEB服务测试
.NET测试
  软件开发工具
  仿真器
  数字建模系统
  协议一致性测试
  无线网桥
     

 

TCA:测试覆盖性分析

Insure++有一个附加的覆盖性分析模块TCA。在查找程序中的错误时,Insure++记录下程序中的那些部分已被检测过。运行结束后,TCA利用保存的覆盖性信息,显示那部分代码已经检测过,多少代码被检测过,以及不同的代码块被执行多少次。

覆盖性分析的目的

测试覆盖性分析就是要确定那些程序、函数和语句已经被执行过,便于在整个开发和测试过程中,了解测试状态,提高测试质量。

Insure++检查错误的质量不完全依赖于开发和测试人员所付出的努力大小,它对执行过的任何代码进行完整而彻底的检查。目标应该是100%的覆盖性,以期达到更高的测试质量。TCA提供下列代码覆盖性信息:

  • 应用级的覆盖性百分数。
  • 函数级覆盖性。
  • 代码块-不同程序语句块的覆盖性。

与Insure一起使用

Insure++覆盖性分析模块使您能够看到程序中的那些部分实际检测过及其执行次数。将运行时调试器和综合的测试数据集结合在一起,能够极大地改善测试效率并更快地提交可靠的程序。

与其它一些基于代码行的覆盖性分析工具方法不同,TCA能够将代码划分成逻辑块。块是一组连续的、顺序执行的语句(逻辑分支)的更简练的表示。

例如下列代码有三条语句,但只算一块:
i = 3;
j = i+3;
return i+j;

又如,下列代码只有一条语句:
if (x>0) y=1; else y=0;

但有三块:if (x>0)、y=1和y=0。

因此以代码块为基础比以行为基础有更大的好处:

  • 具有多个块的语句行可以分别对待(而非将整个语句作为一个单位计算),从而消除行覆盖性信息的不正确性。
  • 消除了多余的信息量(块中的所有语句具有相同的覆盖性信息)。
  • 将标号作为单独的组,能够实际检测那些路径(不仅是语句)已经被执行过了。

下图显示了经过几次测试后的结果。可以看到那些路径或分支已执行过,那些还没有。其中计数只给出在每块的开始,而非块中每条语句。

Insure++加TCA是一个强大的组合。Insure++只能对被执行的代码进行检查,而TCA能告诉程序员那些语句被执行过了。将运行时调试器和覆盖性分析工具一起使用,能够确定在测试过程中每一代码块已经被检查过,从而显著改善测试代码的质量。

BLOCK COUNTS - by file
===================
FILE test.c 87% covered: 2 untested / 14 tested

#include <ctype.h>
main(int argc, char **argv) {
int flag;

6 ->     if (argc < 2 || !isdigit(argv[1][0])) {
1 ->     printf("Bad argument(s)n");
         exit(1);
         }
5 ->     switch(atoi(argv[1])) {
0,2,1 -> case 1: case 2: case 3:
3 ->     flag = 1;
         break;
1 ->     case 4:
0 ->     case 5:
1 ->     flag = 2;
         break;
1 ->     default:
1 ->     flag = 0;
         break;
         }
5,4,1 -> if (flag > 0) flag = 1; else flag = 0;
5 ->     printf("Flag is %sn", flag ? "1" : "0");
         exit(0);
         }

 

数据清单

产品概述
产品特性
系统要求
演示
PDF文档

Insure++视频介绍
Insure++视频演示

n 加速开发软件过程
n 变异测试:一种自动错误检测的新方法
n Threads++:多线程错误检测
n TCA:测试覆盖性分析
n Inuse:优化内存使用
n Insure++:自动化的运行时错误检测工具

v C/C++解决方案

试用软件下载
  试用须知

查看Insure++原厂商美国Parasoft公司介绍

 

 

版权所有 深圳市华唐软件技术有限公司   粤ICP备06057501号