资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,软件测试工程师培训,嵌入式系统软件测试,11/14/2024,1,软件测试工程师培训9/28/20231,综述,不存在一个适合于所有软件的通用的测试方法和测试程序,必须以具体项目的特点和要求为基础,综合考虑测试活动要素及工程限制,制定和选择适当的目标、计划和规程,以保证测试质量和软件质量。,本次讲课内容:结合实际测试实例,介绍与实时嵌入式系统软件测试相关的技术要点。,11/14/2024,2,综述 不存在一个适合于所有软件的通用的测试方,要点,嵌入式软件的特点,嵌入式软件测试设计,嵌入式软件测试工具,嵌入式软件测试环境,嵌入式软件测试案例,11/14/2024,3,要点 嵌入式软件的特点9/28/20233,嵌入式软件的特点,专用用户接口,实时信号/强实时性,软件与硬件并行开发,对代码规模有限制,难以测试,可靠性要求高,是基于Host/Target方法进行开发的,软件实际运行在特定的硬件环境下。,11/14/2024,4,嵌入式软件的特点专用用户接口 是基于Host/Ta,嵌入式软件的特点,与用户的接口依赖于系统硬件,使用实时或专用操作系统,11/14/2024,5,嵌入式软件的特点9/28/20235,嵌入式软件测试设计,单元测试,集成测试,确认测试,系统集成测试,系统测试/验收测试,每个级别的测试有不同的内容,发现不同方面的软件缺陷。,语句、结构,单元、部件,配置项、子系统,系统、大系统,11/14/2024,6,嵌入式软件测试设计单元测试 每个级别的测试有不同的内容,测试设计,单元测试,要重视静态分析和代码审查,确定软件单元粒度,用例设计的方法取决于被测单元的特点,性能测试(中断处理、实时性),旨在发现程序模块的编码和逻辑错误。,11/14/2024,7,测试设计单元测试要重视静态分析和代码审查 旨在发现程,测试设计,关于代码审查,人工测试技术在检查某些编码错误时,有着特殊的功效,它常常能够找出利用计算机不容易发现的错误。人工测试至今仍是一种行之有效的测试方法。一个对照实验发现,人工走查和审查会平均能查出被测程序的38%错误,IBM代码审查会的查错效率高达80%。,11/14/2024,8,测试设计关于代码审查 人工测试技术在检查某些编码错误时,测试设计,关于时间特性测试,实时系统中对软件运行实时性有严格的要求。有些软件测试工具提供了时间测试的功能,使用的软件插桩可能会影响时间测试精度,但只要被测试的模块的时间特性在允许的余量范围(比如30)中,测试结果是有效的。,自行编制驱动软件,使用时钟来测试模块运行时间也是行之有效的方法。,模块的时间特性是一个统计数值而不是只靠一次测试得到的结果。,11/14/2024,9,测试设计关于时间特性测试 实时系统中对,测试设计,集成测试,发现部分设计缺陷,分步骤逐步完成,增量过程,较多使用黑盒测试,辅助测试系统,软件与硬件的部分集成,检验与软件设计相关的程序结构问题;着重于测试软件模块间的接口和模块所体现的功能验证。,11/14/2024,10,测试设计集成测试发现部分设计缺陷 检验与软件设计,测试设计,软件集成测试流程,11/14/2024,11,测试设计软件集成测试流程9/28/202311,测试设计,确认测试,检验所开发的软件能否满足功能和性能需求。,与通用软件的确认测试不完全一致,软件配置项级确认测试,系统级确认测试验收测试,广度上有所要求(重视,强度测试,、安全性测试、可恢复性测试),11/14/2024,12,测试设计确认测试 检验所开发的软件能否满足功能和性,测试设计,与通用软件测试的区别,没有可移植性、兼容性等的测试要求;,多数嵌入式系统也没有人机接口的测试要求;,由于嵌入式系统的软件与硬件系统密切相关,确认测试完成并不表明软件测试的结束;,软件最终的确认测试是完成系统集成测试以后的系统验收测试。,11/14/2024,13,测试设计与通用软件测试的区别 没有可移,测试设计,系统集成测试,对整个嵌入式系统进行考验的一系列不同的测试,,每个测试都有不同的目的,所有的测试都是为了整个系统成分能正常地集成到一起以完成分配的功能。,11/14/2024,14,测试设计系统集成测试 对整个嵌入式系统进行考验的一,测试设计,系统测试/验收测试,最终在系统一级进行的确认测试,有顾客(用户)参加的测试,环境试验,可靠性测试,压力测试,功能测试,性能测试,恢复测试,安全测试,11/14/2024,15,测试设计系统测试/验收测试最终在系统一级进行的确认测试环境,测试设计,与通用软件系统测试的区别,通用软件的系统测试要求在各种系统硬件(兼容机)和软件环境(操作系统)中完成测试,而嵌入式系统测试则要求在特定的硬件系统和接口环境(真实环境)中进行。,系统安装测试的概念有所区别。,多数嵌入式系统无GUI测试。,11/14/2024,16,测试设计与通用软件系统测试的区别 通用软件的系统,测试设计,概述,系统集成和验收测试虽然不属于软件工程过程的研究范围,也不是由软件开发人员来进行的,但却是嵌入式系统测试不可回避的。在软件设计和测试阶段采用的步骤能够大大增加软件成功地在复杂系统中进行集成的可能性,但却不能解决系统集成的所有问题。,11/14/2024,17,测试设计概述 系统集成和验收测试虽然不属于软件工程,嵌入式软件测试工具,静态测试工具,动态测试工具,11/14/2024,18,嵌入式软件测试工具静态测试工具9/28/202318,测试工具,主要功能,静态测试工具,测试软件调研报告.doc,编程标准验证(Program Standards Verification),数据流分析技术(Data Flow Analysis),质量度量(Quality Metrics)信息,代码可视化显示(Code Visualisation),11/14/2024,19,测试工具主要功能静态测试工具测试软件调研报告.doc9/2,测试工具,主要功能,动态测试工具,测试软件调研报告.doc,代码覆盖率(Code Coverage),自动产生测试外壳程序(test harness)(单元测试阶段),性能分析,内存分析,执行追踪分析(TRACE),11/14/2024,20,测试工具主要功能动态测试工具测试软件调研报告.doc9/2,测试工具,比较,测试工具推荐.doc,嵌入式软件测试工具比较.doc,11/14/2024,21,测试工具比较测试工具推荐.doc9/28/202321,嵌入式软件测试环境,解决嵌入式软件测试过程中执行结果不易观察的问题,逻辑仿真测试环境,系统联试测试环境,硬件模拟测试环境,全数字仿真测试环境,11/14/2024,22,嵌入式软件测试环境解决嵌入式软件测试过程中执行结果不易,测试环境,逻辑仿真测试环境,优点:,可分解、记录任意中间数据状态,执行、中断和暂停任意指令,记录各语句、分支和循环的覆盖情况和执行次数等项功能均易于解决,是一种常用有效的测试和调试技术手段。,缺点:,难于产生严格意义上的时序关系,当软件包含与外部接口相关的时序操作时,难以有效进行测试,测试时难于发现由被测软件造成的与硬件相关的故障,工具本身的正确性直接影响测试结果。,11/14/2024,23,测试环境逻辑仿真测试环境优点:可分解、记录任意中间数据状态,测试环境,系统联试测试环境,优点:,最真实的测试环境,易于发现由软件造成的软件接口与系统接口的不一致性问题,可检验软件、硬件复合的性能,及在特定的物理环境下系统硬件是否能保证软件的正常运行。,缺点:,对于大型综合系统,实际测试涉及多个单位,难于保证测试时间;设备本身的限制,无法提供支持测试用例的手段。,11/14/2024,24,测试环境系统联试测试环境优点:最真实的测试环境,易于发现由,测试环境,硬件模拟测试环境,使用与产品的嵌入式系统硬件指令兼容的CPU,设计研制与之严格时序及逻辑等价的测试平台,以硬件或软件手段实现测试信息的设定和记录等功能,。,优点:接近真实的运行环境,可记录部分中间结果.,缺点:难于统计覆盖率,响应时间测试不够准确,记录数据受硬件条件的限制,。,11/14/2024,25,测试环境硬件模拟测试环境使用与产品的嵌入式系统硬件指,测试环境,全数字仿真测试环境,使用软件方法模拟被测试软件的运行环境,并记录软件运行的输入/输出结果和中间数据。,优点:,测试时便于根据测试用例设置各种输入,可通过记录的数据进行精度分析、覆盖率统计,便于修改和进行回归测试。,缺点:,难以发现与硬件相关的问题,难于准确测试软件的响应时间。平台正确性影响到测试结果。,11/14/2024,26,测试环境全数字仿真测试环境 使用软件方法模拟被测试,测试环境,概述,嵌入式系统在完成测试的过程中,可能使用多种测试技术,完成不同方面的测试。对于大型复杂嵌入式系统,可根据需要建立多种测试环境,有时这样的系统本身就是一个复杂的综合系统,11/14/2024,27,测试环境概述 9/28/202327,测试环境,基本要求,测试输入是可以控制的,测试输出应尽量能够通过自动化的方法记录和显示;对于不能自动记录测试结果的测试,只要测试输入是可以控制的,根据测试用例组织测试,实时记录测试结果。各种形式的记录数据都是事后整理和分析的依据。,11/14/2024,28,测试环境基本要求测试输入是可以控制的9/28/202328,测试环境,基本要求,测试是可以重复的,可以进行回归测试,测试是为了发现软件中的缺陷,由于错误出现经常是有条件的,在经过调试以后,为了验证缺陷是否消失,就要使用错误出现时的测试用例进行回归测试;回归测试时,不仅要使用先前出现错误时的测试用例,还要重复所有的测试,以避免调试引进的新缺陷。作为测试环境就必须满足测试输入可重复、避免随机产生测试用例的情形。,11/14/2024,29,测试环境基本要求测试是可以重复的,可以进行回归测试9/28,嵌入式软件测试案例,测试流程测试策略,测试计划,测试设计,测试评审,测试实现,测试实施,测试评价,测试配置管理,第三方测试,11/14/2024,30,嵌入式软件测试案例测试流程测试策略9/28/202330,测试案例,测试流程,xxxx软件测试流程,软件配置管理,系统,集成测试,配置项,集成测试,软件,确认测试,系统,验收测试,验收测试报告,确认测试报告,更改报告,问题报告,软件产品,软件,集成测试,配置项测试报告,系统设计,系统分析,配置项测试计划/说明,确认测试计划/说明,系统测试计划/说明,回归测试,中间状态,软件编码单元测试,代码,软件需求文档,软件设计文档,11/14/2024,31,测试案例测试流程xxxx软件测试流程系统配置项软件系统验收,阶 段,标识,被测对象,目 的,完成后产品状态,单元测试,CSU,单元,获得可组装的单元,可执行的单元,部件集成测试,CSC,单元、部件、,集成单元成部件,部件环境中可执行的部件,配置项集成测试,CSCI,部件、配置项,组装部件成配置项,配置项级环境中可执行的配置项,配置项确认测试,CSCIV,配置项、子系统,确认配置项的功能和性能,仿真环境中满足软件需求的配置项,系统集成测试,SYS,子系统,系统,动态协调开发环境下的各子系统,实际运行环境中满足用户需求的子系统,系统验收测试,SYSV,子系统,系统,关键配置项,确认系统的功能和性能,实际运行环境中满足用户需求的系统,测试案例,测试阶段,11/14/2024,32,阶 段标识被测对象目 的完成后产品状态单元测试CSU,测试案例,测试计划,软件配置项划分,测试定义,测试/管理工具的确定,测试环境定义,人员组织形式,时间/进度安排,11/14/2024,33,测试案例测试计划软件配置项划分9/28/202333,测试案例,测试设计,单元测试,集成测试,确认测试,系统测试,测试说明文档,测试基准,部分或整体,关键模块的选择,分步骤集成,
展开阅读全文