网站地图 原创论文网,覆盖经济,法律,医学,建筑,艺术等800余专业,提供60万篇论文资料免费参考
主要服务:论文发表、论文修改服务,覆盖专业有:经济、法律、体育、建筑、土木、管理、英语、艺术、计算机、生物、通讯、社会、文学、农业、企业

嵌入式软件测试方法与技术研究

来源:原创论文网 添加时间:2019-11-08

  软件测试论文之第八篇

  摘要随着嵌入式软件被广泛应用, 有效的对嵌入式软件进行测试是必要的, 在此过程中要重视采取有效的技术措施, 以确保嵌入式软件使用安全, 从而也进一步提高嵌入式软件开发质量。本文结合有效的工作实践, 科学的总结了几点测试技术, 希望能进一步提高嵌入式软件测试水平。

  关键词:软件测试,嵌入式软件,分析

软件测试论文

  1 引言

  在软件测试过程中, 必然要结合有效的测试方法与技术, 通过科学的对软件进行测试, 不仅提高了软件开发效率, 同时也保证了软件应用价值, 通过进一步分析, 结合相关技术措施的研究, 希望能够进一步提高嵌入式软件测试能力, 从而为嵌入式软件开发提供有效技术保证。

  2 插桩技术的应用

  一般地, 从覆盖分析的原理来看, 覆盖分析工具要对被测程序进行插桩。在对非嵌入式软件测试来说, 由插桩代码引起的问题可以忽略不计。但是由于嵌入式软件的系统与硬件密切相关、I/O通道少、实时性强等特点, 对于嵌入式软件来说这却是致命的问题, 因为大量插桩代码会破坏嵌入式软件程序的实时性, 导致实时性指标下降, 甚至可能出现软件不能正常运行的问题。

  插桩技术的原理是:首先对被测软件程序代码进行分析, 在被测软件源程序的合适位置插入插桩语句函数, 插桩语句函数包括语句、条件、判定等需要覆盖的目标;然后下载新的插桩文件到目标板上运行, 运行测试用例, 利用工具记录测试数据信息, 在宿主机上结合程序控制流图、调用图、源代码、判定节点条件真值表进行嵌入式软件覆盖测试结果分析;最后测评人员根据分析统计结果判断覆盖测试执行情况, 如果不能满足测试要求, 存在没有测试的代码路径, 再根据程序代码重新设计测试用例, 如此循环, 最终达到提高代码程序的覆盖率要求。

  3 覆盖率分析与单元/集成测试

  覆盖率测试 (也叫逻辑测试) 是度量测试完整性和查找软件问题的必要手段, 是测试有效性的度量。覆盖率测试的目的是确保软件所有的程序至少被执行一次, 尽可能全的覆盖软件程序的各个语句及其分支结构, 以便发现软件中的错误和问题。

  工具举例:RapiCover是一款基于目标硬件的嵌入式软件的测试覆盖率分析工具, 针对所使用的测试用例给出对应的现场测试覆盖率信息, 其插桩点的开销极小, 并能针对目标板的实际情况提供灵活的支持方式。它的特点包括:支持C、C++、Ada编程语言;极小的时间开销;语句覆盖, 变量定义、条件判断或循环等。

  嵌入式软件的单元测试大多是在宿主机环境下进行的, 只有少数情况下需要在目标机环境下进行。单元测试主要是进行白盒测试, 应尽可能地测试每一个函数, 每一个条件分支、每一个程序语句, 提高代码的测试覆盖率。在单元测试完成后, 接下来需要进行集成测试。集成测试又称为组装测试, 是将各模块合成一个组件, 并测试它们间的接口。

  工具举例:Tessy软件是一款专门针对嵌入式软件动态测试的工具。它可以对C/C++代码进行单元测试和集成测试。

  4 全数字模拟测试与交叉测试

  这一测试方法是指通过数学平台的手段, 把嵌入式系统单独割裂开来成为一个独立体, 然后开发CPU指令、I/O、以及时钟等模拟器在开发主机上进行测试。全数字模拟测试步骤简单, 对软件的功能测试很适合, 是一种常见的一般软件的测试手段。但是这一测试手段也有其劣势, 嵌入式软件是用多种不一样的语言所编写出来的, 因此也就需要多种的仿真程序来进行工作, 所以实时性与准确性差的测试手段不能完全反映出嵌入式软件的具体状况, 如果并发时间需要一些同步关系时, 维持协调、准确的系统时钟、整理好时序关系非常难。所以, 全数字模拟不能成为嵌入式系统软件测试的主要措施, 否则所付出的代价过大。

  在高级语言出现以来, 嵌入式系统所开发与运行的环境并不是完全相同的, 开发的环境被定义为主机平台, 运行环境则被定义为目标平台, 对应的测试是Host Target测试。在进行测试的过程中, 可以很好的利用高级语言可移植性的特点, 把工作系统中和目标环境没有关联的工作放在P/C上去进行, 在硬件环境没有做完整或者调试工具缺乏的情况下就可以进行, 这种情况下就能使用一般的软件测试手段。在系统中和硬件联系密切的步骤在Target上进行, 所涉及到的测试工具要支持目标环境。最后一步在目标环境中来测试检验。交叉测试这一手段比较适合高级语言, 并且测试成本不高, 使用简单, 但是也由于受到调试环境的限制, 进行测试检验时会占据一定程度上的资源。

  5 模块化测试法的应用

  在满足软件用户需求的前提条件下, 将较大规模、结构复杂的嵌入式软件划分成一个个小的功能模块组合, 进行小功能模块的设计开发, 将嵌入式软件的开发进行分工合作。嵌入式软件系统模块化设计的主要设计思想如下所示:通过采用全局变量的形式实现功能模块之间的数据传递, 软件系统各功能模块之间的逻辑结构是相互独立的。嵌入式软件的模块化设计极大的方便了嵌入式软件测试的纠错处理工作。嵌入式软件系统的模块化测试主要包括以下几部分内容:1) 系统平台测试。系统平台测试主要包括硬件电路、操作系统、底层驱动程序等部分的测试。2) 模块测试。系统在进行模块测试时, 将较大规模、结构复杂的嵌入式软件划分成一个个小的功能模块, 采用模块嵌套的结构形式进行软件测试, 简化了模块间的数据链路, 使模块内部的结构更为清晰明了。3) 集成测试。通过集成测试的特殊处理将复杂的链路数据传递方式转化成较为简单的单链路数据传递形式, 在软件模块中采用较为简单的单链路数据传递形式使错误的定位更为简单, 有助于检测各功能模块间数据传递和系统逻辑结构中存在的错误。4) 系统测试。嵌入式软件系统投入使用后, 采用黑盒测试对嵌入式软件系统进行动态测试, 以此来满足用户的功能需求。

  结束语

  总之, 基于以上对嵌入式软件测试方法与技术研究, 明确了具体的测试方法, 作为相关工作人员, 在有效的进行测试过程, 要结合具体实际, 积极采取更加快速、有效的测试方法, 以提高嵌入式软件测试能力, 进一步为嵌入式软件测试工作开展提供有效的技术保证, 以此确保嵌入式软件产品的质量。

  参考文献
  [1]王新宇.嵌入式软件的质量管理研究[J].决策探索 (中) , 2018 (08) :74-75.
  [2]黄涛, 孙罡, 同向楠.嵌入式软件测试方法与技术[J].电子技术与软件工程, 2018 (12) :212.
  [3]葛德明.实时嵌入式软件的测试技术[J].电子测试, 2018 (10) :88-89.

点击查看>>软件测试论文(专业范文8篇)其他文章
重要提示:转载本站信息须注明来源:原创论文网,具体权责及声明请参阅网站声明。
阅读提示:请自行判断信息的真实性及观点的正误,本站概不负责。