当前位置:
文档之家› Testbed在嵌入式软件单元测试中的应用
Testbed在嵌入式软件单元测试中的应用
(5)错误处理路径测试 。一般软件错误处理路径 测试应考 虑 下 面 几 种 可 能 的错 误 : 对 错 误 的描 述 不 易 理 解 、指 出 的 错误 并不是所 遇到 的错误 、出错时还没有进 行出错处理就 先进行 系统干预 、错误边 界条件 的处理 不正确 、描述错误 的信 息不 正确从而不足以确定 出错 的原 因等。(6)边界测试。 边界测试是检测软件在其输入 /输 出域 、过程参数 、状 态转 换 、功能界 限等具有一定 范围的边界或端点 条件下 的运行 情况 ,考核 软件的功能 或性能在其边界 条件下或边界 的邻 近 区域 内是否依然满 足设计要求 。按照 上去要求进行单元 测试 时,为 达到要求 的覆盖条件 ,还需采取 一定 的技术手 段对测试覆 盖率进行记 录和分析 ,确保 达到相应 的覆盖率 指标 。采 用 Wlmn单元 级测试工 具 ,能 自动产 生软件测试 驱动 、桩模块 ,提供友好 的输入输 出人机交 互和覆盖率统 计功能 ,能有效提高单元测试 的测试效率。
单元测试重点考虑的测试类型有 : (1)接 El测试 。接 口测 试主要检 查实参 与形参的数 目是否相等 、实参与形参 的属性是 否匹配 、实参 与形参 的单 位是 否一致 、传 到被调 用模 块 的实参 的属性是 否与形参 的属性匹配 、是 否把常量 当作 变量传递等 内容。 (2)功能测试 。功能测试 主要是对 照软件单元 的设计说明 ,验证软件是否完成了所需的功 能。 (3)重要执行路径测试 。应设计测试用例 以发现错误 的计 算 、不正确 的 比较和不正 常的控制 流向等错误 。在计算 中 比较 常见 的错误是:误解 或错误处理算术运算的优先次序 、 混 用不 同类 的操作 、计算 精度不够 等。另外在控 制软件执 行 流程 的 比较 操作 中比较常见 的错 误有 :不 同数 据类型 的 比较 、不正确 的逻辑操作符 或不正确 的优先 次序 、因精度 不够 使本应相等的数不相等 (如浮点数 )等 。 (4)软件单 元 的局部数据 结构测试 。软件单元 的局 部数据结 构是一个 主要 的错误来 源 ,应设计测 试用例来发 现不正确 的或不一 致 的数据说明 、初 始化有错或没有赋初值 、不正确的变量名 、 不一致 的数据类型 、上溢 /下溢或引用错误等类 型的错误 。
(下转 第 73页 )
影 响分析 出,无 机钙对水煤 浆的影 响没 有钙剂 的影 响低很 多 。因为分子量 小 ,不容 易和水融合 的物质是做 固硫 剂 的 材料 。唐海香等对 CaCO 、CaO、Ca(OH):三种钙基 固硫 剂进 行 了固硫 实验对 比,研究 发现 ,三种 钙基 固硫剂 固硫 效 率 的次 序 为 CaO<Ca(OH),>CaCO 。作 为 钙 的同种 族 元 素钡 也具 有 固硫 作用 ,陈 占文 等对 BaCO CaCO 两 种 固 硫剂 进行 了 周硫 实验 ,发 现 BaCO,、与 CaCO 都能起 到 固 硫 作 用 ,BaCO 固硫 效果 要 优 于 CaCO ,但 考虑 到 BaCO 的价格 昂贵 ,不适 用大量 工业 应用 ,CaCO 却原料 易得 , 性 价 比高 .NaOH 高温 分解生 成 的 NaO 能 与燃烧 产物 SO 反应 ,但其 固硫产物分解 温度低 ,周硫 效果差 霍永春等 研究 Ca(OH),与 NaOH的对 比阎硫实验时 认为 ,NaOH在 高温下 分解 为 NaO ,NaO 在燃 烧 中变成 了气 态 ,能 够跟 烟气 飘走 ,这 时候进行管 道冷却 ,其中的一部分硫 就能够 从 烟气 中脱 离 ,粘附在冷却 的管壁 上,这就很容易堵塞管壁 。 :其固硫 产物分解 温度 低 、固硫效果差 等 因素都导致 NaOH 不宜单独作 为 同硫剂 使用 。但是 NaOH却可 与CaCO 同时 使用 ,作为助剂 ,NaOH可提高 CaCO 的固硫效果 。 2.3 固硫 助 剂 研 究现 状
摘要 :文章针 对嵌入 式软件单元测试 ,开展 了一定的工程 实践 ,明确 了单元测试的要 求及 重点 ,介 绍 了测试 结合
测试 工具Testbed/Tbrun的方法 ,有利 于提 高单元测试的有效性和减 少单元测试的时间。
关键 词 :Testbed/Tbrun;软件单元测试 ;嵌入式软件
中 图分 类 号 :TP311
2 Testbed在 单元测试 中的应用
使用 Testbed/TBrun的基本方法是 :设计测试 用例 ;在 Testbed/TBrun中加载被测单元文件 ,通过 Testbed/TBrun对 被测软件进 行源程序 自动插装 ;根据测试用 例设定输入 和 预期 的输 出 ,执行插装 好的源程序单元 ;分 析输入数据 、 预期输 出和实 际输 出 ;得到被测软件在 当前 的测试用例执 行过程 中代码 的覆 盖率 。需要注意 的是 ,每执行一个测试 用例就需 要重新编译 并执行 。Testbed/TBrun的覆盖率统计 只具有 累加 的功能 ,因此 不能查询每一测试 用例执行后 的 覆盖率信 息。在执行完 所有的测试用例 后会 生成一个 总的 覆盖率 文件 ,TestbedfI'Brun通过对覆盖率 文件的分析得 出 软件单元 相应语句 的覆 盖情况 ,根据这 些覆盖情况可 以较 快确定冗余 的测试数据 并增补遗漏 的测 试数 据 ,从而指导 新 的测试 用例设 计 。在实 际应用 Testbed单元测试 时 ,需 注意 以下三个方面 : (1)数组和指针类型的变量的输入 。 数组可以通过在 Testbed/TBrun插装后 的源代码 中插人数组 的初 始化语句对数 组赋值或者在 Testbed]TBmn环境中对数
文献 标 识 码 :A
文章 编 号 :101")9-2374(2013)18—0027—02
嵌入 式软件作 为嵌入式 系统 的重要 组成部分 ,嵌 入式 软件 质量 问题 可能会带来设 备的损坏 和人员 的伤 亡 ,因而 用户 对其质量有 较高 的要求 。软件测试是 对软件质量 检验 的一个非常重 要的手段 。而软件测试 中动态测试 最基础 的 测试 就是单元 测试 。如何 开展单元测试 以及如何 提高单元 测试 的效率是一个值得研究 的问题 。
2013年第 18期 (总 第 261期 )
技 术 应 用
l
丽蕊
中l 高靳技术金I业
} {{
j “ E
“ r《 pபைடு நூலகம் {§£s
NO.18.2013 (CumulativetyNO.261)
Testbed在嵌入 式软件单元测试 中的应用
李 博
(江南机 电设计研 究所 ,贵 州 贵 阳 550009)
1 软件 单元测试 的要求及重 点
软件单元测试 是对软件 基本组成单 元进行测 试 ,测试 软件 单元是否 正确地实 现规定 的功 能 ,是否满足 软件性能 和接 口要求 。并 验证程序 与详细设计说 明的一致 性。 因此 在单元测试 时 ,需要模拟被测单元与其他模块之间 的交互 , 开发 驱动模块 和桩模块 两种辅助模块 ,构建一个 可执行 的 环境 ,驱动模块 用于模 拟被测单元 的上层模块 ,测试执行 时 由驱动模块 调用被测单 元使其运行 ;桩模块用 于模拟被 测单元在执行过程 中所调用 的模块 。