嵌入式软件覆盖率测试的研究与应用(2)
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: 913775405(普刊)
蒋老师联系QQ: 867306987(核心)
刘老师联系QQ: 271374912(核心)
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊