期刊库

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

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

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

 

  摘 要: 覆盖率测试是检验软件测试完整性、充分性的重要方式,这里介绍了覆盖率测试基础理论、覆盖率的测试类型、覆盖率测试工作流程、比较了覆盖率测试工具Bullseye Coverage、LDRA TestBed。并通过LDRA Testbed测试工具对被测软件程序插装,分析插装程序输出的结果得到语句覆盖率、分支覆盖率等数据,以达到对软件问题的查找和对测试充分性、全面性的验证。同时给出了Turbo C开发环境下DOS操作系统的嵌入式软件,利用LDRA Testbed进行覆盖率分析和通过查看未覆盖的代码定位软件问题、测试用例覆盖情况的详细步骤。

  关键词: 嵌入式软件; 覆盖率测试; LDRA Testbed; 测试方法

  中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)18?0067?03

  随着嵌入式设备在越来越多的领域中得到使用,与之相依附的嵌入式软件也得到了快速的发展。面对日益复杂的嵌入式软件,如何进行快速、全面、有效地测试已经成为当前测试工作的焦点。嵌入式软件通常与硬件联系紧密,常规的测试方法和技术难以对软件进行全面测试。因此,必须采用基于对软件程序进行插装的覆盖率测试技术,实现对嵌入式软件的测试,以达到降低测试难度,提高测试效率。

  1 覆盖率测试

  1.1 覆盖率测试概念

  覆盖率测试(也称逻辑测试)是度量测试完整性和查找软件问题的必要手段,是测试有效性的度量。

  覆盖率测试的目的是确保软件所有的程序至少被执行一次,尽可能全的覆盖软件程序的各个语句及其分支结构,所以设计测试用例要尽可能多地覆盖软件程序的内部逻辑结构,以便发现软件中的错误和问题。覆盖率测试的类型如下:语句覆盖率,被测软件程序中每行语句至少执行一次,语句覆盖率=至少被执行一次的语句数量/可执行的语句总数;判定覆盖率,被测软件程序中每个判定表达式至少获得一次“true”值和“false”值,以确保程序的每一个分支至少都通过一次,判定覆盖率=判定结果被评价的次数/判定结果的总数; 条件覆盖率,确保判定表达式中每个条件的各种可能的值至少出现一次,条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数;判定/条件覆盖率,确保判定表达式的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次,判定/条件覆盖率=条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数);路径覆盖率,测试用例覆盖被测程序中所有可能的路径,路径覆盖率=至少被执行到一次的路径数/总的路径数。

  1.2 覆盖率测试方法

  覆盖率测试通过对被测软件程序进行插装,并对插装后的被测软件程序编译生成可执行程序。然后在软件运行的实际环境中运行该可执行程序,同时执行功能、性能、接口、人机交互界面、强度、安全性、边界、恢复性测试等测试用例和测试数据。如果覆盖率没有到软件规定要求,分析原因后,必要时补充软件的功能、性能、接口、人机交互界面等测试类型的测试用例,保证覆盖率测试指标满足软件要求。覆盖率测试的工作流程如图1所示。覆盖率测试的关键是对软件程序进行插装,插装是在保证软件程序逻辑完整的基础上,插入一些探针,通过分析探针执行抛出的特征数据,达到对软件覆盖情况的测试。

  1.3 覆盖率测试工具

  由于当前潜入式软件开发语言多为C/C++,而针对C/C++做覆盖率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系统和Boland C++,Gun C++,Inter C++等开发环境,提供的覆盖率是分支覆盖率而不是一般的覆盖率。

  

  图1 覆盖率测试工作流程

  LDRA TestBed是LDRA公司研发的一款成熟的软件测试商用工具,包括以下多个功能:按照编码规则对代码评审;分析代码的复杂度、密度和可测试性,达到对软件质量的评审;分析接口,变量使用,控制流,识别隐藏的错误变量;对软件代码进行单元测试;对软件代码进行插装,并分析软件的语句、分支等覆盖率;对测试过程中的用例、文档等进行管理。

  LDRA Testbed提供了BitMap插桩技术来解决覆盖率测试。BitMap是一种位图技术,插装后的软件在实际环境运行时将探针的特征值信息存放到一个固定大小的数组中,当需要对代码覆盖率进行分析时,通过Testbed提供的get_history命令得到历史文件,再将该内容提供给Testbed进行覆盖率分析。

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


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

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