您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > part09 嵌入式系统软件测试
2020/2/71软件测试工程师培训嵌入式系统软件测试2020/2/72综述不存在一个适合于所有软件的通用的测试方法和测试程序,必须以具体项目的特点和要求为基础,综合考虑测试活动要素及工程限制,制定和选择适当的目标、计划和规程,以保证测试质量和软件质量。本次讲课内容:结合实际测试实例,介绍与实时嵌入式系统软件测试相关的技术要点。2020/2/73要点嵌入式软件的特点嵌入式软件测试设计嵌入式软件测试工具嵌入式软件测试环境嵌入式软件测试案例2020/2/74嵌入式软件的特点专用用户接口实时信号/强实时性软件与硬件并行开发对代码规模有限制难以测试可靠性要求高…是基于Host/Target方法进行开发的,软件实际运行在特定的硬件环境下。2020/2/75嵌入式软件的特点与用户的接口依赖于系统硬件使用实时或专用操作系统2020/2/76嵌入式软件测试设计单元测试集成测试确认测试系统集成测试系统测试/验收测试每个级别的测试有不同的内容,发现不同方面的软件缺陷。语句、结构单元、部件配置项、子系统系统、大系统2020/2/77测试设计-单元测试要重视静态分析和代码审查确定软件单元粒度用例设计的方法取决于被测单元的特点性能测试(中断处理、实时性)旨在发现程序模块的编码和逻辑错误。2020/2/78测试设计-关于代码审查人工测试技术在检查某些编码错误时,有着特殊的功效,它常常能够找出利用计算机不容易发现的错误。人工测试至今仍是一种行之有效的测试方法。一个对照实验发现,人工走查和审查会平均能查出被测程序的38%错误,IBM代码审查会的查错效率高达80%。2020/2/79测试设计-关于时间特性测试实时系统中对软件运行实时性有严格的要求。有些软件测试工具提供了时间测试的功能,使用的软件插桩可能会影响时间测试精度,但只要被测试的模块的时间特性在允许的余量范围(比如30%)中,测试结果是有效的。自行编制驱动软件,使用时钟来测试模块运行时间也是行之有效的方法。模块的时间特性是一个统计数值而不是只靠一次测试得到的结果。2020/2/710测试设计-集成测试发现部分设计缺陷分步骤逐步完成,增量过程较多使用黑盒测试辅助测试系统软件与硬件的部分集成检验与软件设计相关的程序结构问题;着重于测试软件模块间的接口和模块所体现的功能验证。2020/2/711测试设计-软件集成测试流程软件单元测试软件集成测试软件系统测试系统测试软件模块测试模块集成软件与硬件集成软件配置项确认测试软件配置项集成软件系统确认测试真实系统测试软件系统与硬件集成系统验收测试2020/2/712测试设计-确认测试检验所开发的软件能否满足功能和性能需求。与通用软件的确认测试不完全一致软件配置项级确认测试系统级确认测试-验收测试广度上有所要求(重视强度测试、安全性测试、可恢复性测试…)2020/2/713测试设计-与通用软件测试的区别没有可移植性、兼容性等的测试要求;多数嵌入式系统也没有人机接口的测试要求;由于嵌入式系统的软件与硬件系统密切相关,确认测试完成并不表明软件测试的结束;软件最终的确认测试是完成系统集成测试以后的系统验收测试。2020/2/714测试设计-系统集成测试对整个嵌入式系统进行考验的一系列不同的测试,每个测试都有不同的目的,所有的测试都是为了整个系统成分能正常地集成到一起以完成分配的功能。2020/2/715测试设计-系统测试/验收测试最终在系统一级进行的确认测试有顾客(用户)参加的测试环境试验可靠性测试压力测试…功能测试性能测试恢复测试安全测试2020/2/716测试设计-与通用软件系统测试的区别通用软件的系统测试要求在各种系统硬件(兼容机)和软件环境(操作系统)中完成测试,而嵌入式系统测试则要求在特定的硬件系统和接口环境(真实环境)中进行。系统安装测试的概念有所区别。多数嵌入式系统无GUI测试。2020/2/717测试设计-概述系统集成和验收测试虽然不属于软件工程过程的研究范围,也不是由软件开发人员来进行的,但却是嵌入式系统测试不可回避的。在软件设计和测试阶段采用的步骤能够大大增加软件成功地在复杂系统中进行集成的可能性,但却不能解决系统集成的所有问题。2020/2/718嵌入式软件测试工具静态测试工具动态测试工具2020/2/719测试工具-主要功能静态测试工具测试软件调研报告.doc-编程标准验证(ProgramStandardsVerification)-数据流分析技术(DataFlowAnalysis)-质量度量(QualityMetrics)信息-代码可视化显示(CodeVisualisation)2020/2/720测试工具-主要功能动态测试工具测试软件调研报告.doc-代码覆盖率(CodeCoverage)-自动产生测试外壳程序(testharness)(单元测试阶段)-性能分析-内存分析-执行追踪分析(TRACE)2020/2/721测试工具-比较测试工具推荐.doc嵌入式软件测试工具比较.doc2020/2/722嵌入式软件测试环境解决嵌入式软件测试过程中执行结果不易观察的问题.逻辑仿真测试环境系统联试测试环境硬件模拟测试环境全数字仿真测试环境2020/2/723测试环境-逻辑仿真测试环境优点:可分解、记录任意中间数据状态,执行、中断和暂停任意指令,记录各语句、分支和循环的覆盖情况和执行次数等项功能均易于解决,是一种常用有效的测试和调试技术手段。缺点:难于产生严格意义上的时序关系,当软件包含与外部接口相关的时序操作时,难以有效进行测试,测试时难于发现由被测软件造成的与硬件相关的故障,工具本身的正确性直接影响测试结果。2020/2/724测试环境-系统联试测试环境优点:最真实的测试环境,易于发现由软件造成的软件接口与系统接口的不一致性问题,可检验软件、硬件复合的性能,及在特定的物理环境下系统硬件是否能保证软件的正常运行。缺点:对于大型综合系统,实际测试涉及多个单位,难于保证测试时间;设备本身的限制,无法提供支持测试用例的手段。2020/2/725测试环境-硬件模拟测试环境使用与产品的嵌入式系统硬件指令兼容的CPU,设计研制与之严格时序及逻辑等价的测试平台,以硬件或软件手段实现测试信息的设定和记录等功能。优点:接近真实的运行环境,可记录部分中间结果.缺点:难于统计覆盖率,响应时间测试不够准确,记录数据受硬件条件的限制。2020/2/726测试环境-全数字仿真测试环境使用软件方法模拟被测试软件的运行环境,并记录软件运行的输入/输出结果和中间数据。优点:测试时便于根据测试用例设置各种输入,可通过记录的数据进行精度分析、覆盖率统计,便于修改和进行回归测试。缺点:难以发现与硬件相关的问题,难于准确测试软件的响应时间。平台正确性影响到测试结果。2020/2/727测试环境-概述嵌入式系统在完成测试的过程中,可能使用多种测试技术,完成不同方面的测试。对于大型复杂嵌入式系统,可根据需要建立多种测试环境,有时这样的系统本身就是一个复杂的综合系统.2020/2/728测试环境-基本要求测试输入是可以控制的测试输出应尽量能够通过自动化的方法记录和显示;对于不能自动记录测试结果的测试,只要测试输入是可以控制的,根据测试用例组织测试,实时记录测试结果。各种形式的记录数据都是事后整理和分析的依据。2020/2/729测试环境-基本要求测试是可以重复的,可以进行回归测试测试是为了发现软件中的缺陷,由于错误出现经常是有条件的,在经过调试以后,为了验证缺陷是否消失,就要使用错误出现时的测试用例进行回归测试;回归测试时,不仅要使用先前出现错误时的测试用例,还要重复所有的测试,以避免调试引进的新缺陷。作为测试环境就必须满足测试输入可重复、避免随机产生测试用例的情形。2020/2/730嵌入式软件测试案例测试流程/测试策略测试计划测试设计测试评审测试实现测试实施测试评价测试配置管理第三方测试2020/2/731测试案例-测试流程xxxx软件测试流程软件配置管理系统集成测试配置项集成测试软件确认测试系统验收测试验收测试报告确认测试报告更改报告问题报告软件产品软件集成测试配置项测试报告系统设计系统分析配置项测试计划/说明确认测试计划/说明系统测试计划/说明回归测试中间状态软件编码\单元测试代码软件需求文档软件设计文档2020/2/732阶段标识被测对象目的完成后产品状态单元测试CSU单元获得可组装的单元可执行的单元部件集成测试CSC单元、部件、集成单元成部件部件环境中可执行的部件配置项集成测试CSCI部件、配置项组装部件成配置项配置项级环境中可执行的配置项配置项确认测试CSCIV配置项、子系统确认配置项的功能和性能仿真环境中满足软件需求的配置项系统集成测试SYS子系统,系统动态协调开发环境下的各子系统实际运行环境中满足用户需求的子系统系统验收测试SYSV子系统,系统,关键配置项确认系统的功能和性能实际运行环境中满足用户需求的系统测试案例-测试阶段2020/2/733测试案例-测试计划软件配置项划分测试定义测试/管理工具的确定测试环境定义人员组织形式时间/进度安排2020/2/734测试案例-测试设计单元测试集成测试确认测试系统测试测试说明文档测试基准部分或整体关键模块的选择分步骤集成结构测试和功能测试2020/2/735测试案例-测试实现测试工具测试脚本(测试步骤的计算机表示)测试环境2020/2/736测试案例-测试用例的复用低层被测对象的测试用例或其部分内容可以复用在对高层被测对象的测试中。如:部件确认测试阶段可以复用单元测试阶段的测试输入;部件确认测试阶段的测试用例组可以复用在配置项集成测试阶段和配置项确认测试阶段中;配置项确认测试阶段的测试用例组可以复用在系统集成测试阶段和系统验收测试中。2020/2/737测试案例-测试实施软件测试记录:测试运行结果的计算机表示测试比较结果的计算机表示测试日志软件问题报告2020/2/738测试案例-测试评价软件测试报告测试结果的统计信息测试结果的分析/评判2020/2/739测试案例-配置管理ClearCase工具不同级别的测试评审测试用例库测试问题报告2020/2/740测试案例-第三方测试单元测试使用工具进行静态度量工具和人工结合代码走读软件配置项确认测试在第二方测试环境下变换测试用例复现测试用例2020/2/741总结编程人员要有意识地学习和掌握测试工具,而不能认为是测试人员的事。在软件测试中应该根据实际情况实施测试,无需刻意追求使用测试工具。实现软件工程和软件测试,更多地是软件流程管理,不只是强调软件开发(编程)质量。有了环境和工具并不意味完成了测试。软件工程应加强软件流程的有序性和有效性管理,而不应该片面追求大而全的瀑布模型。2020/2/742谢谢!
本文标题:part09 嵌入式系统软件测试
链接地址:https://www.777doc.com/doc-3543018 .html