- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单元测试 单元测试入门 测试方法 被测软件可以按以下几种组合方式来进行测试. 全部程序 (系统测试). 包含许多函数的文件 (模块测试). 单一函数 (单元测试). 单元测试 什么是单元测试? 隔离测试单个函数. 单元测试 什么是单元测试? 单一函数的隔离测试. 如果被测函数调用了其他函数,则需要对每个被调函数生成用户可控的桩函数到驱动文件里来保证单元测试可以运行起来 . 如对下图中的被测函数进行单元测试则需要生成3个对应的桩函数(stub函数). 模块测试 什么是模块测试? 超过一个函数的集合测试. 模块和集成测试 模块和集成测试的执行是被测函数调用能取得的实际的函数代码而不是调用桩函数,相当于子部件的测试. 在下图中假设最底层的三个函数还未设计或者未纳入分析范围,在集成测试方式下测试最顶层函数时则会调用第二层的两个函数的实际实现体,而对于最底层的三个函数则必须生成各自的桩函数。 单元 / 模块测试 TBrun 能处理这两种模式. TBrun 使用“单元测试”这个术语, 但在很多情况下, 是可以和“模块测试”互换的. 单元测试 我们如何在这种非常规环境下完成顺利测试? 在驱动程序中自动插入测试数据并尽量保证代码能被相应环境编译.(用户的I/O窗口数据输入可能导致编译不过,原因是工具对输入只是做简单的拷贝到驱动中,将语法语义检查留给实际的编译环境) 驱动程序对每个单元测试用例产生一个 “主程序” . 按传统做法,驱动程序必须由开发人员创建并且维护. TBrun将这个过程实现了有效的自动化. 单元测试 除了驱动, 我们还需要: 产生测试数据,由人工输入或按某种功能方式由工具自动生成. 执行带测试数据的驱动单元来产生可以检查或者与期望值比较的实际输出. 追踪代码覆盖率的变化来评价测试用例的质量及把握与预期覆盖率指标的接近程度. 单元测试 基本函数: void proc(int i ) { glob = i; } 单元测试 带驱动的函数: int glob,var; var =11; int main(void) { proc( var); } void proc(int i ) { glob = i; } 测试结果 测试行为的结果是: 全面的已经见效的测试数据. 对一系列期望输出的匹配. 一系列表现测试程度的度量,涉及已测函数、未测函数以及已经测试覆盖的语句、分支等. 一个自动的回归测试机制. 单元测试 – 优点 单元测试的优点是什么? 在生命周期的早期就可以开始测试. 在早期可以进行覆盖率的度量. 规格说明书检查能被 “固定”. 确保代码的 “更新”. 在系统测试级别的问题可追踪性. 可重复性,来源于自动回归机制的支持。 单元测试 这里有大量关于单元测试的问题 / 论点 / 挑战. 代码变更:工具自动侦测变更并评价其影响,提供友好界面协助对受影响部分进行处理 可灵活配置桩函数及其结构形式 一段时间的测试自动化 生成详细、可读性强的测试文档 需求的可追溯性 单元测试 维护软件时,许多函数及其接口都会被改变. 这意味着原则上所有的驱动、测试数据和期望结果都必须也改变,这会带来开支的增加. Tbrun通过自动生成驱动、辅助代码变更来在这个方面给予帮助. TBrun 步骤 Tbrun利用了代码评审和设计评审的结果自动对系统的每一个单元产生驱动 ( 测试驱动). 用户被提示输入数据并且被要求确定输出是否正确. Tbrun保存和维护所有的信息,以备在任何时候重新生成相同的驱动进行回归. 单元测试特点 数据流信息 静态数据流分析提供了详细的信息: 单元接口 – 参数, 全局变量 (输入和输出), 返回值 变量类型和用法 函数调用 自动生成所有的这些信息会 用户不必指定关于源代码的任何信息 工具包的集成 工具包的集成 测试确认 LDRA测试确认工具监控测试的进程 宿主机/ 宿主机 或者 宿主机/目标机测试 宿主机/目标机使用与宿主机/ 宿主机测试相同的原理 针对不同的目标机环境,用户可以自己配置 连接到目标机需要用到物理链路传输数据例如:串口/以太网/JTAG 等. 适合不同目标环境的插装策略 工具包的集成 工具包的集成 工具包的集成 调用TBrun 创建序列 通过LDRA Testbed调用TBrun 选择一个源代码或者多文件的集 集方式下加入文件 切换到TBrun 创建序列 练习 使用.\Testbed\Examples\C_tbrun_examples目录下Ggrocers.c程序 选择文件,切换到TBrun,创建序列 Test Design Test Script Design Test Execution Test Result Analysis Reporting
文档评论(0)