关闭

软件测试实验学习笔记系列5-单元覆盖测试

发表于:2013-8-08 11:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiajian2010    来源:51Testing软件测试网采编

  3. links文件

  首先从eclemma官方站点下载最新的eclemmaEclipse插件包:http://sourceforge.net/projects/eclemma/files/?source=navbar

  在eclipse安装的目录下新建一个links文件夹,将相应的插件(例如eclemma-2.2.0)包拷贝到links文件夹下,并在links下新建一个eclemma.link空白的文本,在起中写入:path=/usr/lib/eclipse/links/eclemma-2.2.0 。注意path=xxx是eclemma在系统中的绝对路径, 由于我使用的Linux系统,在windows下可能是D:\xxx\eclipse\links\eclemma-2.2.0。

  重新启动一下eclipse就可以看到eclemma被安装上的标志,最左边的就是Eclemma的图标。

  备注: 上面的步骤在windows上已经算是安装完成了,但是在Ubuntu下好像不太行,至少我自己的实践表明是这样的,Ubuntu下还要在加上两步:

  进入eclemma-2.2.0文件夹中,在其中建立一个eclipse文件夹并将eclemma目录下其他的文件移到 eclipse目录下

  进入eclipse目录,在其中建立一个空的.eclipseextension的隐藏文件(注意"."不可少),并为这个文件加上执行权限。具体的命令如下:

cd /usr/lib/eclipse/links/eclemma-2.2.0/
sudo mkdir eclipse
sudo mv * eclipse/
cd eclipse/
vi .eclipseextension
chmod +x .eclipseextension

  注意命令中是否需要使用sudo提升权限视情况而定, 如果不是类似 /usr/lib这样的只有root权限才可以操作的目录的话,就不需要使用sudo。

  2.2.3 EclEmma的使用

  关于Eclemma的使用,网上一堆,不再赘述,推荐一篇文章:

  使用Eclemma进行覆盖测试:http://www.ibm.com/developerworks/cn/java/j-lo-eclemma/

  2.3C++的覆盖测试工具gcov

  gcov是GNU/GCC的工具组件,可以C/C++代码覆盖率的测试工具,使用便捷,不要配置,不是可视界面,只支持CLI命令行界面.如果要使用可视界面,使用Ggcov。

  2.3.1gcov环境

  gcov是gcc的内部工作组件。利用gcc内部的工具进行代码插桩。

  2.3.2gcov测试功能及使用流程

  grov的基本功能:可以查看测试时代码执行的覆盖率信息,支持函数覆盖,语句覆盖和分支覆盖等覆盖测试内容,帮助我们分析测试程序中的缺陷。使用该工具还可以查看程序在某个分析执行的频率,进而分析程序的性能。

  Gcc的覆盖测试工具gcov,gcov必须和gcc编译器联合使用(需要在程序中插桩,参考百度百科程序插桩的解释)。使用步骤:

  在编译时加上”-ftest-coverage-fprofile-arcs”,a.out(设置了-o选项就是输出的文件名)和.gcda文件;

  执行./a.out时,根据源程序的语句,条件,路径,边界等因素,以及设计好的输入测试用例数据 ,执行的信息保存到.gcno和.gcda文件中-->gcov-b xxx.c-->xxx.c.gcov(里面显示了每条语句执行的次数,没有执行的语法则以“####”标注)

  注意:使用gcov时,每次重新编译,统计数据都会清空,所以项目测试必须在确定的版本上进行。

  gcov的其他的选项命令可以查看gcov的在线文档(man gcov)

/*Program: testgcov.c -- interpert the workflow of gcov */
 #include<stdio.h>
int main(){
 printf("Hello,World\n");
}

42/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号