版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式软件测试 第一部分 测试测试策略与策略与成果成果 测试策略与成果提要 认识嵌入式软件测试 测试成果及其管理 软件测试策略 认识软件测试的定义 由人工或自动方法来执行或评价系统或由人工或自动方法来执行或评价系统或 系统部件的过程,以验证它是否满足规系统部件的过程,以验证它是否满足规 定的需求;定的需求; 或或 识别出期望的结果和实际结果之间有无识别出期望的结果和实际结果之间有无 差别。差别。 认识测试的发展历程 时间区间时间区间标志性活动标志性活动 1956 面向调试的阶段面向调试的阶段 1957 1978 面向证实的阶段面向证实的阶段 1979 1982 面向缺陷的阶段面向缺陷的阶段 1
2、983 1987 面向评价的阶段面向评价的阶段 1988 认识测试与调试的区别 测试不是调试,调试也不是测试,实际测试不是调试,调试也不是测试,实际 工作中人们却常将测试与调试混为一谈工作中人们却常将测试与调试混为一谈 主要区别:主要区别: v测试是一种检验,调试是推理过程测试是一种检验,调试是推理过程 v测试从已知条件开始,使用预先定义测试从已知条件开始,使用预先定义 的规程并且有可预知的结果;调试的的规程并且有可预知的结果;调试的 开始条件可能不可知,结果不可预见开始条件可能不可知,结果不可预见 v测试经常由非程序设计人员完成,调测试经常由非程序设计人员完成,调 试必须由程序设计者完成试必
3、须由程序设计者完成 认识测试的目的 验证软件是否满足其规格说明的规定验证软件是否满足其规格说明的规定 和要求和要求 发现软件中隐藏的缺陷或其征兆发现软件中隐藏的缺陷或其征兆 为软件产品质量的评价提供依据为软件产品质量的评价提供依据 为软件开发过程的改进提供支持为软件开发过程的改进提供支持 认识测试的局限性 局限局限1 v不可能对程序进行完全的测试不可能对程序进行完全的测试 原因原因 v所需测试的数量巨大所需测试的数量巨大 v无法保证测试环境无法保证测试环境100%满足测试满足测试 要求要求 v没有足够的资源彻底完成软件测试没有足够的资源彻底完成软件测试 认识测试的局限性 局限局限2 v测试无法
4、说明软件没有缺陷测试无法说明软件没有缺陷 原因原因 v无法通过测试确信规格说明无法通过测试确信规格说明100% 正确正确 v在资源制约和技术限制的条件下,在资源制约和技术限制的条件下, 无法保证找到软件中所有的缺陷无法保证找到软件中所有的缺陷 v无法确信测试人员完全理解了软件无法确信测试人员完全理解了软件 v无法确信测试系统无法确信测试系统(或环境或环境)的正确性的正确性 认识测试的局限性 局限局限3 v发现问题越多地方发现问题越多地方, 潜在的问题也更潜在的问题也更 多多 原因原因 v缺陷存在聚集效应缺陷存在聚集效应 v缺陷率水平与开发能力、复杂性等缺陷率水平与开发能力、复杂性等 存在关联存
5、在关联 vPareto法则适用于软件测试法则适用于软件测试(8:2) 认识测试的地位 软件测试是软件验证与确认的重要组软件测试是软件验证与确认的重要组 成部分成部分 有效有效的测试对于开发可靠、安全和成的测试对于开发可靠、安全和成 功的软件是必须的功的软件是必须的 测试不是测试不是“银弹银弹(silver bullet)”,它它 具有有效范围,它具有有效范围,它不能替代其它软件不能替代其它软件 工程工程方法方法的作用的作用 认识验证与确认 验证验证(Verification)与确认与确认(Validation) 是广泛认可的质量保证方法和手段是广泛认可的质量保证方法和手段 验证是指对开发过程中
6、某项规定活动进验证是指对开发过程中某项规定活动进 行检查的过程,以确保该活动实现了规行检查的过程,以确保该活动实现了规 定能力定能力 确认是指审查已建立的软件产品是否符确认是指审查已建立的软件产品是否符 合客户需要的过程合客户需要的过程 V int i2; int i3; return (i1+i2+i3); int main() printf(“Sum is %dn”, sum(1,2,3); return(0) 成果缺陷的例子(排序) #include int main() int a,b,c; a = 7; b = 5; c = 3; if(abc) std:cout“a,b,c are
7、 in ordern”; else std:cout100000 210000100000 3100010000 41000 成果失效分级举例3 失效类别失效类别对操作的影响对操作的影响 1用户不能进行一项或多项关键操作用户不能进行一项或多项关键操作 2用户不能进行一项或多项重要操作用户不能进行一项或多项重要操作 3 用户不能进行一项或多项操作,但用户不能进行一项或多项操作,但 是有补救办法是有补救办法 4一项或多项操作中的小缺陷一项或多项操作中的小缺陷 软件测试策略 确定测试的独立性和组织结构确定测试的独立性和组织结构 确定测试级别确定测试级别 确定测试技术和类型确定测试技术和类型 确定测试
8、用例设计方法确定测试用例设计方法 确定测试完成准则确定测试完成准则 确定回归测试策略确定回归测试策略 策略独立性和组织结构 独立性级别独立性级别 v开发人员的测试开发人员的测试 v专职测试人员的测试专职测试人员的测试 v专职测试团队的测试专职测试团队的测试 v用户的测试用户的测试 v独立机构的测试独立机构的测试 组织结构与独立性级别匹配组织结构与独立性级别匹配 策略测试级别 与软件开发过程相适应与软件开发过程相适应 为了说明软件系统内单元为了说明软件系统内单元/组件组件/配置项配置项 的互操作性需要进行三种基本的测试的互操作性需要进行三种基本的测试 v测试单独的单元测试单独的单元 v测试单元间
9、互操作测试单元间互操作 v测试单元结合成的软件测试单元结合成的软件 Systems Design Systems Analysis Software PD Software DD Software Implementation (Coding) Software Requirement Analysis Low Level RBT Integration Testing High Level RBT Systems Integration Testing Systems Level Test Systems Engineering Software Engineering Software S
10、ystems Engineering K N O W L E D G E B A S E Software Unit Test PD : preliminary design DD : detailed design RBT : Requirements-based testing 策略测试级别的不同考虑 基于过程划分基于过程划分基于对象规模划分基于对象规模划分 单元测试单元测试单元测试单元测试 集成测试集成测试部件测试部件测试 确认测试确认测试配置项测试配置项测试 系统测试系统测试系统测试系统测试 策略测试方法的重要性 测试是一项富有挑战性的工作测试是一项富有挑战性的工作 用户与测试人员的区
11、别用户与测试人员的区别 测试方法来自于测试经验测试方法来自于测试经验 测试不能靠运气测试不能靠运气 测试的多样性需求测试的多样性需求 策略测试方法分类 静态测试静态测试 v不动态执行程序代码,而寻找程序代不动态执行程序代码,而寻找程序代 码中可能存在的缺陷或评估程序代码码中可能存在的缺陷或评估程序代码 的过程的过程 动态测试动态测试 v实际运行被测试程序,取得程序运行实际运行被测试程序,取得程序运行 的真实情况和动态情况,进行分析的真实情况和动态情况,进行分析 策略静态测试特征 可以由人工进行,充分发挥人的逻辑可以由人工进行,充分发挥人的逻辑 思维优势思维优势 可以借助软件工具自动完成部分工作
12、,可以借助软件工具自动完成部分工作, 提高测试的一致性和效率提高测试的一致性和效率 对测试环境的要求较低对测试环境的要求较低 测试成果取决于测试人员的能力和态测试成果取决于测试人员的能力和态 度度 策略静态测试类型 代码审查代码审查 代码走查代码走查 静态分析静态分析 设计评审设计评审 策略动态测试特征 测试的质量依赖于使用的测试数据测试的质量依赖于使用的测试数据 生成测试数据和分析测试结果需要时生成测试数据和分析测试结果需要时 间与经费投入间与经费投入 动态测试涉及人员、设备和数据等多动态测试涉及人员、设备和数据等多 个方面,要求有较好的管理和工作规个方面,要求有较好的管理和工作规 程程 策
13、略动态测试方法 方法方法 策略策略 白盒方法白盒方法 黑盒方法黑盒方法 策略白盒测试特征 已知产品内部工作流程,通过测试来已知产品内部工作流程,通过测试来 检测产品的内部动作是否按照详细设检测产品的内部动作是否按照详细设 计规格说明的规定正常进行,而不管计规格说明的规定正常进行,而不管 它的功能它的功能 目标是对所有逻辑路径进行测试,穷目标是对所有逻辑路径进行测试,穷 举路径举路径 依据详细设计规范依据详细设计规范 白盒测试白盒测试(White-Box Testing)也称也称 为结构测试或逻辑驱动测试为结构测试或逻辑驱动测试 策略白盒测试图示 结果输出结果输出 内部行为内部行为 预期输出预期
14、输出 软件设计软件设计 选择输入选择输入 策略逻辑路径的数量 程序的执行序列程序的执行序列(逻辑路径逻辑路径)的数目的数目 是庞大的,简单的重复就有可能使执行是庞大的,简单的重复就有可能使执行 序列的数目增大到天文数字。序列的数目增大到天文数字。 例子:例子: For (int i =0;in;+i) if (a.get(i)=b.get(i) xi=xi+100; else xi=xi/2; 解:解: 可能的执行序列可能的执行序列/路径数是路径数是 2n1 当当n=20时,执行序列时,执行序列/路径路径 数是数是1,048,577 策略白盒测试的优势 对重点区域进行重点测试对重点区域进行重点
15、测试 根据覆盖的指示增加测试根据覆盖的指示增加测试 可以根据需要观察控制流可以根据需要观察控制流 可方便地监控数据完整性可方便地监控数据完整性 能看到内部边界能看到内部边界 可模拟内部异常,方便测试异常处理可模拟内部异常,方便测试异常处理 策略白盒测试的局限 即使测试了所有路径也不能保证没有缺即使测试了所有路径也不能保证没有缺 陷,例如:陷,例如: 1)遗漏的代码遗漏的代码 2)边界值处理不正确边界值处理不正确 3)时序问题、中断相关的缺陷时序问题、中断相关的缺陷 4)未进行判断保护的除零未进行判断保护的除零(x/y)问题问题 5)指针越界指针越界/内存泄漏或栈破坏等最终导致内存泄漏或栈破坏等
16、最终导致 栈溢出,但滞后暴露问题栈溢出,但滞后暴露问题 6)配置相关缺陷,硬件和软件兼容性问题配置相关缺陷,硬件和软件兼容性问题 7)易用性等用户需求相关的缺陷易用性等用户需求相关的缺陷 策略白盒测试类型 基于控制流测试基于控制流测试 基于数据流测试基于数据流测试 策略白盒测试的充分性 策略黑盒测试特征 已知软件产品应该具有的功能,通过已知软件产品应该具有的功能,通过 测试来检测每个功能是否都能正常使测试来检测每个功能是否都能正常使 用用 黑盒法着眼于程序外部结构,不考虑黑盒法着眼于程序外部结构,不考虑 内部逻辑结构内部逻辑结构 穷举输入穷举输入/状态测试,测试情况有无穷状态测试,测试情况有无
17、穷 多个多个 依据需求规范依据需求规范 黑盒测试黑盒测试(Black-Box Testing)也称为也称为 功能测试或数据驱动测试功能测试或数据驱动测试 策略黑盒测试图示 结果输出结果输出 预期输出预期输出 选择输入选择输入 策略输入/状态空间 一些很普通的程序所包含的输入一些很普通的程序所包含的输入/输出输出 组合,即使只考虑合法情况,其数目都是组合,即使只考虑合法情况,其数目都是 非常惊人的,有些更是天文数字。非常惊人的,有些更是天文数字。 例:读入三个数值,表示三角形的三条边,程序输出例:读入三个数值,表示三角形的三条边,程序输出 一条信息,说明该三角形是等边三角形、等腰三一条信息,说明
18、该三角形是等边三角形、等腰三 角形、不等边三角形。角形、不等边三角形。 解:在限制坐标点取值为解:在限制坐标点取值为110的整数的情况下,的整数的情况下,3条直条直 线有线有1041041041012种可能的输入,每秒测试种可能的输入,每秒测试 1000条直线,需要条直线,需要10 12 10 3 10 9s,每年按 ,每年按 3.1536107s计算,需要计算,需要109(3.1536107)=31.7 年。年。 注:考虑输入域之外注:考虑输入域之外/实数实数/更大范围更大范围 策略黑盒测试局限性 不可能测试所有的输入不可能测试所有的输入 1)有效的输入有效的输入 2)无效的输入无效的输入
19、3)输入的编辑特性输入的编辑特性 4)输入时间的考虑输入时间的考虑 不可能测试多个输入的所有组合不可能测试多个输入的所有组合 策略黑盒测试类型 基于规格说明的测试基于规格说明的测试 基于质量特性的测试基于质量特性的测试 基于故障的测试基于故障的测试 基于经验的测试基于经验的测试 策略黑盒测试的充分性 策略测试方法的选择 从原理上讲,黑盒测试能检测出所从原理上讲,黑盒测试能检测出所 有错误,但要花费无限的时间。白盒测试有错误,但要花费无限的时间。白盒测试 基本上是有限的,但即使是全部执行也不基本上是有限的,但即使是全部执行也不 能测试出全部的错误。某种程度上讲,测能测试出全部的错误。某种程度上讲
20、,测 试的技巧就是在白盒测试与黑盒测试之间试的技巧就是在白盒测试与黑盒测试之间 如何进行选择。如何进行选择。 - Beizer 策略测试方法的作用 S S S S S S S S S S S S S S D D D D D D D D D D S S D D D D D D D D D D D D D D D D D D DS S S S S 许多动态许多动态测试难以发现的测试难以发现的缺陷缺陷 可以通过早期的静态测试发现可以通过早期的静态测试发现 动态测试时动态测试时 发现的缺陷发现的缺陷 静态测试时静态测试时 发现的缺陷发现的缺陷 策略测试方法的应用(Fujitsu) 年份年份 缺陷检测方
21、法缺陷检测方法(%)千行需千行需 维护代维护代 码缺陷码缺陷 动态测试动态测试 设计评审设计评审 代码审查代码审查 197 7 85-150.19 197 8 805150.13 197 9 7010200.06 198 0 6015250.05 策略好的测试用例 具有合理的捕获缺陷的概率具有合理的捕获缺陷的概率 执行了重要的区域执行了重要的区域 做了应引起注意的事情做了应引起注意的事情 不做多余的事情不做多余的事情 既不太简单也不太复杂既不太简单也不太复杂 不与其它测试用例冗余不与其它测试用例冗余 使得缺陷显而易见使得缺陷显而易见 考虑缺陷的隔离和识别考虑缺陷的隔离和识别 策略测试用例设计方
22、法 边界值分析边界值分析 等价类划分等价类划分 因果图因果图 正交设计正交设计 状态转换状态转换 敏感度分析敏感度分析 随机测试随机测试 错误列表错误列表 策略测试完成准则 当时间用光时当时间用光时 当继续测试没有触发新的失效时当继续测试没有触发新的失效时 当继续测试没有发现新的缺陷时当继续测试没有发现新的缺陷时 当无法考虑新的测试用例时当无法考虑新的测试用例时 当测试的回报很小时当测试的回报很小时 当达到所要求的覆盖时当达到所要求的覆盖时 当所有发现的缺陷都已经清除时当所有发现的缺陷都已经清除时 策略回归测试原因 超过超过60%的对软件系统的修改会无意的对软件系统的修改会无意 中引入新的错误中引入新的错误 每修改每修改6行代码就会引入一个新的错误行代码就会引入一个新的错误 策略回归测试目标 检验修改是否达到了预期的目的检验修改是否达到了预期的目的 检验是否损害了原有的正常功能,从检验是否损害了原有的正常功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 33398-2016光学功能薄膜 聚对苯二甲酸乙二醇酯(PET)薄膜 表面电阻测定方法》
- 任务5.3 海外仓发货
- 网络安全渗透测试与防护 课件5.NMAP 简介
- 医疗数据安全治理:区块链技术的数据生命周期管理
- 医疗数据安全攻防演练的区块链评估
- 医疗数据安全应急响应团队建设
- 医疗数据安全国际合作:标准对接
- 医疗数据安全区块链权限管理模型
- 医疗数据安全区块链与物联网融合共识
- 背诵检查泡泡课件
- HXN5型机车柴油机的结构特点柴油机84课件
- 高速公路维修施工方案与措施
- 纺织品的物理化学性质试题及答案
- 发改价格〔2007〕670号建设工程监理与相关服务收费标准
- 高空作业吊板施工方案
- 鸡舍钢结构厂房施工组织设计方案
- 图书馆管理系统设计与实现答辩
- 扳机点(激痛点)疗法(理论及实操演示附全身激痛点分布图)
- 2024年北京第二次高中学业水平合格考英语试卷真题(含答案)
- 企业如何做好培训工作
- 测量常用坐标系课件
评论
0/150
提交评论