期刊库

教育   经济   科技   财会   管理   
医学   法学   文史   工业   建筑   
农学   水利   计算机   更多>>
 首 页    论文大全   论文精品    学术答疑    论文检测    出书咨询    服务流程    诚信通道    关于我们 

嵌入式软件覆盖率测试的研究与应用(2)

人气指数: 发布时间:2014-09-15 14:31  来源:http://www.zgqkk.com  作者: 孙陇平
分享到:

 



  TestBed作为覆盖率测试工具,具有以下特性:

  (1) 能够与被测软件编译器相结合对源程序进行自动插装,被插装的程序即可以是平台软件也可以是嵌入式软件;

  (2) 根据插装软件输出的覆盖数据,能够快速、清晰的分析出软件总体、每个函数的语句覆盖率、分支覆盖率等;

  (3) 根据分析出的函数覆盖率数据,帮助测试人员快速定位未覆盖的软件程序,便于改进测试用例没计的缺陷,进而提高软件的覆盖率。

  2 基于LDRA TestBed的覆盖率测试应用

  2.1 被测软件概况

  被测软件是基于Turbo C开发环境的嵌入式软件,运行于微机板上TF存储卡的DOS系统,通过接收上位机的控制参数及获取外部导航设备的导航信息、传感器的传感器数据后,经数据处理后向外部设备发送控制命令,达到对外部设备的控制。

  

  图2 软件运行连接图

  2.2 覆盖率测试应用

  被测软件通过以下步骤实现覆盖率测试:

  (1) 在Testbed中新建一个Coverage Test的工程,并将被测软件的程序文件test.c(不需要程序的.h文件)加入工程中。

  (2) 选中Configure菜单下的Instrumentation Option选项,去掉:□Instrumentation for MC/DC Coverage;选中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超过8个字符。然后在Analysis菜单点击Start Analysis进行插装,Testbed在和test.c同目录下产生inszt_test.c文件该文件为经过插装后的程序文件。

  (3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,将bitmaparr[qqqbranches/8+1]数据填入该数组;在main函数中添加覆盖数据输出到test.txt代码,如下所示:

  char str[sizeof(bitmaparr)];

  FILE *dfile=fopen("c:\\test.txt","wt");

  int j=sizeof(bitmaparr)/sizeof(int);

  for (int i=0;i  {

  sprintf(str,"%d\n",bitmaparr[i]);

  fprintf(dfile, str);

  }

  fclose(dfile);

  (4) 将inszt_test.c文件,删除前面的“inszt_”标识后,拷贝到TF卡中,替换未插装的test.c,启动Turbo C跟其他的源文件一起编译,产生可执行的目标文件test.exe;

  (5) 启动软件并执行功能、性能、接口、边界、性能、安全性、恢复性等测试类型,将软件输出的test.txt(文件中的数字内容为186个大于等于0,小于等于255的整型数字)文件修改为history.exh(分析后该文件会被删除,注意备份),使用Testbed进行分析,即可获得相应的程序或分支覆盖率。

  分析后找到test.dyn.htm文件就可以看到覆盖率分析数据如图3所示。

  (6) 如某一个函数覆盖率没有达到100%,需要进入函数具体分析界面,如图4所示。其中线框起来的是未执行到的部分,需要查找原因,如果是用例设计不够充分,需要添加设计测试用例,执行插装软件后再分析覆盖数据,直到覆盖率指标达到要求为止。

  3 结 语

  通过嵌入式软件覆盖率测试研究与应用,发现LDRA TestBed不仅能够快速地对软件程序进行插装、覆盖数据分析,而且根据覆盖率结果的函数覆盖情况,快速定位到未执行的程序。针对开发人员可以定位软件错误,针对测试人员,根据代码覆盖情况可以梳理、优化、减少冗余的测试用例,争取达到北大核心期刊对程序的全覆盖。覆盖率测试工具在嵌入式软件测试中广泛应用,能够大幅度提高覆盖水平,规避嵌入式软件难于测试的缺点,帮助测试人员大幅提高测试效率。

  参考文献

  [1] 范勇,兰景英,李绘卓.软件测试技术[M].西安:西安电子科技大学出版社,2009.

  [2] 郑人杰.软件工程[M].北京:清华大学出版社,1999.

  [3] 上海创景计算机系统有限公司.LDRA Testbed中文技术说明[EB/OL].[2007?11?04].http://wenku.baidu.com.

  [4] 朱红军.一种嵌入式软件覆盖和分析测试方法[J].航空计算技术,2009(5):65?67.

  [5] 流萤,王英,刘漫丹.嵌入式软件的覆盖测试[J].自动化仪表,2012(6):63?66.

  [6] 金维佳,施小敏.基于嵌入式软件的覆盖测试问题研究[J].信息技术,2011(4):117?120.

期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
  本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


  【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

 
QQ在线咨询
投稿辅导热线:
180-1501-6272
微信号咨询:
fabiaoba-com
咨询电话:18015016272 投稿邮箱:zgqkk365#126.com(#换成@)
本站郑重声明:文章只代表作者观点, 并不意味着本站认同。所载文章、数据仅供参考,使用前请核实,风险自负。
部分作品系转载,版权归原作者或相应的机构   若某篇作品侵犯您的权利,请来信告知.版权:周口博闻教育咨询有限公司 
Copyright © 2005-2023 . 期刊库 版权所有