嵌入式软件测试技术[基础篇]

上传人:mg****85 文档编号:42447112 上传时间:2018-06-02 格式:PDF 页数:51 大小:703.96KB
返回 下载 相关 举报
嵌入式软件测试技术[基础篇]_第1页
第1页 / 共51页
嵌入式软件测试技术[基础篇]_第2页
第2页 / 共51页
嵌入式软件测试技术[基础篇]_第3页
第3页 / 共51页
嵌入式软件测试技术[基础篇]_第4页
第4页 / 共51页
嵌入式软件测试技术[基础篇]_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《嵌入式软件测试技术[基础篇]》由会员分享,可在线阅读,更多相关《嵌入式软件测试技术[基础篇](51页珍藏版)》请在金锄头文库上搜索。

1、1嵌入式软件测试技术嵌入式软件测试技术(基础篇)(基础篇)皮永辉皮永辉2012年8月2内容提要?嵌入式软件测试基础嵌入式软件测试基础 ?所需预备知识所需预备知识 ?关于软件测试关于软件测试 ?嵌入式软件测试的特点嵌入式软件测试的特点 ?嵌入式系统与嵌入式软件嵌入式系统与嵌入式软件 ?嵌入式软件测试的特点嵌入式软件测试的特点 ?嵌入式软件测试的基本方法嵌入式软件测试的基本方法 ?交叉测试交叉测试 ?可用于交叉测试的调试方式可用于交叉测试的调试方式 ?基于需求的测试基于需求的测试 ?源代码分析源代码分析3嵌入式软件测试基础: 预备知识?本课程所需基础知识 ?C语言 ?C程序设计程序设计 ?开发环境

2、使用开发环境使用 ?嵌入式软件开发基础 ?嵌入式系统的组成及特点嵌入式系统的组成及特点 ?嵌入式软件的开发方式嵌入式软件的开发方式 ?嵌入式开发环境使用嵌入式开发环境使用 ?软件测试基础知识 ?软件测试基本概念软件测试基本概念 ?软件测试基本技术软件测试基本技术4嵌入式软件测试基础: 关于软件测试?回顾软件测试 ?软件测试基本概念 ?定义、原则、过程、分类、模型定义、原则、过程、分类、模型 ?测试用例、插装、打桩测试用例、插装、打桩 ?静态测试、动态测试静态测试、动态测试 ?白盒测试、黑盒测试白盒测试、黑盒测试 ?策略与管理策略与管理 ?通过软件测试,我们要解决什么问题? ?软件功能软件功能对

3、不对?对不对? ?代码质量代码质量高不高?高不高? ?测试过程测试过程得唔得?得唔得?5嵌入式软件测试基础: 关于软件测试?软件测试的三个基本问题 ?软件功能对不对? ?需求准确需求准确 ?功能正确、完整功能正确、完整 ?性能可靠性能可靠 ?代码质量高不高? ?规范(可维护、易理解)规范(可维护、易理解) ?少缺陷少缺陷 ?健壮(容错、结构化)健壮(容错、结构化) ?测试过程得唔得? ?有效有效 ?有利有利 ?有序有序6嵌入式软件测试基础: 关于软件测试?软件测试的基本策略 “两条腿走路” ?技术是基础技术是基础 ?静态测试静态测试?动态测试动态测试?管理是保障管理是保障 ?计划计划 ?策略策

4、略 ?资源配置资源配置 ?过程管理过程管理 ?缺陷追踪缺陷追踪代码质量代码质量 ?软件功能软件功能 ?测试过程测试过程 ?7嵌入式软件测试基础: 关于软件测试?软件测试的基本策略 现代软件工程的测试策略 ?测试贯穿于开发的全过程测试贯穿于开发的全过程 ?不形成专门的不形成专门的“测试阶段测试阶段”需求定义设计编码调试系统集成需求分析用例设计静态分析单元测试集成测试8嵌入式软件测试基础: 关于软件测试?软件测试的基本策略 测试从需求开始 ?需求定义是软件生命的开始需求定义是软件生命的开始 ?准确的需求是软件测试的前提准确的需求是软件测试的前提质量从代码抓起 ?软件质量的基础是软件质量的基础是“优

5、质优质”的代码的代码?如何获得高质量的代码如何获得高质量的代码 ?“预防”“预防” ?“治病”“治病” ?“强身”“强身”9嵌入式软件测试基础: 关于软件测试?软件测试的基本策略 先静后动先静态分析,再动态测试?多数缺陷源于编程语言使用不当多数缺陷源于编程语言使用不当 ?静态分析能有效地发现之静态分析能有效地发现之 ?静态分析能大大减轻后续测试的工作量,明显提升动态 测试的效果静态分析能大大减轻后续测试的工作量,明显提升动态 测试的效果 ?静态分析能及早地发现问题,改正问题静态分析能及早地发现问题,改正问题 ?静态分析实施容易,操作简单静态分析实施容易,操作简单 由小到大先单元测试,再集成测试

6、?单元测试完成了,集成测试才有意义单元测试完成了,集成测试才有意义10嵌入式软件测试基础: 关于软件测试?软件测试的基本策略 测试工具选择 ?工欲善其事,必先利其器工欲善其事,必先利其器 ?通常工具是必需的,但不是万能的。不要期望通常工具是必需的,但不是万能的。不要期望“一招 鲜,吃遍天一招 鲜,吃遍天” ?根据自己的需要和工具的特长进行选择根据自己的需要和工具的特长进行选择 ?明确自己要做什么?期望达到怎样的目标?明确自己要做什么?期望达到怎样的目标? ?测试工具的关键特性?测试工具的关键特性? ?其它因素其它因素 o 人员、资源、价格等人员、资源、价格等11?软件测试的基本策略 加强软件测

7、试的管理?测试过程管理测试过程管理 ?计划、进度计划、进度 ?测试文档管理测试文档管理 ?需求的可追溯需求的可追溯 ?节点监控节点监控 ?资源配置资源配置 ?缺陷追踪与管理缺陷追踪与管理 ?测试过程中,会有各式各样的错误或缺陷(bug/defect)出现。 需要建立有效的机制:报告、存储、分配、修复、追踪测试过程中,会有各式各样的错误或缺陷(bug/defect)出现。 需要建立有效的机制:报告、存储、分配、修复、追踪?避免混乱、丢失、重复避免混乱、丢失、重复 ?变更管理变更管理软件配置管理软件配置管理嵌入式软件测试基础: 关于软件测试12嵌入式软件测试基础: 嵌入式软件测试的特点?嵌入式系统

8、与嵌入式软件 ?什么是嵌入式系统 ?以应用为中心、以计算机技术为基础、适应特殊环境要求的 专用计算机系统以应用为中心、以计算机技术为基础、适应特殊环境要求的 专用计算机系统 ?嵌入式系统通常都是实时系统,即有一定时间约束的计算机 系统嵌入式系统通常都是实时系统,即有一定时间约束的计算机 系统 ?嵌入式系统的组成 ?嵌入式微处理器、外围硬件嵌入式微处理器、外围硬件 ?嵌入式操作系统、应用软件嵌入式操作系统、应用软件 ?什么是嵌入式软件 ?嵌入式系统或产品中的软件嵌入式系统或产品中的软件 ?“非嵌入式非嵌入式”软件:通用计算机软件软件:通用计算机软件嵌入式系统的典型特征: 硬件 软件 专用硬件 软

9、件 专用13?嵌入式系统与嵌入式软件 ?嵌入式软件的特点 ?大部分软件用高级语言(C、C+等)编写大部分软件用高级语言(C、C+等)编写 ?依赖于特定硬件环境,无统一的平台依赖于特定硬件环境,无统一的平台 ?与硬件密切相关,交互工作与硬件密切相关,交互工作 ?实时性实时性 o 实时约束实时约束 o 实时控制实时控制 ?交叉式开发交叉式开发 o 需要专门的环境及工具需要专门的环境及工具 o 目标软件与开发环境运行在不同的平台目标软件与开发环境运行在不同的平台 ?资源受限资源受限嵌入式软件测试基础: 嵌入式软件测试的特点14?嵌入式软件测试的难点 ?实时性实时性要求测试工具准确测试软件性能要求测试

10、工具准确测试软件性能 ?资源有限资源有限要求对被测软件不能附加太多代码冗余要求对被测软件不能附加太多代码冗余 ?软硬结合软硬结合软件与硬件紧密相关,硬件可能成为测试的瓶 颈软件与硬件紧密相关,硬件可能成为测试的瓶 颈 ?交叉开发交叉开发嵌入式软件与测试工具运行在不同的平台,载 入目标系统执行需要特定的硬件测试工具配套嵌入式软件与测试工具运行在不同的平台,载 入目标系统执行需要特定的硬件测试工具配套 ?多样性多样性没有统一的硬件平台,需要没有统一的硬件平台,需要“专款专用专款专用” ?实验测试环境与真实运行环境存在差异实验测试环境与真实运行环境存在差异 ?测试工具与目标系统的连接方式影响测试的可

11、靠性测试工具与目标系统的连接方式影响测试的可靠性 ?汇编语言难以测试汇编语言难以测试 ?成本较高成本较高嵌入式软件测试基础: 嵌入式软件测试的特点15?嵌入式软件测试的基本思路 ?软件测试发展至今已形成了较为完整的理论、技术和 策略,虽然它们大都针对计算机软件,但幸运的是其 基本原理和典型方法同样适用于嵌入式软件。软件测试发展至今已形成了较为完整的理论、技术和 策略,虽然它们大都针对计算机软件,但幸运的是其 基本原理和典型方法同样适用于嵌入式软件。?基于两种软件的共性基于两种软件的共性同为高级语言,我们首先利 用通用计算机软件的测试技术,即同为高级语言,我们首先利 用通用计算机软件的测试技术,

12、即“拿来主义拿来主义”?然后从嵌入式软件的特点出发,采取一些有针对性的 方法,比如然后从嵌入式软件的特点出发,采取一些有针对性的 方法,比如“交叉测试交叉测试”。嵌入式软件测试基础: 嵌入式软件测试的特点16?嵌入式软件测试的基本方法 ?动态测试方法动态测试方法 ?交叉测试交叉测试 ?基于需求的测试基于需求的测试 ?静态测试方法静态测试方法 ?源代码分析源代码分析 ?结构化测试结构化测试 ?系统测试方法系统测试方法 ?真实环境下系统测试真实环境下系统测试 ?全数字模拟测试全数字模拟测试 ?实时在线测试实时在线测试 ?故障注入测试故障注入测试嵌入式软件测试基础: 嵌入式软件测试的基本方法17?交

13、叉测试(Host/Target测试)?利用交叉开发环境的测试方法利用交叉开发环境的测试方法 ?测试工具需要支持目标环境测试工具需要支持目标环境 ?利用高级语言的特性,使用利用高级语言的特性,使用“常规的常规的”软件测试方法软件测试方法 ?测试是在测试是在“主机主机”和和“目标系统目标系统”中分别进行的:中分别进行的: ?与硬件无关的大部分测试在与硬件无关的大部分测试在“HostHost”上完成上完成 ?与硬件密切相关的小部分在与硬件密切相关的小部分在“TargetTarget”上完成上完成 ?再根据需要,将再根据需要,将“HostHost”上的测试在上的测试在“TargetTarget”上验证

14、上验证嵌入式软件测试基础: 嵌入式软件测试的基本方法18?交叉测试的特点 ?将大部分工作转移到将大部分工作转移到PC平台上,在硬件环境未建好或调 试工具缺乏时就可以开展平台上,在硬件环境未建好或调 试工具缺乏时就可以开展 ?适用于高级语言,如适用于高级语言,如C,C+?主要用于动态测试,如单元测试(功能测试)主要用于动态测试,如单元测试(功能测试) ?测试用例设计是关键测试用例设计是关键 ?操作方便,测试成本较低。操作方便,测试成本较低。 ?实时性受调试环境的制约实时性受调试环境的制约 ?目标环境中测试时要占用一定的目标资源目标环境中测试时要占用一定的目标资源 ?注意目标环境和主机环境的差异注

15、意目标环境和主机环境的差异 ?目标编译器的影响目标编译器的影响 ?内存资源内存资源嵌入式软件测试基础: 嵌入式软件测试的基本方法19? 为什么不把所有测试都放在目标上进行? 在Target上测试软件,可能会造成与开发者争夺目标 平台或使用时间。要避免这种矛盾只有提供更多的目 标平台。在Target上测试软件,可能会造成与开发者争夺目标 平台或使用时间。要避免这种矛盾只有提供更多的目 标平台。 ? 目标平台可能还不可行,或者主机与目标的连接不方 便。目标平台可能还不可行,或者主机与目标的连接不方 便。 ? 比起主机平台环境,目标平台通常是不精密的和不方 便的。比起主机平台环境,目标平台通常是不精

16、密的和不方 便的。 ? 成本问题。提供给开发者的目标平台和开发环境通常 是很昂贵的。成本问题。提供给开发者的目标平台和开发环境通常 是很昂贵的。 ? 开发和测试工作可能会妨碍目标上已经存在持续的应 用。开发和测试工作可能会妨碍目标上已经存在持续的应 用。嵌入式软件测试基础: 嵌入式软件测试的基本方法20?如何开展交叉测试 ?选用带有选用带有支持目标环境支持目标环境的软件测试工具的软件测试工具 ?确定哪些模块与硬件无关,哪些与硬件相关确定哪些模块与硬件无关,哪些与硬件相关 ?配置相应的调试环境和目标环境配置相应的调试环境和目标环境 ?设计测试用例设计测试用例 ?分别进行分别进行Host和和Target测试测试嵌入式软件测试基础: 嵌入式软件测试的基本方法执行执行编译编译/ 链接链接TargetHost测试结果测试结果测试结果测试结果被测代码被测代码测试用例测试用例目标支持目标支持执行执行编译编译/ 链接链接 开发环境开发环境21?交叉测试的条件 ?测试工具要支持目标系统测试工具要支持目标系统 ?Target测试需要合

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号