论文研究-嵌入式软件覆盖测试的纯软件模式实现 .pdf

所需积分/C币:5 2019-08-27 14:47:25 239KB .PDF
收藏 收藏
举报

嵌入式软件覆盖测试的纯软件模式实现,肖丹,李允,覆盖测试是验证软件功能结构正确性、查找问题的非常重要的方法,这需要借助一定的工具才能取得较好的效果,满足软件在质量和时间
山国酿技论文在线 而且作为覆盖测试,并不要求程序的运行坼境达到%的真实,只要达到覆盖率 %的目的即可,因此灵活性高、准确性高、成本低廉的纯软件覆盖测试工具具有无可比拟的 优势,并已经成为覆盖测试工具的首选实现方式。 软硬结合 软硬结合的测试工具是综合纯硬件和纯软件两种实现方式之后的一种方式。技术难度比 较高,市面上最具有代表性的软硬结合覆盖测试工具就是 的最大缺点是对具体的硬件有很强的依赖,灵活性差,可移植性差。对不同 的目标系统平台必须定制不同的信号捕获探头以及相关的数据采集和预处理机制。在许多极 端的情况下(例如军用飞控计算机,在岀丿ˆ时即辶经被严格封装,无法安装信号捕获探头) 根本无法进行测试。而且随着技术的飞速发展,计算机硬件日新月异,为每一种新面世的处 理器都定制一款信号捕获探头将耗费巨大的人力物力。由此也导致了这种方式下的成本据髙 不下 对比评估 纯硬件方式由于其准确性差,灵活性和可移植性差己经逐渐被淘汯 软硬结合方式虽然精度髙,处理能力强,对被测程序运行的影响小,测试环境接近真实 环境等优点,但是对只体的硬件有很强的依赖,灵活性差,可移植性差,实现难度大,随着 嵌入式硬件平合的不断升级,其硬件捕获探头也需要不断升级,成木较高。 而纯软件方式虽然对被测程序的运行效夲有‘定的影响,测试环境不如软硬结合方式那 样真实,但是测试结果准确,灵活性和可移植性髙,戊本低廉,几乎适用于所有的嵌入式开 发平台。随着近年技术的不断进步,纯软件方式在插桩方式、桩点规模和数量、代理模式以 及通信通道等都冇了很大进步,对被测程序的影响已经大大降低,测试环境也更加真实 况且作为覆盖测试工具,并不象性能分析工具那样要求程序的运行环境达到%的真 实,只要达到对被测程序%的覆盖率的日的即可。因此纯软件的实现方式日前已经成为 覆盖测试工只的首选实现方式。有许多成熟的技术路线和实现方案可供参考和研究 因此,本文从纯软件方式出发,实现了 和嵌入式软件开发平台 枃建的软件矍盖测试环境。 纯软件模式的嵌入式软件覆盖测试环境 国内外嵌入式软件的测试工具和开发工具有很多,本文以英国 公司的 测 试工具结合国内知名的嵌入式基础软件平台 为例说明纯软件模式的嵌入式软 件覆盖测试环境(以下简称测试环境)。目标机采用华邦 开发评板 运行嵌入式实时操作系统 。测试环境如图所示。 LDRA Testbed Lambdapro W9P710 源代码 插桩 编译、链接器 内存 揆针函数 覆盖率 结果分析 K-E TC KH TS 图测试环境 山国酿技论文在线 图中, 分别代表目标杋控制模块、目标机服竻器模块和目标札代理模块, 这些模块均为嵌入式集成开发环境 的组成部分。主机和目标机的通信由和 协作实现,可以采用串口、网络、口等多种通信方式。插桩程序执行结束后,覆盖 率信息在内存中以整型数组的形式保存,在的控制下通过和取出,并以历史信 息文件(测试τ具专用格式的覆盖率数据)的格式提供给测试工具分析。 在整个测试环境中, 对测试工具 屏蔽了底层通信的纽节。 如图所小,测试工只只需要向 提供插桩后的源代码并分析 提供 的历史信息文件即可完成整个覆盖测试过程。对测试工只而言并不需要专用使件的参与 源代码 插装代码 被测试程序 探针函数 LDRA 目标机 I estbed Lambdapro W90P710 10 (6 覆盖率 历史信息 覆盖率数 文件 据 图测试环境数据掉制 纯软件模式测试的实现 在纯软件模式的测试环境中,测试L具不需要硬件的「预,其输入为被测源代码和记录 程序执行过程的历史信息文件。输出为插桩后的源代码和覆盖率信息、。因而在结合嵌入式开 发工具针对某一和覆盖测试工具实现纯软件模式的覆盖测试时,主要考虑以下两个问题: 探针函数的设计 历史信息文件格式的分析和控制。 文将具体就如图所示的测试环境讨论以上两个问题的解决方法。 探针函数 程序插桩( )概念是由 教授首次提出,在被测程序在 保持原有逻辑完整性的基础上,插入探测伩,以便获取程序的控制沇和数据沇信息,并可 得到测试的覆盖率 所谓探测仪就是本文中所讲的探针函数,是在对被测程序进行静态分析的基础上, 在某些位置插入的实现具体功能的函数。探针函数的形式可以有很多种,根据插桩的目的各 有不同。本文论述的探针函数旨在记录代码被测程序的执行过程,从而获得程序的覆盖 率 探针函数的植入 探针函数的植入过程即程序插桩的过程,此过程面临两个问题:插桩位置和插桩策晈, 即在哪里插?和如何插?的问题。这两个问题都需要在对源程序进行了较为完整的词法 分析和语法分析的基础上解决。可以手工插桩或者使用测试匚具自动插桩。由于插桩过程较 为复杂且不在本文的讨论范围内,所以在图所示的测试环境中,笔者采用了 工具辅助插桩。 山国酿技论文在线 臼动插柱工具的使用在纯软件模式的覆盖测试环境中仅仅是提供探针插入的桩,而桩 体即探针函数的具体内容则由用户结合具体的嵌入式开发环境编写。所以在配置 的插桩方式时,笔者选择了探针函数形式较为简单的主机方式,以便于分析其历 史信息文件的格式。在⊥机方式下,插桩后的代码在地主机运行,探针函数的形式如下 FILENAMEZZqqzz(value!) 被测文件文件名 探针输出值(整型变量) 图探针函数格式 探针函数调用 函数实现其功能,因此可以通过宏替换的方式把 替换为用 户自定义探针凼数名,从而植入探针函数并接受原始探针的参数信息。替换方式如卜 图宏替换 探针函数的工作原理 原始探针函数的功能为以特定的柊式输岀佰到历史信息文件中,通过宏替换方式 植入的用户自定义探针函数会把历史信息数据与入到内存中的指定整型数组中,从而避免了 文件操作,一方面,加速了探针函数的执行效率;另一方面,解决了部分嵌入式操作系统无 文件系统的问题。探针函数的实现代码如下: 山国酗技论文在线 图探针函数 历史信息文件的内容包括两部分:探针所在源文件和探针值。分别存储在 和 历史信息文件的回收 对源文件插桩的方式决定了历史信息文件的格式,在回收 目标机内存中存储 的覆盖率数据时需要使用其指定历史信息文件的格式来保存。在图所示测试环境中,笔者 通过 脚本自动调用接口读取目标机指定内存中的数据并建立历史信息文件。 获取覆盖率报告 将历史信息文件放于 的分析目录下,利用 对历史信息文件进行 分析,从而得到覆盖率报告 结论 在嵌入式实时软件的覆盖测试中,以操作內存方式实现的探针函数完全可以满灶测试的 基本要求。这种纯软件的实垗模式极大的减低了测试的成本,通过大量的测试实战证明是可 行的。这种测试方式的缺点在于测试环境的搭建较为复朱,需要测试L具进行较烏程度的定 制。另外,整个测试过程可以通过编辑脚本程序实现自动化执行,从而提髙测试效率,满足 大规模测试的要求。 山国酗技论文在线 参考文献 (美) (著)黄柏素梅宏(译),软件工程实践者的硏究方法,北京:机械 工业出版社, 雷航李允,软件可靠性测试,电子科技大学计算机学院实时系统研究室年月 张宇旻,嵌入式覆盖测试工具 的设计与实现,电子科技大学硕士研究生毕业论文,年 月 基本概念,英国 公司, 年 熊光泽罗蕾等, 嵌入式实时操作系统原理与应用设计,电子科技大学计算机学院实 时系统研究室年 月 用户手册,北京科银京成技术有限公司,年月 王墣等,基于覆盖的软件测试技术在实时嵌入式软件中的应用究计算机工程与设计 参考手册,北京科银京成技术有限公司,年月 作者简介:肖丹,男,年生,硕士研究生,主要研究方冋是嵌入式操作系统、嵌入式 系统应用和普适计算等。

...展开详情
试读 7P 论文研究-嵌入式软件覆盖测试的纯软件模式实现 .pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    论文研究-嵌入式软件覆盖测试的纯软件模式实现 .pdf 5积分/C币 立即下载
    1/7
    论文研究-嵌入式软件覆盖测试的纯软件模式实现 .pdf第1页
    论文研究-嵌入式软件覆盖测试的纯软件模式实现 .pdf第2页
    论文研究-嵌入式软件覆盖测试的纯软件模式实现 .pdf第3页

    试读已结束,剩余4页未读...

    5积分/C币 立即下载 >