软件质量保证与测试工程硕士

上传人:m**** 文档编号:578456605 上传时间:2024-08-24 格式:PPT 页数:462 大小:6.40MB
返回 下载 相关 举报
软件质量保证与测试工程硕士_第1页
第1页 / 共462页
软件质量保证与测试工程硕士_第2页
第2页 / 共462页
软件质量保证与测试工程硕士_第3页
第3页 / 共462页
软件质量保证与测试工程硕士_第4页
第4页 / 共462页
软件质量保证与测试工程硕士_第5页
第5页 / 共462页
点击查看更多>>
资源描述

《软件质量保证与测试工程硕士》由会员分享,可在线阅读,更多相关《软件质量保证与测试工程硕士(462页珍藏版)》请在金锄头文库上搜索。

1、软件测试软件测试1内容内容l l前言前言前言前言l l第一章第一章第一章第一章 软件质量保证软件质量保证软件质量保证软件质量保证l l第二章第二章第二章第二章 软件测试概述软件测试概述软件测试概述软件测试概述l l第三章第三章第三章第三章 测试人员的数学知识测试人员的数学知识测试人员的数学知识测试人员的数学知识l l第四章第四章第四章第四章 软件测试技术软件测试技术软件测试技术软件测试技术l l第五章第五章第五章第五章 软件测试过程软件测试过程软件测试过程软件测试过程l l第六章第六章第六章第六章 软件测试管理体系软件测试管理体系软件测试管理体系软件测试管理体系前言前言-内容内容l l课程的由

2、来课程的由来课程的由来课程的由来 软件危机软件危机软件危机软件危机 软件工程软件工程软件工程软件工程 软件质量保证软件质量保证软件质量保证软件质量保证 软件测试软件测试软件测试软件测试l l课程的介绍课程的介绍课程的介绍课程的介绍 目标目标目标目标 内容内容内容内容 形式和要求形式和要求形式和要求形式和要求 参考书目参考书目参考书目参考书目前言前言-课程由来课程由来l l软件危机软件危机软件危机软件危机(1960s)(1960s) 根源:根源:根源:根源:l l硬件越来越复杂,功能越来越强大(摩尔定律)硬件越来越复杂,功能越来越强大(摩尔定律)硬件越来越复杂,功能越来越强大(摩尔定律)硬件越来

3、越复杂,功能越来越强大(摩尔定律) 对软件在应用领域和规模上的期望越来越高对软件在应用领域和规模上的期望越来越高对软件在应用领域和规模上的期望越来越高对软件在应用领域和规模上的期望越来越高l l软件的发展速度落后于硬件的发展速度软件的发展速度落后于硬件的发展速度软件的发展速度落后于硬件的发展速度软件的发展速度落后于硬件的发展速度 真实世界与计算机世界的映射真实世界与计算机世界的映射真实世界与计算机世界的映射真实世界与计算机世界的映射 靠人来生产靠人来生产靠人来生产靠人来生产 多人开发多人开发多人开发多人开发前言前言-课程由来课程由来l l软件危机软件危机软件危机软件危机(1960s)(1960

4、s) 表现:软件质量不高、超出预算、项目延迟表现:软件质量不高、超出预算、项目延迟表现:软件质量不高、超出预算、项目延迟表现:软件质量不高、超出预算、项目延迟 根源:软件系统复杂性提高、多人合作根源:软件系统复杂性提高、多人合作根源:软件系统复杂性提高、多人合作根源:软件系统复杂性提高、多人合作 解决:解决:解决:解决:l l软件工程软件工程软件工程软件工程 与软件相关的人员与软件相关的人员与软件相关的人员与软件相关的人员l l项目组项目组项目组项目组l l用户和股东用户和股东用户和股东用户和股东 计算机系统计算机系统计算机系统计算机系统l l设计技术设计技术设计技术设计技术 控制复杂:人的思

5、维极限控制复杂:人的思维极限控制复杂:人的思维极限控制复杂:人的思维极限l l抽象抽象抽象抽象/ /建模建模建模建模l l分解分解分解分解 重用:质量和效率重用:质量和效率重用:质量和效率重用:质量和效率l l语言与开发包语言与开发包语言与开发包语言与开发包l lOOOO前言前言-课程由来课程由来l l软件工程软件工程软件工程软件工程 目标:解决沟通和集成问题目标:解决沟通和集成问题目标:解决沟通和集成问题目标:解决沟通和集成问题 策略:控制错误策略:控制错误策略:控制错误策略:控制错误l l错误错误错误错误 缺陷缺陷缺陷缺陷/Bug/Defect/Error/Bug/Defect/Error

6、 狭义:狭义:狭义:狭义:l l软件定义、设计、实现、打包软件定义、设计、实现、打包软件定义、设计、实现、打包软件定义、设计、实现、打包/ /部署、使用过程中出现部署、使用过程中出现部署、使用过程中出现部署、使用过程中出现的与明确的需求不一致:不能正确完成任务、完成多的与明确的需求不一致:不能正确完成任务、完成多的与明确的需求不一致:不能正确完成任务、完成多的与明确的需求不一致:不能正确完成任务、完成多余的任务余的任务余的任务余的任务 广义:广义:广义:广义:l l还包括:改善产品的建议;与用户隐含的需求不一致还包括:改善产品的建议;与用户隐含的需求不一致还包括:改善产品的建议;与用户隐含的需

7、求不一致还包括:改善产品的建议;与用户隐含的需求不一致前言前言-课程由来课程由来l l软件工程软件工程软件工程软件工程 方法:方法:方法:方法:l l预防错误:预防错误:预防错误:预防错误: 规范化规范化规范化规范化l l流程、职责、角色、模式:流程、职责、角色、模式:流程、职责、角色、模式:流程、职责、角色、模式:RUP(RationalUnifiedRUP(RationalUnifiedProcess)Process)、CMM/CMMICMM/CMMI、PatternPatternl l表达方式:表达方式:表达方式:表达方式:UMLUML、PatternPattern 文档化文档化文档化文

8、档化 迭代与体系结构迭代与体系结构迭代与体系结构迭代与体系结构l l纠正错误:纠正错误:纠正错误:纠正错误: 测试测试测试测试 调试调试调试调试l l减少错误损失减少错误损失减少错误损失减少错误损失 培训培训培训培训前言前言-课程由来课程由来l lSQA:软件质量保证:软件质量保证l l过程改进:预防错误过程改进:预防错误 规范化:流程规范化:流程 文档化文档化l l软件测试:发现错误软件测试:发现错误 错误发现的越早,解决的代价越小错误发现的越早,解决的代价越小前言前言-课程由来课程由来l lSQASQA涉及的工作岗位涉及的工作岗位涉及的工作岗位涉及的工作岗位 过程改进工程师过程改进工程师过

9、程改进工程师过程改进工程师l l过程改进过程改进过程改进过程改进 测试工程师测试工程师测试工程师测试工程师l l软件测试软件测试软件测试软件测试 开发工程师开发工程师开发工程师开发工程师l l软件测试软件测试软件测试软件测试l l软件调试软件调试软件调试软件调试 测试经理测试经理测试经理测试经理l l测试流程管理测试流程管理测试流程管理测试流程管理l l测试度量测试度量测试度量测试度量前言前言-内容内容l l课程的由来课程的由来课程的由来课程的由来 软件危机软件危机软件危机软件危机 软件工程软件工程软件工程软件工程 软件质量保证软件质量保证软件质量保证软件质量保证 软件测试软件测试软件测试软件

10、测试l l课程的介绍课程的介绍课程的介绍课程的介绍 目标目标目标目标 内容内容内容内容 形式和要求形式和要求形式和要求形式和要求 参考书目参考书目参考书目参考书目前言前言-课程介绍课程介绍l l目标目标目标目标 学习质量保证的基本概念和理论学习质量保证的基本概念和理论学习质量保证的基本概念和理论学习质量保证的基本概念和理论 学习软件测试的基本概念和理论学习软件测试的基本概念和理论学习软件测试的基本概念和理论学习软件测试的基本概念和理论 掌握白盒测试掌握白盒测试掌握白盒测试掌握白盒测试/ /黑盒测试技术黑盒测试技术黑盒测试技术黑盒测试技术 掌握单元测试掌握单元测试掌握单元测试掌握单元测试/ /集

11、成测试集成测试集成测试集成测试/ /系统测试技术系统测试技术系统测试技术系统测试技术 掌握测试流程管理和测试度量技术掌握测试流程管理和测试度量技术掌握测试流程管理和测试度量技术掌握测试流程管理和测试度量技术 掌握测试工具和测试流程管理工具掌握测试工具和测试流程管理工具掌握测试工具和测试流程管理工具掌握测试工具和测试流程管理工具 了解测试相关工作的岗位要求和职业素质要求了解测试相关工作的岗位要求和职业素质要求了解测试相关工作的岗位要求和职业素质要求了解测试相关工作的岗位要求和职业素质要求 了解测试行业的现状和技术发展趋势了解测试行业的现状和技术发展趋势了解测试行业的现状和技术发展趋势了解测试行业

12、的现状和技术发展趋势前言前言-课程介绍课程介绍l l内容内容内容内容 软件质量保证方法和软件测试概念软件质量保证方法和软件测试概念软件质量保证方法和软件测试概念软件质量保证方法和软件测试概念 开发工程师需要掌握的开发工程师需要掌握的开发工程师需要掌握的开发工程师需要掌握的l l静态测试静态测试静态测试静态测试/ /白盒测试白盒测试白盒测试白盒测试/ /黑盒测试技术、单元测试黑盒测试技术、单元测试黑盒测试技术、单元测试黑盒测试技术、单元测试/ /集成集成集成集成测试要求测试要求测试要求测试要求l l测试度量方法测试度量方法测试度量方法测试度量方法l l测试工具测试工具测试工具测试工具l l职业素

13、质要求职业素质要求职业素质要求职业素质要求前言前言-课程介绍课程介绍l l内容内容内容内容 测试工程师需要掌握的测试工程师需要掌握的测试工程师需要掌握的测试工程师需要掌握的l l黑盒测试技术、集成测试黑盒测试技术、集成测试黑盒测试技术、集成测试黑盒测试技术、集成测试/ /系统测试要求系统测试要求系统测试要求系统测试要求l l攻击式软件测试攻击式软件测试攻击式软件测试攻击式软件测试l l测试度量方法测试度量方法测试度量方法测试度量方法l l测试工具测试工具测试工具测试工具l l职业素质要求职业素质要求职业素质要求职业素质要求 测试经理需要掌握的测试经理需要掌握的测试经理需要掌握的测试经理需要掌握

14、的l l测试流程管理测试流程管理测试流程管理测试流程管理l l测试团队组织和测试度量测试团队组织和测试度量测试团队组织和测试度量测试团队组织和测试度量l l测试流程管理工具和缺陷跟踪工具测试流程管理工具和缺陷跟踪工具测试流程管理工具和缺陷跟踪工具测试流程管理工具和缺陷跟踪工具l l职业素质要求职业素质要求职业素质要求职业素质要求前言前言-课程介绍课程介绍l l形式和要求形式和要求形式和要求形式和要求 学习前的要求:学习前的要求:学习前的要求:学习前的要求:l l掌握软件工程基本概念掌握软件工程基本概念掌握软件工程基本概念掌握软件工程基本概念l l掌握软件开发方法、高级程序设计语言和数据库相关知

15、识掌握软件开发方法、高级程序设计语言和数据库相关知识掌握软件开发方法、高级程序设计语言和数据库相关知识掌握软件开发方法、高级程序设计语言和数据库相关知识l l了解了解了解了解WindowsWindows平台开发平台开发平台开发平台开发 学习方式:学习方式:学习方式:学习方式:l l课堂讲解课堂讲解课堂讲解课堂讲解l l上机实践(浪潮通软上机实践(浪潮通软上机实践(浪潮通软上机实践(浪潮通软ERPERP或者自己开发计算器程序)或者自己开发计算器程序)或者自己开发计算器程序)或者自己开发计算器程序)l l课堂讨论或者课堂练习课堂讨论或者课堂练习课堂讨论或者课堂练习课堂讨论或者课堂练习 成绩评定方法

16、:成绩评定方法:成绩评定方法:成绩评定方法:l l期末笔试占总成绩的期末笔试占总成绩的期末笔试占总成绩的期末笔试占总成绩的60%60%l l实践和课堂讨论(课堂练习)占总成绩的实践和课堂讨论(课堂练习)占总成绩的实践和课堂讨论(课堂练习)占总成绩的实践和课堂讨论(课堂练习)占总成绩的40%40%前言前言-课程介绍课程介绍l l参考书目参考书目参考书目参考书目 软件测试基础软件测试基础软件测试基础软件测试基础l lPaulPaulAmmannAmmann,JeffOffutt,JeffOffutt,2010,2010,机械工业出版社机械工业出版社机械工业出版社机械工业出版社 软件测试案例教程软件

17、测试案例教程软件测试案例教程软件测试案例教程l l吕云翔,王洋等吕云翔,王洋等吕云翔,王洋等吕云翔,王洋等 ,20112011,机械工业出版社,机械工业出版社,机械工业出版社,机械工业出版社 实用软件测试指南实用软件测试指南实用软件测试指南实用软件测试指南l l马良荔,马良荔,马良荔,马良荔,20032003,电子工业出版社,电子工业出版社,电子工业出版社,电子工业出版社前言前言-其他事宜其他事宜l l请班长留联系方式请班长留联系方式l l请留班级公共邮箱请留班级公共邮箱第一章第一章软件质量保证软件质量保证17第一章第一章内容内容1.1软件质量软件质量1.2软件质量保证:软件质量保证:SQA1

18、.2.1SQA目标目标1.2.2SQA模型模型1.2.2.1ISO90011.2.2.2CMMI1.3SQA支持工具支持工具1.1软件质量软件质量l l什么是软件质量什么是软件质量ANSI/IEEE Std 729-1983ANSI/IEEE Std 729-1983定义软件质定义软件质量为量为“与软件产品满足规定的和隐含与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全的需求的能力有关的特征或特性的全体体”。M.J. Fisher M.J. Fisher 定义软件质量为定义软件质量为“所有所有描述计算机软件优秀程度的特性的组描述计算机软件优秀程度的特性的组合合”。1.1软件质量软件质

19、量 高质量的软件高质量的软件能够按照预期的时间和成本提交给用能够按照预期的时间和成本提交给用能够按照预期的时间和成本提交给用能够按照预期的时间和成本提交给用户,并能够按照预期要求正确工作的户,并能够按照预期要求正确工作的户,并能够按照预期要求正确工作的户,并能够按照预期要求正确工作的软件软件软件软件ScopeScopeScopeScopeTimeTimeTimeTimeCostCostCostCost1.1软件质量软件质量l l为什么提出软件质量为什么提出软件质量为什么提出软件质量为什么提出软件质量软件质量不高是导致软件危机的根本原因软件质量不高是导致软件危机的根本原因软件质量不高是导致软件危

20、机的根本原因软件质量不高是导致软件危机的根本原因l l进度延误、预算超支进度延误、预算超支进度延误、预算超支进度延误、预算超支l l项目失败、项目终止项目失败、项目终止项目失败、项目终止项目失败、项目终止 软件质量高可以降低总成本软件质量高可以降低总成本软件质量高可以降低总成本软件质量高可以降低总成本l l软件维护成本软件维护成本软件维护成本软件维护成本 高质量的软件可以降低维护成本,并延长软件的生命高质量的软件可以降低维护成本,并延长软件的生命高质量的软件可以降低维护成本,并延长软件的生命高质量的软件可以降低维护成本,并延长软件的生命期,从而降低总成本期,从而降低总成本期,从而降低总成本期,

21、从而降低总成本l l软件失效成本软件失效成本软件失效成本软件失效成本 高质量的软件可以降低软件失效导致的成本损失,从高质量的软件可以降低软件失效导致的成本损失,从高质量的软件可以降低软件失效导致的成本损失,从高质量的软件可以降低软件失效导致的成本损失,从而降低总成本而降低总成本而降低总成本而降低总成本l l怎样提高软件质量怎样提高软件质量怎样提高软件质量怎样提高软件质量 目标目标目标目标l l优化软件开发过程优化软件开发过程优化软件开发过程优化软件开发过程l l减少软件中的减少软件中的减少软件中的减少软件中的bugbug 方法方法方法方法l l防止在软件中引入错误防止在软件中引入错误防止在软件

22、中引入错误防止在软件中引入错误 l l通过检测找出软件中的错误,并解决这种错误通过检测找出软件中的错误,并解决这种错误通过检测找出软件中的错误,并解决这种错误通过检测找出软件中的错误,并解决这种错误1.1软件质量软件质量1.2软件质量保证:软件质量保证:SQAl l什么是什么是什么是什么是SQASQA SoftwareQualityAssuranceSoftwareQualityAssurance 是软件工程领域中的一部分是软件工程领域中的一部分是软件工程领域中的一部分是软件工程领域中的一部分 为了确保软件开发过程和结果符合预期的要求,而建为了确保软件开发过程和结果符合预期的要求,而建为了确保

23、软件开发过程和结果符合预期的要求,而建为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程和计划,以及依照规程和计划采取的立的一系列规程和计划,以及依照规程和计划采取的立的一系列规程和计划,以及依照规程和计划采取的立的一系列规程和计划,以及依照规程和计划采取的一系列活动及其结果评价一系列活动及其结果评价一系列活动及其结果评价一系列活动及其结果评价l l软件开发过程是按照计划和规范实施的软件开发过程是按照计划和规范实施的软件开发过程是按照计划和规范实施的软件开发过程是按照计划和规范实施的l l软件开发结果包括完整的软件和文档,并且符合可软件开发结果包括完整的软件和文档,并且符合可软件开发

24、结果包括完整的软件和文档,并且符合可软件开发结果包括完整的软件和文档,并且符合可预期的目标和检验标准预期的目标和检验标准预期的目标和检验标准预期的目标和检验标准1.2.1SQA目标目标l lSQASQA总目标总目标总目标总目标 减少并纠正实际的软件开发过程和软件开发结果与减少并纠正实际的软件开发过程和软件开发结果与减少并纠正实际的软件开发过程和软件开发结果与减少并纠正实际的软件开发过程和软件开发结果与预期的软件开发过程和软件开发结果的不符合情况预期的软件开发过程和软件开发结果的不符合情况预期的软件开发过程和软件开发结果的不符合情况预期的软件开发过程和软件开发结果的不符合情况l lSQASQA方

25、法方法方法方法 通过在软件开发周期中尽可能早地预期或检测到不通过在软件开发周期中尽可能早地预期或检测到不通过在软件开发周期中尽可能早地预期或检测到不通过在软件开发周期中尽可能早地预期或检测到不符合情况符合情况符合情况符合情况( (错误错误错误错误) ) ,来防止错误的发生,并减少错误纠,来防止错误的发生,并减少错误纠,来防止错误的发生,并减少错误纠,来防止错误的发生,并减少错误纠正的成本正的成本正的成本正的成本l l错误发现得越早,造成的损失越小,修改的代价错误发现得越早,造成的损失越小,修改的代价错误发现得越早,造成的损失越小,修改的代价错误发现得越早,造成的损失越小,修改的代价也越小也越小

26、也越小也越小1.2.1SQA目标目标l l软件开发不同阶段:软件开发不同阶段:软件开发不同阶段:软件开发不同阶段: 需求分析:需求分析:RequirementsAnalysis 规格定义:规格定义:SoftwareSpecifications 设计:设计:Design 编码:编码:Coding 测试:测试:Testing 维护:维护:Maintenance1.2.1SQA目标目标l l需求分析:需求分析:需求分析:需求分析:RequirementsAnalysisRequirementsAnalysis 确保客确保客确保客确保客户户户户提出的要求是可行的提出的要求是可行的提出的要求是可行的提出

27、的要求是可行的 确保客确保客确保客确保客户户户户了解自己提出的需求的含了解自己提出的需求的含了解自己提出的需求的含了解自己提出的需求的含义义义义,并且,并且,并且,并且这这这这个需求能个需求能个需求能个需求能够够够够真正达到他真正达到他真正达到他真正达到他们们们们的目的目的目的目标标标标 确保开确保开确保开确保开发发发发人人人人员员员员和客和客和客和客户对户对户对户对于需求没有于需求没有于需求没有于需求没有误误误误解或者解或者解或者解或者误误误误会会会会 确保按照需求确保按照需求确保按照需求确保按照需求实现实现实现实现的的的的软软软软件系件系件系件系统统统统能能能能够满够满够满够满足客足客足客

28、足客户户户户提出的要求提出的要求提出的要求提出的要求1.2.1SQA目标目标l l规规规规格定格定格定格定义义义义:SoftwareSpecifications:SoftwareSpecifications: 确保确保确保确保规规规规格定格定格定格定义义义义能能能能够够够够完全符合、支持和覆盖前面描述完全符合、支持和覆盖前面描述完全符合、支持和覆盖前面描述完全符合、支持和覆盖前面描述的系的系的系的系统统统统需求需求需求需求l l可以采用建立需求跟踪文档和需求可以采用建立需求跟踪文档和需求可以采用建立需求跟踪文档和需求可以采用建立需求跟踪文档和需求实现实现实现实现矩矩矩矩阵阵阵阵的方的方的方的方

29、式式式式l l确保确保确保确保规规规规格定格定格定格定义满义满义满义满足系足系足系足系统统统统需求的性能、可需求的性能、可需求的性能、可需求的性能、可维护维护维护维护性、性、性、性、灵活性的要求灵活性的要求灵活性的要求灵活性的要求l l确保确保确保确保规规规规格定格定格定格定义义义义是可以是可以是可以是可以测试测试测试测试的,并且建立了的,并且建立了的,并且建立了的,并且建立了测试测试测试测试策策策策略略略略l l确保建立了可行的、包含确保建立了可行的、包含确保建立了可行的、包含确保建立了可行的、包含评审评审评审评审活活活活动动动动的开的开的开的开发进发进发进发进度表度表度表度表l l确保建立

30、了正式的确保建立了正式的确保建立了正式的确保建立了正式的变变变变更控制流程更控制流程更控制流程更控制流程1.2.1SQA目标目标l l设计设计设计设计:Design:Design: 确保建立了确保建立了确保建立了确保建立了设计设计设计设计的描述的描述的描述的描述标标标标准,并且按照准,并且按照准,并且按照准,并且按照该标该标该标该标准准准准进进进进行行行行设计设计设计设计 确保确保确保确保设计变设计变设计变设计变更被正确的跟踪、控制、文档化更被正确的跟踪、控制、文档化更被正确的跟踪、控制、文档化更被正确的跟踪、控制、文档化 确保按照确保按照确保按照确保按照计计计计划划划划进进进进行行行行设计评

31、审设计评审设计评审设计评审 确保确保确保确保设计设计设计设计按照按照按照按照评审评审评审评审准准准准则评审则评审则评审则评审通通通通过过过过并被正式批并被正式批并被正式批并被正式批准之前,没有开始正式准之前,没有开始正式准之前,没有开始正式准之前,没有开始正式编码编码编码编码1.2.1SQA目标目标l l编码编码:Coding: 确保建立了确保建立了编码规编码规范、文档格式范、文档格式标标准,准,并且按照并且按照该标该标准准进进行行编码编码 确保代确保代码码被正确地被正确地测试测试和集成,代和集成,代码码的的修改符合修改符合变变更控制和版本控制流程更控制和版本控制流程 确保按照确保按照计计划的

32、划的进进度度编编写代写代码码 确保按照确保按照进进化的化的进进度度进进行代行代码评审码评审1.2.1SQA目标目标l l测试测试:Testing: 确保建立了确保建立了测试计测试计划,并按照划,并按照测试计测试计划划进进行行测试测试 确保测试计划覆盖了所有的系统规格确保测试计划覆盖了所有的系统规格定义和系统需求定义和系统需求 确保经过测试和调试,软件仍旧符合确保经过测试和调试,软件仍旧符合系统规格和需求定义系统规格和需求定义1.2.1SQA目标目标l l维护维护:Maintenance: 确保代确保代码码和文档同步更新,保持一致和文档同步更新,保持一致 确保建立了确保建立了变变更控制流程和版本

33、控制更控制流程和版本控制流程,并按照流程,并按照这这些流程管理些流程管理维护过维护过程程中的中的产产品品变变化化 确保代确保代码码的更改仍旧符合的更改仍旧符合编码规编码规范、范、通通过过代代码评审码评审,并且不会造成垃圾代,并且不会造成垃圾代码码或冗余代或冗余代码码1.2.2SQA模型模型pp质量管理历史质量管理历史质量管理历史质量管理历史pp质量就是产品、过程、系统符合标准要求的能力质量就是产品、过程、系统符合标准要求的能力质量就是产品、过程、系统符合标准要求的能力质量就是产品、过程、系统符合标准要求的能力pp质量是生产出来的,不是检测出来的质量是生产出来的,不是检测出来的质量是生产出来的,

34、不是检测出来的质量是生产出来的,不是检测出来的pp质量存在于全部直接质量存在于全部直接质量存在于全部直接质量存在于全部直接/ /间接相关的环节中间接相关的环节中间接相关的环节中间接相关的环节中ppDeming(Deming(美国质量管理专家戴明博士美国质量管理专家戴明博士美国质量管理专家戴明博士美国质量管理专家戴明博士) ),日本日本日本日本的全面质量管理的全面质量管理的全面质量管理的全面质量管理TQMTQMpp预防为主预防为主预防为主预防为主pp第一次就把事情做好是最经济的第一次就把事情做好是最经济的第一次就把事情做好是最经济的第一次就把事情做好是最经济的pp质量管理的灵魂在于持续改进质量管

35、理的灵魂在于持续改进质量管理的灵魂在于持续改进质量管理的灵魂在于持续改进ppPDCAPDCA1.2.2SQA模型模型pp软件质量管理相关标准和技术软件质量管理相关标准和技术软件质量管理相关标准和技术软件质量管理相关标准和技术pp标准标准标准标准ppISO9000ISO9000族标准族标准族标准族标准pp国际标准,国际标准,国际标准,国际标准,ISO/TC176ISO/TC176制订,适用于所有行业,其中制订,适用于所有行业,其中制订,适用于所有行业,其中制订,适用于所有行业,其中9000-39000-3针对软件开发行业针对软件开发行业针对软件开发行业针对软件开发行业ppSW-CMM/CMMIS

36、W-CMM/CMMI标准标准标准标准ppCMM:CMM:行业标准,行业标准,行业标准,行业标准,CMU-SEICMU-SEI制订和管理,针对软件开发制订和管理,针对软件开发制订和管理,针对软件开发制订和管理,针对软件开发行业行业行业行业ppCMMI:CMMI:集成的集成的集成的集成的CMMCMMppISO15504ISO15504标准标准标准标准pp国际标准,试图结合国际标准,试图结合国际标准,试图结合国际标准,试图结合ISO9000ISO9000、CMMCMM与软件工程概念与软件工程概念与软件工程概念与软件工程概念pp项目管理技术项目管理技术项目管理技术项目管理技术pp项目:目标、起止时间、

37、相关活动项目:目标、起止时间、相关活动项目:目标、起止时间、相关活动项目:目标、起止时间、相关活动pp定义、计划、实施定义、计划、实施定义、计划、实施定义、计划、实施1.2.2.1ISO9001 ISO9000ISO9000族标准族标准族标准族标准 一系列关于质量管理一系列关于质量管理一系列关于质量管理一系列关于质量管理/ /质量保证质量保证质量保证质量保证/ /质量审核方面的国际质量审核方面的国际质量审核方面的国际质量审核方面的国际标准,标准,标准,标准,1983/1994/20001983/1994/2000l l9001/9002/9003/9004/9000-39001/9002/90

38、03/9004/9000-3 是管理思想的精华,管理工作的指导原则,也是做事是管理思想的精华,管理工作的指导原则,也是做事是管理思想的精华,管理工作的指导原则,也是做事是管理思想的精华,管理工作的指导原则,也是做事方式方式方式方式 文档管理:写你要做的,做你所写的,记你所做的文档管理:写你要做的,做你所写的,记你所做的文档管理:写你要做的,做你所写的,记你所做的文档管理:写你要做的,做你所写的,记你所做的 过程控制:过程控制:过程控制:过程控制:PDCA-PDCA-计划性及持续改进计划性及持续改进计划性及持续改进计划性及持续改进 相关标准:相关标准:相关标准:相关标准:QS9000QS9000

39、等等等等1.2.2.1ISO9001l l原则原则原则原则 原则原则原则原则1 1:以顾客为中心:以顾客为中心:以顾客为中心:以顾客为中心l l组织依存于顾客。因此,组织应理解顾客当前和组织依存于顾客。因此,组织应理解顾客当前和组织依存于顾客。因此,组织应理解顾客当前和组织依存于顾客。因此,组织应理解顾客当前和未来的需求,满足顾客要求并争取超越顾客期望未来的需求,满足顾客要求并争取超越顾客期望未来的需求,满足顾客要求并争取超越顾客期望未来的需求,满足顾客要求并争取超越顾客期望 原则原则原则原则2 2:领导作用:领导作用:领导作用:领导作用l l领导将本组织的宗旨、方向和内部环境统一起来,领导将

40、本组织的宗旨、方向和内部环境统一起来,领导将本组织的宗旨、方向和内部环境统一起来,领导将本组织的宗旨、方向和内部环境统一起来,并创造使员工能够充分参与实现组织目标的环境并创造使员工能够充分参与实现组织目标的环境并创造使员工能够充分参与实现组织目标的环境并创造使员工能够充分参与实现组织目标的环境1.2.2.1ISO9001l l原则原则原则原则 原则原则原则原则3 3:全员参与:全员参与:全员参与:全员参与l l各级人员是组织之本。只有他们的充分参各级人员是组织之本。只有他们的充分参各级人员是组织之本。只有他们的充分参各级人员是组织之本。只有他们的充分参与,才能使他们的才干为组织带来最大的与,才

41、能使他们的才干为组织带来最大的与,才能使他们的才干为组织带来最大的与,才能使他们的才干为组织带来最大的收益收益收益收益 原则原则原则原则4 4:过程方法:过程方法:过程方法:过程方法l l将相关的资源和活动作为过程进行管理,将相关的资源和活动作为过程进行管理,将相关的资源和活动作为过程进行管理,将相关的资源和活动作为过程进行管理,重视输入和输出,可以更高效地得到期望重视输入和输出,可以更高效地得到期望重视输入和输出,可以更高效地得到期望重视输入和输出,可以更高效地得到期望的结果的结果的结果的结果1.2.2.1ISO9001l l原则原则 原则原则5:管理的系统方法:管理的系统方法l l针对设定

42、的目标,识别、理解并管针对设定的目标,识别、理解并管理一个由相互关联的过程所组成的理一个由相互关联的过程所组成的系统,有助于提高组织的有效性和系统,有助于提高组织的有效性和效率效率 原则原则6:持续改进:持续改进l l持续改进是组织的一个永恒目标持续改进是组织的一个永恒目标1.2.2.1ISO9001l l原则原则 原则原则7:基于事实的决策方法:基于事实的决策方法l l对数据和信息的逻辑分析或直觉判对数据和信息的逻辑分析或直觉判断是有效决策的基础断是有效决策的基础pp原则原则8:互利的供方关系:互利的供方关系l l通过互利的关系,增强组织及其供通过互利的关系,增强组织及其供方创造价值的能力方

43、创造价值的能力1.2.2.1ISO9001pp在软件企业的实施案例在软件企业的实施案例在软件企业的实施案例在软件企业的实施案例pp原则:原则:原则:原则:pp运用项目管理技术运用项目管理技术运用项目管理技术运用项目管理技术pp重视质量策划重视质量策划重视质量策划重视质量策划pp重视培训和工具支持重视培训和工具支持重视培训和工具支持重视培训和工具支持pp框架:框架:框架:框架:pp质量手册、规程文件、作业指导书质量手册、规程文件、作业指导书质量手册、规程文件、作业指导书质量手册、规程文件、作业指导书pp开发管理、体系支持开发管理、体系支持开发管理、体系支持开发管理、体系支持1.2.2.1ISO9

44、001在软件企业的实施案例在软件企业的实施案例角色分工角色分工1.2.2.1ISO9001在软件企业的实施案例在软件企业的实施案例产品开发规程产品开发规程1.2.2.1ISO9001在软件企业的实施案例在软件企业的实施案例定制项目开发规程定制项目开发规程1.2.2.1ISO9001在软件企业的实施案例在软件企业的实施案例体系支持规程体系支持规程管理评审规程管理评审规程 质量体系文件控制规程质量体系文件控制规程 内部质量体系审核规程内部质量体系审核规程 纠正措施规程纠正措施规程 预防措施规程预防措施规程配置管理规程配置管理规程 质量记录控制规程质量记录控制规程产品度量规程产品度量规程过程度量规程

45、过程度量规程采购规程采购规程配套软件产品控制规程配套软件产品控制规程培训规程培训规程档案管理规定档案管理规定合同评审规程合同评审规程软件质量保证规程软件质量保证规程产品开发规程产品开发规程1.2.2.1ISO9001在软件企业的实施案例在软件企业的实施案例ISO9001是品质保证标准,对过程管理提出最低要求是品质保证标准,对过程管理提出最低要求质量保证体系根据软件工程原理自行设计和维持,满足质量保证体系根据软件工程原理自行设计和维持,满足ISO9001要求要求质量策划根据项目自身特点,对质量体系进行剪裁和补充质量策划根据项目自身特点,对质量体系进行剪裁和补充1.2.2.2CMMIl lCMMI

46、:CapabilityMaturityModelIntegration,即,即能力成熟度模型集成能力成熟度模型集成l l来源于:来源于:美国美国卡内基梅隆大学的软件工程卡内基梅隆大学的软件工程研究所研究所(SEI)创立的创立的CMM(CapabilityMaturityModel软件能力成熟度模型软件能力成熟度模型)1.2.2.2CMMIl l目标目标 为提高组织过程和管理产品开发、发布为提高组织过程和管理产品开发、发布和维护能力提供保障。和维护能力提供保障。 帮助组织客观评价自身能力成熟度和过帮助组织客观评价自身能力成熟度和过程域能力,为过程改进建立优先级以及程域能力,为过程改进建立优先级以

47、及执行过程改进。执行过程改进。1.3SQA支持工具支持工具l lSQASQA实施要素实施要素实施要素实施要素 规范规范规范规范l l规程、模板、指南规程、模板、指南规程、模板、指南规程、模板、指南l l文档、记录文档、记录文档、记录文档、记录 人员人员人员人员l l分工、接口、培训、检查分工、接口、培训、检查分工、接口、培训、检查分工、接口、培训、检查 技术技术技术技术l l知识管理、工具知识管理、工具知识管理、工具知识管理、工具1.3SQA支持工具支持工具l支持工具支持工具自行开发自行开发厂商提供厂商提供lIBMRational第二章第二章软件测试概述软件测试概述49内容内容l l2.1软件

48、测试定义及术语软件测试定义及术语l l2.2错误与缺陷的分类错误与缺陷的分类l l2.3软件测试的目标软件测试的目标l l2.4软件测试的特征软件测试的特征l l2.5测试用例及管理工具测试用例及管理工具2.1什么是软件测试什么是软件测试l软件测试是为了发现错误而执行软件测试是为了发现错误而执行一个程序或系统的过程一个程序或系统的过程2.1软件测试的发展历史软件测试的发展历史l l20世纪世纪50年代之前,没有系统的软件测试年代之前,没有系统的软件测试l l20世纪世纪50年代年代-60年代,测试的重点是高年代,测试的重点是高级语言编写的系统,软件测试发展缓慢级语言编写的系统,软件测试发展缓慢

49、l l20世纪世纪70年代以后,软件测试发展迅速,年代以后,软件测试发展迅速,同时面临着危机同时面临着危机l l现在,软件测试是一个基于软件开发整个现在,软件测试是一个基于软件开发整个生命周期的质量控制活动生命周期的质量控制活动2.1国内软件行业的现状国内软件行业的现状l l处于起步阶段处于起步阶段l l软件评测中心的出现软件评测中心的出现2.1软件的生命周期软件的生命周期阶段阶段阶段阶段基本任务基本任务基本任务基本任务工作结果工作结果工作结果工作结果占工作量占工作量占工作量占工作量 参加者参加者参加者参加者开开开开发发发发期期期期需求需求需求需求分析分析分析分析理解表达理解表达理解表达理解表

50、达用户需求用户需求用户需求用户需求需求规格说需求规格说需求规格说需求规格说明书明书明书明书SRSSRS2020用户、系用户、系用户、系用户、系统分析员统分析员统分析员统分析员设计设计设计设计建立系统建立系统建立系统建立系统结构结构结构结构模块说明书模块说明书模块说明书模块说明书数据说明数据说明数据说明数据说明1515高级程序高级程序高级程序高级程序员员员员程序程序程序程序编写编写编写编写编程编程编程编程程序程序程序程序2020高级和初高级和初高级和初高级和初级程序员级程序员级程序员级程序员测试测试测试测试发现错误发现错误发现错误发现错误与排除错与排除错与排除错与排除错误误误误可运行的系可运行的

51、系可运行的系可运行的系统统统统4545模块测试模块测试模块测试模块测试2525其它其它其它其它2020测试部门测试部门测试部门测试部门运行期运行期运行期运行期维护维护维护维护改进系统改进系统改进系统改进系统2.1相关术语相关术语l l软件故障:软件中的静态缺陷软件故障:软件中的静态缺陷l l软件错误:不正确的内部状态,该状态是软件错误:不正确的内部状态,该状态是某个故障的表现某个故障的表现l l软件失败:与需求或者其他期望行为的描软件失败:与需求或者其他期望行为的描述有关的、外部的、不正确的行为述有关的、外部的、不正确的行为2.1相关术语相关术语l l以看病为例解释上述术语:病人带着一些以看病

52、为例解释上述术语:病人带着一些失败(症状)失败(症状)进入医生办公室,医生必须进入医生办公室,医生必须发现发现故障(症状的根源)故障(症状的根源)。为了帮助诊断,。为了帮助诊断,医生制定一些测试来寻找异常的内部条件,医生制定一些测试来寻找异常的内部条件,比如高血压、心律不齐等,这些异常的内比如高血压、心律不齐等,这些异常的内部条件相当于部条件相当于错误错误。2.1相关术语相关术语l l软件测试与医生诊疗有质的不同:软件测试与医生诊疗有质的不同: 软件中的故障是设计错误软件中的故障是设计错误 医疗问题与计算机硬件故障一样,经常医疗问题与计算机硬件故障一样,经常是物理退化的结果是物理退化的结果2.

53、1相关术语相关术语l lPublicstaticPublicstaticintint numZero(intnumZero(intx)x)l l/效果:统计效果:统计效果:统计效果:统计x x中中中中0 0出现的次数出现的次数出现的次数出现的次数l lintintcount=0count=0;l lfor(for(intinti=1;ii=1;i=2000)/良好的版式良好的版式l lIf(year=2000)/不良的版式不良的版式l lIf(a=b)&(c=b&c3)&(z3)&(z5)=4)|(y5)j=x*y+10;/j=x*y+10;/语句块语句块语句块语句块2 2 j=j%3;/j=

54、j%3;/语句块语句块语句块语句块3 3 4.1.2流程图流程图4.1.2白盒法白盒法l l语句覆盖语句覆盖l l判定覆盖判定覆盖l l条件覆盖条件覆盖l l判定判定/条件覆盖条件覆盖l l条件组合覆盖条件组合覆盖l l路径测试路径测试4.1.2白盒法白盒法语句覆盖语句覆盖l l语句覆盖:语句覆盖就是设计若干个:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每测试用例,运行被测试程序,使得每一条可执行语句至少执行一次;一条可执行语句至少执行一次;4.1.2白盒法白盒法语句覆盖语句覆盖为了说明简略,分别对各个判断的取真、取假分支编号为为了说明简略,分别对各个判断的取真、取假分支编号为为了说

55、明简略,分别对各个判断的取真、取假分支编号为为了说明简略,分别对各个判断的取真、取假分支编号为a a、b b、c c、d d、e e。为了测试语句覆盖率只要设计一个测试用例就可以为了测试语句覆盖率只要设计一个测试用例就可以为了测试语句覆盖率只要设计一个测试用例就可以为了测试语句覆盖率只要设计一个测试用例就可以把三个执行语句块中的语句覆盖了。把三个执行语句块中的语句覆盖了。把三个执行语句块中的语句覆盖了。把三个执行语句块中的语句覆盖了。测试用例输入为:测试用例输入为:测试用例输入为:测试用例输入为: x=4x=4、y=5y=5、z=5z=5程序执行的路径是:程序执行的路径是:程序执行的路径是:程

56、序执行的路径是:abdabd该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑是否有问题,例如在第一个判断中把是否有问题,例如在第一个判断中把是否有问题,例如在第一个判断中把是否有问题,例如在第一个判断中把&错误的写成了错误的写成了错误的写成了错误的写成了| |,则上面的测试用例仍可以覆盖所有的执行语句。则上面的测试用例仍可以覆盖所有的执行语句。则上面的测试用例仍可以覆盖所有的执行语句。则上面的测试用例仍可以覆盖所有的执行语句。可以说语句

57、覆盖率是最弱的逻辑覆盖准则。可以说语句覆盖率是最弱的逻辑覆盖准则。可以说语句覆盖率是最弱的逻辑覆盖准则。可以说语句覆盖率是最弱的逻辑覆盖准则。4.1.2白盒法白盒法判定覆盖判定覆盖l l执行足够的测试用例,使得程序中每个判执行足够的测试用例,使得程序中每个判定至少都获得一次定至少都获得一次“真真”值和值和“假假”值,值,或者说使得程序中的每一个分支至少都通或者说使得程序中的每一个分支至少都通过一次。过一次。4.1.2白盒法白盒法判定覆盖判定覆盖对于上面的程序,如果设计两个测试用例则可以对于上面的程序,如果设计两个测试用例则可以对于上面的程序,如果设计两个测试用例则可以对于上面的程序,如果设计两

58、个测试用例则可以满足条件覆盖的要求。满足条件覆盖的要求。满足条件覆盖的要求。满足条件覆盖的要求。测试用例的输入为:测试用例的输入为:测试用例的输入为:测试用例的输入为: x=4x=4、y=5y=5、z=5z=5x=2x=2、y=5y=5、z=5z=5上面的两个测试用例虽然能够满足条件覆盖的要求,上面的两个测试用例虽然能够满足条件覆盖的要求,上面的两个测试用例虽然能够满足条件覆盖的要求,上面的两个测试用例虽然能够满足条件覆盖的要求,但是也不能对判断条件进行检查,例如把第二个条件但是也不能对判断条件进行检查,例如把第二个条件但是也不能对判断条件进行检查,例如把第二个条件但是也不能对判断条件进行检查

59、,例如把第二个条件y5y5错误的写成错误的写成错误的写成错误的写成y5,y3取真值为取真值为T1,取假值为取假值为-T1条件条件z5取真值为取真值为T4,取假值为取假值为-T44.1.2白盒法白盒法条件覆盖条件覆盖测试用例测试用例 通过路径通过路径 条件取值条件取值覆盖分支覆盖分支x=4x=4、y=6y=6、z=5 z=5 abdabdT1T1、T2T2、T3T3、T4 T4 bdbdx=2x=2、y=5y=5、z=5 z=5 aceace- -T1T1、T2T2、-T3-T3、-T4 -T4 cecex=4x=4、y=5y=5、z=15 z=15 acdacdT1T1、-T2-T2、T3T3

60、、-T4 -T4 cdcd上面的测试用例不但覆盖了所有分支的真假两上面的测试用例不但覆盖了所有分支的真假两上面的测试用例不但覆盖了所有分支的真假两上面的测试用例不但覆盖了所有分支的真假两个分支,而且覆盖了判断中的所有条件的可能值。个分支,而且覆盖了判断中的所有条件的可能值。个分支,而且覆盖了判断中的所有条件的可能值。个分支,而且覆盖了判断中的所有条件的可能值。 4.1.2白盒法白盒法条件覆盖条件覆盖l l但是如果设计了下面的测试用例,则虽然满足了条但是如果设计了下面的测试用例,则虽然满足了条但是如果设计了下面的测试用例,则虽然满足了条但是如果设计了下面的测试用例,则虽然满足了条件覆盖,但只覆盖

61、了第一个条件的取假分支和第二个件覆盖,但只覆盖了第一个条件的取假分支和第二个件覆盖,但只覆盖了第一个条件的取假分支和第二个件覆盖,但只覆盖了第一个条件的取假分支和第二个条件的取真分支,不满足分支覆盖的要求。条件的取真分支,不满足分支覆盖的要求。条件的取真分支,不满足分支覆盖的要求。条件的取真分支,不满足分支覆盖的要求。测试用例测试用例测试用例测试用例 通过路径通过路径通过路径通过路径 条件取值条件取值条件取值条件取值覆盖分覆盖分覆盖分覆盖分支支支支x=2x=2、y=6y=6、z=5z=5acdacd- -T1T1、T2T2、-T3-T3、T4T4cdcdx=4x=4、y=5y=5、z=15z=

62、15 acdacdT1T1、-T2-T2、T3T3、-T4-T4cdcd4.1.2白盒法白盒法条件判定覆盖条件判定覆盖l执行足够的测试用例,使得判定执行足够的测试用例,使得判定中每个条件取到各种可能的值,中每个条件取到各种可能的值,并使每个判定得到各种可能的结并使每个判定得到各种可能的结果。果。4.1.2白盒法白盒法条件判定覆盖条件判定覆盖l l根据定义只需设计以下两个测试用例便可根据定义只需设计以下两个测试用例便可以覆盖以覆盖8个条件值以及个条件值以及4个判断分支。个判断分支。测试用例测试用例测试用例测试用例 通过路径通过路径通过路径通过路径 条件取值条件取值条件取值条件取值覆盖分支覆盖分支

63、覆盖分支覆盖分支x=4x=4、y=6y=6、z=5z=5abdabdT1T1、T2T2、T3T3、T4T4bdbdx=2x=2、y=5y=5、z=11z=11 aceace- -T1T1、-T2-T2、-T3-T3、- -T4T4cece4.1.2白盒法白盒法条件判定覆盖条件判定覆盖分支条件覆盖从表面来看,它测试了所分支条件覆盖从表面来看,它测试了所分支条件覆盖从表面来看,它测试了所分支条件覆盖从表面来看,它测试了所有条件的取值,但是实际上某些条件掩盖了另一些有条件的取值,但是实际上某些条件掩盖了另一些有条件的取值,但是实际上某些条件掩盖了另一些有条件的取值,但是实际上某些条件掩盖了另一些条件

64、。例如对于条件表达式条件。例如对于条件表达式条件。例如对于条件表达式条件。例如对于条件表达式( (x3)&(z3)&(z3x3)为假则一般的编译器不在判断是否为假则一般的编译器不在判断是否为假则一般的编译器不在判断是否为假则一般的编译器不在判断是否z10z5y5)来说,若来说,若来说,若来说,若x=4x=4测试结果为真,就认为表达式的结果为真,这测试结果为真,就认为表达式的结果为真,这测试结果为真,就认为表达式的结果为真,这测试结果为真,就认为表达式的结果为真,这时不再检查(时不再检查(时不再检查(时不再检查(y5y5)条件了。因此,采用分支条件条件了。因此,采用分支条件条件了。因此,采用分支

65、条件条件了。因此,采用分支条件覆盖,逻辑表达式中的错误不一定能够查出来了。覆盖,逻辑表达式中的错误不一定能够查出来了。覆盖,逻辑表达式中的错误不一定能够查出来了。覆盖,逻辑表达式中的错误不一定能够查出来了。 4.1.2白盒法白盒法条件组合覆盖条件组合覆盖 l执行足够的例子,使得每个判定执行足够的例子,使得每个判定中条件的各种可能组合都至少出中条件的各种可能组合都至少出现一次现一次4.1.2白盒法白盒法条件组合覆盖条件组合覆盖1.1.x3,z3,z3,z=10x3,z=10记做记做记做记做T1-T2T1-T2, 第一个判断的取假分支第一个判断的取假分支第一个判断的取假分支第一个判断的取假分支3.

66、3.x=3,z0x=3,z0记做记做记做记做- -T1T2T1T2, 第一个判断的取假分支第一个判断的取假分支第一个判断的取假分支第一个判断的取假分支4.4.x=10x=10记做记做记做记做- -T1-T2T1-T2,第一个判断的取假分支第一个判断的取假分支第一个判断的取假分支第一个判断的取假分支5.5.x=4,y5x=4,y5记做记做记做记做T3T4T3T4, 第二个判断的取真分支第二个判断的取真分支第二个判断的取真分支第二个判断的取真分支6.6.x=4,y=5x=4,y5x!=4,y5记做记做记做记做- -T3T4T3T4, 第二个判断的取真分支第二个判断的取真分支第二个判断的取真分支第二

67、个判断的取真分支8.8.x!=4,y=5x!=4,y0)-0)556 6if(0=if(0=iTypeiType) )7 7x=y+2;x=y+2;8else8else9 9if(1=if(1=iTypeiType) )10x=y+10;10x=y+10;11else11else12x=y+20;12x=y+20;131314144.1.2第一步:画出控制流图c/c+语句中的控制语句表示语句中的控制语句表示含义如下:含义如下:图中的每一个圆称为流图的结图中的每一个圆称为流图的结点,代表一条或多条语句。流图中的箭点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流。头称为边或连接,代表控

68、制流。4.1.2白盒法白盒法4679101113144671491011144.1.2白盒法白盒法程序设计中遇到复合条件时,生成的流图变得更为复程序设计中遇到复合条件时,生成的流图变得更为复程序设计中遇到复合条件时,生成的流图变得更为复程序设计中遇到复合条件时,生成的流图变得更为复杂。当条件语句中用到一个或多个布尔运算符杂。当条件语句中用到一个或多个布尔运算符杂。当条件语句中用到一个或多个布尔运算符杂。当条件语句中用到一个或多个布尔运算符( ( ( (逻辑逻辑逻辑逻辑OROROROR,ANDANDANDAND,NANDNANDNANDNAND,NOR)NOR)NOR)NOR)时,就出现了复合条

69、件。下图为语句时,就出现了复合条件。下图为语句时,就出现了复合条件。下图为语句时,就出现了复合条件。下图为语句IF a IF a IF a IF a OR bOR bOR bOR b中的每一个中的每一个中的每一个中的每一个a a a a和和和和b b b b创建了一个独立的结点,包含条件的创建了一个独立的结点,包含条件的创建了一个独立的结点,包含条件的创建了一个独立的结点,包含条件的结点被称为判定结点,从每一个判定结点发出两条或多条结点被称为判定结点,从每一个判定结点发出两条或多条结点被称为判定结点,从每一个判定结点发出两条或多条结点被称为判定结点,从每一个判定结点发出两条或多条边。例如:边。

70、例如:边。例如:边。例如: 1 1 1 1 if a or bif a or bif a or bif a or b 2 x 2 x 2 x 2 x 3 else 3 else 3 else 3 else 4 y 4 y 4 y 4 y 对应的逻辑为:对应的逻辑为:对应的逻辑为:对应的逻辑为:4.1.2第二步:计算圈复杂度圈复杂度是一种为程序逻辑复杂圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数为确保所有语句至少执行一次的测试数量的上界。独立路

71、径必须包含一条在定量的上界。独立路径必须包含一条在定义之前不曾用到的边。义之前不曾用到的边。4.1.2第二步:计算圈复杂度有以下两种方法计算圈复杂度:有以下两种方法计算圈复杂度:1.1.给定流图给定流图G的圈复杂度:的圈复杂度:V(G),定义为定义为V(G)=E-N+2,E是流图中边的数量,是流图中边的数量,N是流图中结点的数量;是流图中结点的数量;2.2.给定流图给定流图G的圈复杂度:的圈复杂度:V(G),定义为定义为V(G)=P+1,P是流图是流图G中判定结点的数中判定结点的数量。量。4.1.2第二步:计算圈复杂度对应上面图中的圈复杂度,计算如下:对应上面图中的圈复杂度,计算如下:对应上面

72、图中的圈复杂度,计算如下:对应上面图中的圈复杂度,计算如下:V(G)=10V(G)=10条边条边条边条边-8-8结点结点结点结点+2=4;+2=4;V(G)=3V(G)=3个判定结点个判定结点个判定结点个判定结点+1=4+1=4。4671491011144.1.2第三步:导出测试用例根据上面的计算方法,可得出四个独立的根据上面的计算方法,可得出四个独立的路径:路径:路径路径1:4-14路径路径2:4-6-7-14路径路径3:4-6-8-10-13-4-14路径路径4:4-6-8-11-13-4-14根据上面的独立路径,去设计输入数根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径

73、。据,使程序分别执行到上面四条路径。4.1.2第四步:准备测试用例为了确保基本路径集中的每一条路径为了确保基本路径集中的每一条路径为了确保基本路径集中的每一条路径为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的的执行,根据判断结点给出的条件,选择适当的的执行,根据判断结点给出的条件,选择适当的的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面数据以保证某一条路径可以被测试到,满足上面数据以保证某一条路径可以被测试到,满足上面数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:例子基本路径集的测试用例是:例子基本路径集

74、的测试用例是:例子基本路径集的测试用例是:路径路径路径路径1 1:4-144-14输入数据:输入数据:输入数据:输入数据:iRecordNumiRecordNum0 0,或者取或者取或者取或者取iRecordNumiRecordNum00的某一个值的某一个值的某一个值的某一个值预期结果:预期结果:预期结果:预期结果:x x0 0路径路径路径路径2 2:4-6-7-144-6-7-14输入数据:输入数据:输入数据:输入数据:iRecordNumiRecordNum1,iType1,iType0 0预期结果:预期结果:预期结果:预期结果:x x2 24.1.2第四步:准备测试用例路径路径路径路径3

75、 3:4-6-8-10-13-4-144-6-8-10-13-4-14输入数据:输入数据:输入数据:输入数据:iRecordNumiRecordNum1,iType1,iType1 1预期结果:预期结果:预期结果:预期结果:x x1010路径路径路径路径4 4:4-6-8-11-13-4-144-6-8-11-13-4-14输入数据:输入数据:输入数据:输入数据:iRecordNumiRecordNum1,iType1,iType2 2预期结果:预期结果:预期结果:预期结果:x x20204.1.2白盒法白盒法循环测试循环测试是一种白盒测试技术,注重于循环构造的有效性。循环测试是一种白盒测试技

76、术,注重于循环构造的有效性。循环测试是一种白盒测试技术,注重于循环构造的有效性。循环测试是一种白盒测试技术,注重于循环构造的有效性。有四种循环:简单循环有四种循环:简单循环有四种循环:简单循环有四种循环:简单循环, ,串接循环,嵌套循环和不规则循环。串接循环,嵌套循环和不规则循环。串接循环,嵌套循环和不规则循环。串接循环,嵌套循环和不规则循环。简单循环嵌套循环串接循环不规则循环4.1.2白盒法白盒法循环测试简单循环:简单循环:简单循环:简单循环:下列测试集用于简单循环,其中下列测试集用于简单循环,其中下列测试集用于简单循环,其中下列测试集用于简单循环,其中n n是允许通过是允许通过是允许通过是

77、允许通过循环的最大次数。循环的最大次数。循环的最大次数。循环的最大次数。整个跳过循环;整个跳过循环;整个跳过循环;整个跳过循环;只有一次通过循环;只有一次通过循环;只有一次通过循环;只有一次通过循环;两次通过循环;两次通过循环;两次通过循环;两次通过循环;mm次通过循环,其中次通过循环,其中次通过循环,其中次通过循环,其中mnmn;n-1n-1,n,n+1n,n+1次通过循环。次通过循环。次通过循环。次通过循环。4.1.2白盒法白盒法循环测试嵌套循环:嵌套循环:嵌套循环:嵌套循环:如果将简单循环的测试方法用于嵌套循环,可能的如果将简单循环的测试方法用于嵌套循环,可能的如果将简单循环的测试方法用

78、于嵌套循环,可能的如果将简单循环的测试方法用于嵌套循环,可能的测试数就会随嵌套层数成几何级增加,这会导致不实际测试数就会随嵌套层数成几何级增加,这会导致不实际测试数就会随嵌套层数成几何级增加,这会导致不实际测试数就会随嵌套层数成几何级增加,这会导致不实际的测试数目,下面是一种减少测试数的方法:的测试数目,下面是一种减少测试数的方法:的测试数目,下面是一种减少测试数的方法:的测试数目,下面是一种减少测试数的方法:从最内层循环开始,将其它循环设置为最小值;从最内层循环开始,将其它循环设置为最小值;从最内层循环开始,将其它循环设置为最小值;从最内层循环开始,将其它循环设置为最小值;对最内层循环使用简

79、单循环,而使外层循环的迭代参数对最内层循环使用简单循环,而使外层循环的迭代参数对最内层循环使用简单循环,而使外层循环的迭代参数对最内层循环使用简单循环,而使外层循环的迭代参数(即循环计数)最小,并为范围外或排除的值增加其它(即循环计数)最小,并为范围外或排除的值增加其它(即循环计数)最小,并为范围外或排除的值增加其它(即循环计数)最小,并为范围外或排除的值增加其它测试;测试;测试;测试;由内向外构造下以个循环的测试,但其它的外层循环为由内向外构造下以个循环的测试,但其它的外层循环为由内向外构造下以个循环的测试,但其它的外层循环为由内向外构造下以个循环的测试,但其它的外层循环为最小值,并使其它的

80、嵌套循环为最小值,并使其它的嵌套循环为最小值,并使其它的嵌套循环为最小值,并使其它的嵌套循环为“ “典型典型典型典型” ”值;值;值;值;继续直到测试所有的循环。继续直到测试所有的循环。继续直到测试所有的循环。继续直到测试所有的循环。4.1.2白盒法白盒法循环测试串接循环:串接循环:串接循环:串接循环:如果串接循环的循环都彼此独立,可是使用如果串接循环的循环都彼此独立,可是使用如果串接循环的循环都彼此独立,可是使用如果串接循环的循环都彼此独立,可是使用嵌套的策略测试。但是如果两个循环串接起来,嵌套的策略测试。但是如果两个循环串接起来,嵌套的策略测试。但是如果两个循环串接起来,嵌套的策略测试。但

81、是如果两个循环串接起来,而第一个循环是第二个循环的初始值,则这两个而第一个循环是第二个循环的初始值,则这两个而第一个循环是第二个循环的初始值,则这两个而第一个循环是第二个循环的初始值,则这两个循环并不是独立的。如果循环不独立,则推荐使循环并不是独立的。如果循环不独立,则推荐使循环并不是独立的。如果循环不独立,则推荐使循环并不是独立的。如果循环不独立,则推荐使用的嵌套循环的方法进行测试。用的嵌套循环的方法进行测试。用的嵌套循环的方法进行测试。用的嵌套循环的方法进行测试。不规则循环:不规则循环:不规则循环:不规则循环:不能测试,尽量重新设计给结构化的程序结构不能测试,尽量重新设计给结构化的程序结构

82、不能测试,尽量重新设计给结构化的程序结构不能测试,尽量重新设计给结构化的程序结构后再进行测试。后再进行测试。后再进行测试。后再进行测试。4.1.3使用用例场景设计测试用例使用用例场景设计测试用例l用例场景是通过描述流经用例的用例场景是通过描述流经用例的路径来确定的过程,这个流经过路径来确定的过程,这个流经过程要从用例开始到结束遍历其中程要从用例开始到结束遍历其中所有的基本流和备选流。所有的基本流和备选流。4.1.3使用用例场景设计测试用例使用用例场景设计测试用例l现在的软件都是由事件触发来控现在的软件都是由事件触发来控制流程的,事件触发时的情景便制流程的,事件触发时的情景便形成了场景。形成了场

83、景。l将软件设计中的思想引入到软件将软件设计中的思想引入到软件测试中测试中l最早由最早由Rational公司提出公司提出4.1.3使用用例场景设计测试用例使用用例场景设计测试用例黑线:基本流黑线:基本流黑线:基本流黑线:基本流彩色线:备选流彩色线:备选流彩色线:备选流彩色线:备选流4.1.3可能的场景可能的场景l l场景一:基本流场景一:基本流场景一:基本流场景一:基本流l l场景二:基本流场景二:基本流场景二:基本流场景二:基本流 备选流备选流备选流备选流1 1l l场景三:基本流场景三:基本流场景三:基本流场景三:基本流 备选流备选流备选流备选流11备选流备选流备选流备选流2 2l l场景

84、四:基本流场景四:基本流场景四:基本流场景四:基本流 备选流备选流备选流备选流3 3l l场景五:基本流场景五:基本流场景五:基本流场景五:基本流 备选流备选流备选流备选流33备选流备选流备选流备选流1 1l l场景六:基本流场景六:基本流场景六:基本流场景六:基本流 备选流备选流备选流备选流33备选流备选流备选流备选流11备选流备选流备选流备选流22l l场景七:基本流场景七:基本流场景七:基本流场景七:基本流 备选流备选流备选流备选流4 4l l场景八:基本流场景八:基本流场景八:基本流场景八:基本流 备选流备选流备选流备选流33备选流备选流备选流备选流4 44.1.3ATM取款场景基本流

85、取款场景基本流l lATM处于就绪状态处于就绪状态l l1准备提款:客户将银行卡插入准备提款:客户将银行卡插入ATMl l2验证卡:验证卡:ATM读取卡信息读取卡信息l l3输入输入PIN:ATM要求的要求的PINl l4验证帐户和验证帐户和PIN:帐户和密码是否正确帐户和密码是否正确l l5ATM选项:选项:ATM显示本机上所有的选项显示本机上所有的选项4.1.3ATM取款场景基本流取款场景基本流l l6输入金额:要从输入金额:要从ATM中提取的金额中提取的金额l l7授权:授权:ATM将帐户、密码和金额提交银将帐户、密码和金额提交银行系统进行验证行系统进行验证l l8出钞:提供现金出钞:提

86、供现金l l9返回银行卡:银行卡被返回返回银行卡:银行卡被返回l l10收据:打印凭单收据:打印凭单l lATM就绪状态就绪状态4.1.3ATM取款场景备选流取款场景备选流l l备选流备选流1:银行卡无效:银行卡无效l l备选流备选流2:ATM内没有现金内没有现金l l备选流备选流3:ATM内现金不足内现金不足l l备选流备选流4:PIN有误有误l l备选流备选流5:帐户不存在:帐户不存在4.1.3ATM取款场景备选流取款场景备选流l l备选流备选流6:帐面金额不足:帐面金额不足l l备选流备选流7:达到每日最大提款额:达到每日最大提款额l l备选流备选流8:记录错误:记录错误l l备选流备选

87、流9:退出:退出l l备选流备选流10:暂停:暂停4.1.3ATM取款场景取款场景l l场景场景场景场景1 1:成功提款:成功提款:成功提款:成功提款基本流基本流基本流基本流l l场景场景场景场景2 2:没有现金:没有现金:没有现金:没有现金基本流基本流基本流基本流备选流备选流备选流备选流2 2l l场景场景场景场景3 3:现金不足:现金不足:现金不足:现金不足基本流基本流基本流基本流备选流备选流备选流备选流3 3l l场景场景场景场景4 4:密码有误:密码有误:密码有误:密码有误基本流基本流基本流基本流备选流备选流备选流备选流4 4l l场景场景场景场景5 5:密码有误:密码有误:密码有误:

88、密码有误基本流基本流基本流基本流备选流备选流备选流备选流4 4l l场景场景场景场景6 6:帐户不存在:帐户不存在:帐户不存在:帐户不存在基本流基本流基本流基本流 备选流备选流备选流备选流5 5l l场景场景场景场景7 7:余额不足:余额不足:余额不足:余额不足基本流基本流基本流基本流备选流备选流备选流备选流6 6l l场景场景场景场景8 8:达到每日最大题款数:达到每日最大题款数:达到每日最大题款数:达到每日最大题款数 基本流基本流基本流基本流 备选流备选流备选流备选流7 74.1.3测试用例测试用例V:validV:valid有效有效有效有效;I:invalidI:invalid无效无效无

89、效无效; ;n/a:n/a:不适用不适用不适用不适用4.1.3测试用例测试用例4.1.4黑盒测试黑盒测试l l等价分类法等价分类法l l边缘值分析法边缘值分析法l l因果图法因果图法l l错误推测法错误推测法4.1.4黑盒测试黑盒测试4.1.4等价类划分等价类划分l l被测试系统的输入和输出可以被分组或划被测试系统的输入和输出可以被分组或划分为相关的组或类分为相关的组或类l l步骤:步骤:1.划分等价类划分等价类2.选择测试用例选择测试用例4.1.4等价类划分实例等价类划分实例l la=X1=dl le=x2=g4.1.4等价类划分等价类划分-弱一般等价类弱一般等价类l l弱一般等价类测试通过

90、使用一个测试弱一般等价类测试通过使用一个测试用例中的每个等价类的一个变量实现用例中的每个等价类的一个变量实现l l基于单缺陷假设基于单缺陷假设 单缺陷假设:失效极少有两个(或单缺陷假设:失效极少有两个(或多个)缺陷的同时发生引起的。多个)缺陷的同时发生引起的。4.1.4等价类划分等价类划分-弱一般等价类弱一般等价类4.1.4等价类划分等价类划分-强一般等价类强一般等价类l l强一般等价类测试基于多缺陷假设,因此强一般等价类测试基于多缺陷假设,因此需要等价笛卡儿积的每个元素对应的测试需要等价笛卡儿积的每个元素对应的测试用例用例l l笛卡儿积可以保证两种意义上的完备性:笛卡儿积可以保证两种意义上的

91、完备性:l l1、覆盖所有的等价类、覆盖所有的等价类l l2、可能的输入组合、可能的输入组合4.1.4等价类划分等价类划分-强一般等价强一般等价类类4.1.4等价类划分等价类划分-弱健壮等价类弱健壮等价类l l健壮:考虑了无效值健壮:考虑了无效值l l弱:基于单缺陷假设弱:基于单缺陷假设4.1.4等价类划分等价类划分-弱健壮等价类弱健壮等价类4.1.4等价类划分等价类划分-强健壮等价类强健壮等价类l l健壮:考虑了无效值健壮:考虑了无效值l l强:基于多缺陷假设强:基于多缺陷假设4.1.4等价类划分等价类划分-强健壮等价类强健壮等价类4.1.4测试用例实例测试用例实例l l程序程序TRANLE

92、输入三个整数,它们表输入三个整数,它们表示一个三角形的三条边长,该程序产示一个三角形的三条边长,该程序产生一个结果指出三角形是等腰三角形、生一个结果指出三角形是等腰三角形、等边三角形还是不等边三角形等边三角形还是不等边三角形请利用请利用1515分钟分钟进行测试用例进行测试用例设计设计4.1.4测试用例实例(续)测试用例实例(续)l l合理的不等边三角形(输入数据为合理的不等边三角形(输入数据为1、2、3或或2、5、10等不能算这一类)等不能算这一类)l l合理的等边三角形(输入数据为合理的等边三角形(输入数据为0、0、0不算)不算)l l合理的等腰三角形(输入数据为合理的等腰三角形(输入数据为

93、2、2、4等不能算这一类)等不能算这一类)l l等腰三角形的三种排列次序等腰三角形的三种排列次序(3(3,3 3,4;34;3,4 4,3;43;4,3 3,3) 3) 4.1.4测试用例实例(续)测试用例实例(续)l l三个正数,其中两个之和等于第三个三个正数,其中两个之和等于第三个l l上一种情况的三种排列次序上一种情况的三种排列次序l l三个正数,其中两个之和小于第三个三个正数,其中两个之和小于第三个l l上一种情况的三种排列次序上一种情况的三种排列次序l l输入数据含有零值输入数据含有零值l l输入数据含有负数输入数据含有负数4.1.4测试用例实例(续)测试用例实例(续)l l输入数据

94、含有非整数值输入数据含有非整数值l l三个数均为零三个数均为零l l输入数据不是三个数输入数据不是三个数l l输入数据中有字符输入数据中有字符4.1.4功能测试等价类划分功能测试等价类划分l l划划分分等等价价类类在在很很大大程程度度上上是是试试探探性性的的,下下面几点可供参考面几点可供参考: :l l1 1)如如果果某某个个输输入入条条件件说说明明了了输输入入值值的的范范围围,如如“数数据据值值”是是从从1 1到到999999,则则可可划划分分一一个个合合理理等等价价类类:大大于于等等于于1 1而而小小于于等等于于999999的的数数和和两两个个不不合合理理等等价价类类:小小于于1 1的的数

95、数,以及大于以及大于999999的数。的数。4.1.4功能测试等价类划分功能测试等价类划分l l2)2)如如果果某某个个输输入入条条件件说说明明了了输输入入数数据据的的个个数数, ,如如每每个个学学生生可可以以选选修修1 1至至3 3门门课课程程,则则可可划划分分一一个个合合理理等等价价类类:选选修修1313门门课课程程和和两两个个不不合合理理等等价价类类:没没选选修修课课程程,以以及超过及超过3 3门课程。门课程。4.1.4功能测试等价类划分功能测试等价类划分l l3 3)如如果果一一个个输输入入条条件件说说明明了了一一个个“必必须须成成立立”的的情情况况,如如标标识识符符的的第第一一个个字

96、字符符必必须须是是字字母母,则则可可划划分分一一个个合合理理等等价价类类:第第一一字字符符是是字字母母和和一一个个不不合合理理等等价价类类第第一一字字符不是字母。符不是字母。4.1.4功能测试等价类划分功能测试等价类划分l l4 4)如如果果某某个个输输入入条条件件说说明明了了输输入入数数据据的的一一组组可可能能的的值值,而而且且认认为为程程序序是是用用不不同同的的方方式式处处理理每每一一种种值值的的,如如职职称称的的输输入入值值可可以以是是助助教教、讲讲师师、副副教教授授和和教教授授4 4种种,则则可可为为每每一一种种值值划划分分一一个个合合理理等等价价类类:助助教教、讲讲师师、副副教教授授

97、和和教教授授,并并划划分分一一个个不不合合理理等价类:上述等价类:上述4 4种职称之外的任意值。种职称之外的任意值。4.1.4功能测试等价类划分功能测试等价类划分l l5)如果认为程序将按不同的方式来处理)如果认为程序将按不同的方式来处理某个等价类中的各种测试用例,则应将这某个等价类中的各种测试用例,则应将这个等价类再分成几个更小的等价类。如上个等价类再分成几个更小的等价类。如上面第面第4)就是将一个合理等价类又分成助就是将一个合理等价类又分成助教、讲师等教、讲师等4个等价类。个等价类。4.1.4等价类实例三角形问题等价类实例三角形问题l lR1=:等边三角形等边三角形l lR2=:等腰三角形

98、等腰三角形l lR3=:不等边三角形不等边三角形l lR4=:不构成三角形不构成三角形4.1.4等价类划分实例等价类划分实例测试测试用例用例号号旅馆旅馆收费收费被测分区被测分区预期输出预期输出1500旅馆收费旅馆收费=70正确正确2-25旅馆收费旅馆收费70错误信息错误信息4.1.4功能测试等价类划分功能测试等价类划分l l1 1 1 1)为每个等价类编号。为每个等价类编号。为每个等价类编号。为每个等价类编号。l l2 2 2 2)设设设设计计计计一一一一个个个个新新新新的的的的测测测测试试试试用用用用例例例例,使使使使它它它它能能能能包包包包括括括括尽尽尽尽可可可可能能能能多多多多的的的的尚

99、尚尚尚未未未未被被被被包包包包括括括括的的的的合合合合理理理理等等等等价价价价类类类类; ; ; ;重重重重复复复复做做做做这这这这一一一一步步步步,直至这些测试用例已包含所有的合理等价类。直至这些测试用例已包含所有的合理等价类。直至这些测试用例已包含所有的合理等价类。直至这些测试用例已包含所有的合理等价类。l l3 3)设计一个新的测试用例,使它包括一个设计一个新的测试用例,使它包括一个设计一个新的测试用例,使它包括一个设计一个新的测试用例,使它包括一个( (而且而且而且而且仅仅一个仅仅一个仅仅一个仅仅一个) )尚未被包括的不合理等价类,重复做尚未被包括的不合理等价类,重复做尚未被包括的不合

100、理等价类,重复做尚未被包括的不合理等价类,重复做这一步,直至测试用例己包括所有的不合理等价这一步,直至测试用例己包括所有的不合理等价这一步,直至测试用例己包括所有的不合理等价这一步,直至测试用例己包括所有的不合理等价类。类。类。类。 4.1.4功能测试等价类划分功能测试等价类划分考察一个把数字串转变成整数的函数。用二进制考察一个把数字串转变成整数的函数。用二进制考察一个把数字串转变成整数的函数。用二进制考察一个把数字串转变成整数的函数。用二进制补码表示整数,机器字长补码表示整数,机器字长补码表示整数,机器字长补码表示整数,机器字长16161616位,即整数范围最小位,即整数范围最小位,即整数范

101、围最小位,即整数范围最小为为为为- 32768- 32768- 32768- 32768,最大为,最大为,最大为,最大为32767327673276732767。函数及参数的说明如。函数及参数的说明如。函数及参数的说明如。函数及参数的说明如下:下:下:下: function function function function StrToIntStrToIntStrToIntStrToInt ( ( ( (dstrdstrdstrdstr : : : : shortstrshortstrshortstrshortstr) : ) : ) : ) : integer;integer;intege

102、r;integer; type type type type shortstrshortstrshortstrshortstr = array 1.6 of char; = array 1.6 of char; = array 1.6 of char; = array 1.6 of char;要求被处理的数字串是右对齐的,即在少于要求被处理的数字串是右对齐的,即在少于要求被处理的数字串是右对齐的,即在少于要求被处理的数字串是右对齐的,即在少于6 6 6 6个字个字个字个字符的串左补空格。负号在最高位数字左边一位。符的串左补空格。负号在最高位数字左边一位。符的串左补空格。负号在最高位数字左边一位

103、。符的串左补空格。负号在最高位数字左边一位。试用等价划分法设计测试方案。试用等价划分法设计测试方案。试用等价划分法设计测试方案。试用等价划分法设计测试方案。4.1.4功能测试等价类划分功能测试等价类划分首先根据规格说明划分等价类。考虑到首先根据规格说明划分等价类。考虑到首先根据规格说明划分等价类。考虑到首先根据规格说明划分等价类。考虑到PASCALPASCALPASCALPASCAL编译器的固编译器的固编译器的固编译器的固有检错功能,测试时不需要使用长度不等于有检错功能,测试时不需要使用长度不等于有检错功能,测试时不需要使用长度不等于有检错功能,测试时不需要使用长度不等于6 6 6 6的数组,

104、也的数组,也的数组,也的数组,也不需要用非字符数组类型的参数。不需要用非字符数组类型的参数。不需要用非字符数组类型的参数。不需要用非字符数组类型的参数。有效输入类:有效输入类:有效输入类:有效输入类:16161616个数字字符组成的数字串(最高位非个数字字符组成的数字串(最高位非个数字字符组成的数字串(最高位非个数字字符组成的数字串(最高位非0 0 0 0););););最高位为最高位为最高位为最高位为0 0 0 0的数字串;的数字串;的数字串;的数字串; 最高位左邻负号的数字串;最高位左邻负号的数字串;最高位左邻负号的数字串;最高位左邻负号的数字串;无效输入类:无效输入类:无效输入类:无效输

105、入类:空字符串(空字符串(空字符串(空字符串(6 6 6 6位空格);位空格);位空格);位空格);左边补位的既非左边补位的既非左边补位的既非左边补位的既非0 0 0 0亦非空格;亦非空格;亦非空格;亦非空格;最高位右边含有空格;最高位右边含有空格;最高位右边含有空格;最高位右边含有空格;最高位右边含有其它非数字字符;最高位右边含有其它非数字字符;最高位右边含有其它非数字字符;最高位右边含有其它非数字字符;负号与最高位间有空格;负号与最高位间有空格;负号与最高位间有空格;负号与最高位间有空格;4.1.4功能测试等价类划分功能测试等价类划分有效输出类:有效输出类:在合法范围内的负整数;在合法范围

106、内的负整数;10110 0 ;在合法范围内的正整数;在合法范围内的正整数;无效输出类:无效输出类:小于小于-32768的负整数;的负整数;大于大于32767正整数。正整数。12134.1.4功能测试等价类划分功能测试等价类划分下面根据等价划分,设计出一套测试方案:下面根据等价划分,设计出一套测试方案:16个数字字符组成的数字串,最高位非个数字字符组成的数字串,最高位非0;输出;输出为合法正整数。为合法正整数。输入:输入:1预期输出:预期输出:1最高位为最高位为0的数字串,输出为合法正整数。的数字串,输出为合法正整数。输入:输入:01预期输出:预期输出:14.1.4功能测试等价类划分功能测试等价

107、类划分负号与最高位数字相临;输出合法负整数。负号与最高位数字相临;输出合法负整数。输入:输入: -1 -1 预期输出:预期输出:-1-1最高位为最高位为0 0;输出;输出0 0。输入:输入: 0 0 预期输出:预期输出:0 0 太小的负整数。太小的负整数。输入:输入:-123456789 -123456789 预期输出:预期输出:“错误,无效输入错误,无效输入”太大的正整数。太大的正整数。输入:输入:123456789 123456789 预期输出:预期输出:“错误,无效输错误,无效输入入”4.1.4功能测试等价类划分功能测试等价类划分空字符串。空字符串。空字符串。空字符串。输入:输入:输入:

108、输入: 预期输出:预期输出:预期输出:预期输出:“错误:没有数字错误:没有数字错误:没有数字错误:没有数字”左边补位的非左边补位的非0 0也非空格。也非空格。输入:输入: q 1478 q 1478 预期输出:预期输出:“错误:非法填充错误:非法填充”最高位右边也含空格。最高位右边也含空格。输入:输入: 0 123 0 123 预期输出:预期输出:“错误:无效输入错误:无效输入”最高位右边含其它非数字字符。最高位右边含其它非数字字符。输入:输入: 1a123 1a123 预期输出:预期输出:“错误:无效输入错误:无效输入” 负号与最高位间有空格。负号与最高位间有空格。输入:输入: - 125

109、- 125 预期输出:预期输出:“错误:负号位置非法错误:负号位置非法”114.1.4边界值分析边界值分析l l错误更可能出现在输入变量的极值附近错误更可能出现在输入变量的极值附近l lMinMin+NomMax-Maxl l考虑输出值考虑输出值l l1.划分等价类划分等价类2.选择测试用例选择测试用例4.1.4边界值分析边界值分析4.1.4边界值分析健壮性测试边界值分析健壮性测试4.1.4边界值测试边界值测试l l一、如果输入条件规定了值的范围,一、如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为以及刚刚超过这个范围

110、边界的值作为测试输入数据;测试输入数据;4.1.4边界值测试边界值测试l l二、如果输入条件规定了值的个数,二、如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个则用最大个数、最小个数、比最大个数多数多1个个、比最小个数少、比最小个数少1个的数做为个的数做为测试数据;测试数据;l l三、根据规格说明的每一个输出条件,三、根据规格说明的每一个输出条件,使用规则一;使用规则一;4.1.4边界值测试边界值测试l l四、根据规格说明的每一个输出条件,四、根据规格说明的每一个输出条件,使用规则二;使用规则二;l l五、如果程序的规格说明给出的输入五、如果程序的规格说明给出的输入域或输出域是有序

111、集合(如有序表、域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例;个和最后一个元素作为测试用例;4.1.4边界值测试边界值测试l l六、如果程序用了一个内部结构,应六、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作该选取这个内部数据结构的边界值作为测试用例;为测试用例;七、分析规格说明,找出其他可能的七、分析规格说明,找出其他可能的边界条件。边界条件。4.1.4边界值分析实例边界值分析实例1测试测试用例用例号号旅馆收旅馆收费费被测边界被测边界预期输出预期输出123-1010错误信息错误信息错误信息错误信息

112、正确正确45669707170正确正确正确正确错误信息错误信息4.1.4边界值分析实例边界值分析实例2l l假假设设商商店店货货品品价价格格(R)皆皆不不大大於於100元元(且且为为整整数数),若若顾顾客客付付款款在在100元元内内(P),求求找找给给顾顾客客之之最最少少货币货币个(张)个(张)数数?(货货币币面面值值50元元(N50),10元元(N10),5元元(N5),1元元(N1)四四种种)4.1.4边界值分析实例边界值分析实例2l l分分分分 析析析析 输输输输 入入入入 的的的的 情情情情 形形形形 R100R1000R=1000R=100R=0R100P100R=P=100R=P=

113、100PRPN10=1N10=0N5=1N5=04N1=1N1=04.1.4边界值分析实例边界值分析实例2l lRR1,RR2,RR3表示应找的钱数表示应找的钱数l lR100l lR100P=50RR2=10RR3=54.1.4边界值分析实例边界值分析实例2l l输入输出条件组合出可能的情形输入输出条件组合出可能的情形: :l lR100l lR=00R1000R=100,PR0R=100,R=P=100,RR=500R=100,R=P=100,RR=490R=100,R=P=100,RR=104.1.4边界值分析实例边界值分析实例2l l0R=100,R=P=100,RR=90R=100,

114、R=P=100,RR=50R=100,R=P=100,RR=40R=100,R=P=100,RR=10R=100,R=P=100,RR=04.1.4边界值分析实例边界值分析实例2l l1.1.货品价格货品价格货品价格货品价格=101=101l l2.2.货品价格货品价格货品价格货品价格=0=0l l3.3.货品价格货品价格货品价格货品价格=-1=-1l l4.4.货品价格货品价格货品价格货品价格=100,=100,付款金额付款金额付款金额付款金额=101=101l l5.5.货品价格货品价格货品价格货品价格=100,=100,付款金额付款金额付款金额付款金额=99=99l l6.6.货品价格货

115、品价格货品价格货品价格=50,=50,付款金额付款金额付款金额付款金额=100=100l l7.7.货品价格货品价格货品价格货品价格=51,=51,付款金额付款金额付款金额付款金额=100=1004.1.4边界值分析实例边界值分析实例2l l8.货品价格货品价格=90,付款金额付款金额=100l l9.货品价格货品价格=91,付款金额付款金额=100l l10.货品价格货品价格=95,付款金额付款金额=100l l11.货品价格货品价格=96,付款金额付款金额=100l l12.货品价格货品价格=99,付款金额付款金额=100l l13.货品价格货品价格=100,付款金额付款金额=1004.1

116、.4边界值分析实例边界值分析实例2l l见附件见附件4.1.4黑盒测试黑盒测试l lNextDate函数是一个有三个变量的(年、函数是一个有三个变量的(年、月、日)的函数,函数返回输入日期后面月、日)的函数,函数返回输入日期后面的那个日期。的那个日期。 Y:1812=年份年份=2012 M:1=M=12 D:1=D=31l l请用黑盒测试设计其测试用例请用黑盒测试设计其测试用例4.1.5因果图法因果图法l l等价分类法和边界值分析法都没有考虑输等价分类法和边界值分析法都没有考虑输入情况的各种组合,也没有考虑各个输入入情况的各种组合,也没有考虑各个输入情况之间的相互制约关系情况之间的相互制约关系

117、l l因果图方法的思路:从用自然语言书写的因果图方法的思路:从用自然语言书写的需求规格说明书中找出因(输入条件需求规格说明书中找出因(输入条件)和和果(输出或者程序状态的改变),通过因果(输出或者程序状态的改变),通过因果图转换为判定表果图转换为判定表4.1.5因果图法的几个步骤因果图法的几个步骤l l分析需求规格说明书,找出原因和结果分析需求规格说明书,找出原因和结果l l分析需求规格说明书中的语义内容,并将分析需求规格说明书中的语义内容,并将其表示成连接各个原因与各个结果的其表示成连接各个原因与各个结果的“因因果图果图”l l对原因和结果的组合情况不可能出现的,对原因和结果的组合情况不可能

118、出现的,在因果图上使用若干特殊符号表明约束条在因果图上使用若干特殊符号表明约束条件件4.1.5因果图法的几个步骤(续)因果图法的几个步骤(续)l l把因果图转换成判定表把因果图转换成判定表l l把判定规则把判定规则(每一列每一列)转换成测试用例转换成测试用例4.1.5因果图的基本图形符号因果图的基本图形符号l l在因果图中用在因果图中用Ci表示原因,表示原因,Ei表示结果,表示结果,各节点表示状态。各节点表示状态。4.1.5因果图的基本图形符号说明因果图的基本图形符号说明l l恒等:若原因出现,则结果出现;若原因不出现,恒等:若原因出现,则结果出现;若原因不出现,恒等:若原因出现,则结果出现;

119、若原因不出现,恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。则结果也不出现。则结果也不出现。则结果也不出现。l l非:若原因出现,则结果不出现;若原因不出现,非:若原因出现,则结果不出现;若原因不出现,非:若原因出现,则结果不出现;若原因不出现,非:若原因出现,则结果不出现;若原因不出现,则结果出现。则结果出现。则结果出现。则结果出现。l l或:若几个原因中有或:若几个原因中有或:若几个原因中有或:若几个原因中有1 1个出现,则结果出现;若个出现,则结果出现;若个出现,则结果出现;若个出现,则结果出现;若几个原因都不出现,则结果不出现。几个原因都不出现,则结果不出现。几个原因都不

120、出现,则结果不出现。几个原因都不出现,则结果不出现。l l与:若几个原因都出现,结果才出现;若其中有与:若几个原因都出现,结果才出现;若其中有与:若几个原因都出现,结果才出现;若其中有与:若几个原因都出现,结果才出现;若其中有1 1个原因不出现,则结果不出现。个原因不出现,则结果不出现。个原因不出现,则结果不出现。个原因不出现,则结果不出现。4.1.5因果图的约束符号因果图的约束符号4.1.5因果图的约束符号说明因果图的约束符号说明l l异:表示几个原因不会同时成立,最多有一个成异:表示几个原因不会同时成立,最多有一个成异:表示几个原因不会同时成立,最多有一个成异:表示几个原因不会同时成立,最

121、多有一个成立立立立l l或:多个原因中至少有一个必须成立或:多个原因中至少有一个必须成立或:多个原因中至少有一个必须成立或:多个原因中至少有一个必须成立l l唯一:表示各种原因中必须有一个,且仅有一个唯一:表示各种原因中必须有一个,且仅有一个唯一:表示各种原因中必须有一个,且仅有一个唯一:表示各种原因中必须有一个,且仅有一个成立成立成立成立l l要求:表示当原因要求:表示当原因要求:表示当原因要求:表示当原因a a出现时,出现时,出现时,出现时,b b也必须出现。也必须出现。也必须出现。也必须出现。a a出出出出现时,不可能现时,不可能现时,不可能现时,不可能b b不出现。不出现。不出现。不出

122、现。l l强制:当强制:当强制:当强制:当a a是是是是1 1时,时,时,时,b b必须是必须是必须是必须是00;当;当;当;当a a是是是是0 0时,时,时,时,b b必必必必须是须是须是须是1 14.1.5因果图实例讲解因果图实例讲解l l某软件规格说明中包含这样的要求:某软件规格说明中包含这样的要求:某软件规格说明中包含这样的要求:某软件规格说明中包含这样的要求: 第一列字符必须是第一列字符必须是第一列字符必须是第一列字符必须是A A或或或或B B,第二列字符必须是一个数字,第二列字符必须是一个数字,第二列字符必须是一个数字,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一

123、列字符不正确,在此情况下进行文件的修改。但如果第一列字符不正确,在此情况下进行文件的修改。但如果第一列字符不正确,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息则给出信息则给出信息则给出信息L;L;如果第二列字符不是数字,则给出信息如果第二列字符不是数字,则给出信息如果第二列字符不是数字,则给出信息如果第二列字符不是数字,则给出信息MM。分开原因和结果分开原因和结果分开原因和结果分开原因和结果 原因:原因:原因:原因:1-1-第一列字符是第一列字符是第一列字符是第一列字符是A;A;2-2-第一列字符是第一列字符是第一列字符是第一列字符是B;B;3-3-第二列字符是一数字。第二列字

124、符是一数字。第二列字符是一数字。第二列字符是一数字。结果:结果:结果:结果:21-21-修改文件修改文件修改文件修改文件; ;22-22-给出信息给出信息给出信息给出信息L;L;23-23-给出信息给出信息给出信息给出信息MM。4.1.5因果图实例讲解因果图实例讲解4.1.5因果图实例讲解因果图实例讲解l l有一个处理单价为有一个处理单价为有一个处理单价为有一个处理单价为5 5 5 5角钱的饮料的自动售货机软角钱的饮料的自动售货机软角钱的饮料的自动售货机软角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:件测试用例的设计。其规格说明如下:件测试用例的设计。其规格说明如下:件测试用例的设

125、计。其规格说明如下:若投入若投入若投入若投入5 5 5 5角钱或角钱或角钱或角钱或1 1 1 1元钱的硬币,元钱的硬币,元钱的硬币,元钱的硬币, 按下按下按下按下橙汁或橙汁或橙汁或橙汁或啤酒的按钮,则相应的饮料就送出来啤酒的按钮,则相应的饮料就送出来啤酒的按钮,则相应的饮料就送出来啤酒的按钮,则相应的饮料就送出来. . . .若售若售若售若售货机没有零钱找,则一个显示零钱找完的红货机没有零钱找,则一个显示零钱找完的红货机没有零钱找,则一个显示零钱找完的红货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入灯亮,这时在投入灯亮,这时在投入灯亮,这时在投入1 1 1 1元硬币并按下按钮后,饮料元

126、硬币并按下按钮后,饮料元硬币并按下按钮后,饮料元硬币并按下按钮后,饮料不送出来而且不送出来而且不送出来而且不送出来而且1 1 1 1元硬币也退出来;若有零钱找,元硬币也退出来;若有零钱找,元硬币也退出来;若有零钱找,元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同则显示零钱找完的红灯灭,在送出饮料的同则显示零钱找完的红灯灭,在送出饮料的同则显示零钱找完的红灯灭,在送出饮料的同时退还时退还时退还时退还5 5 5 5角硬币。角硬币。角硬币。角硬币。4.1.5因果图实例讲解因果图实例讲解(1) (1) (1) (1) 分析这一段说明,列出原因和结果分析这一段说明,列出原因和结果分析

127、这一段说明,列出原因和结果分析这一段说明,列出原因和结果原因原因原因原因: 1. : 1. : 1. : 1. 售货机有零钱找售货机有零钱找售货机有零钱找售货机有零钱找 2. 2. 2. 2. 投入投入投入投入1 1 1 1元硬币元硬币元硬币元硬币 3. 3. 3. 3. 投入投入投入投入5 5 5 5角硬币角硬币角硬币角硬币 4. 4. 4. 4. 按下橙汁按钮按下橙汁按钮按下橙汁按钮按下橙汁按钮 5. 5. 5. 5. 按下啤酒按钮按下啤酒按钮按下啤酒按钮按下啤酒按钮建立中间结点,表示处理中间状态建立中间结点,表示处理中间状态建立中间结点,表示处理中间状态建立中间结点,表示处理中间状态11

128、. 11. 11. 11. 投入投入投入投入1 1 1 1元硬币且按下饮料按钮元硬币且按下饮料按钮元硬币且按下饮料按钮元硬币且按下饮料按钮12. 12. 12. 12. 按下橙汁或啤酒的按钮按下橙汁或啤酒的按钮按下橙汁或啤酒的按钮按下橙汁或啤酒的按钮13. 13. 13. 13. 应当找应当找应当找应当找5 5 5 5角零钱并且售货机有零钱找角零钱并且售货机有零钱找角零钱并且售货机有零钱找角零钱并且售货机有零钱找14. 14. 14. 14. 钱已付清钱已付清钱已付清钱已付清4.1.5因果图实例讲解因果图实例讲解结果:结果:结果:结果: 21. 21. 21. 21. 售货机零钱找完灯亮售货机

129、零钱找完灯亮售货机零钱找完灯亮售货机零钱找完灯亮 22. 22. 22. 22. 退还退还退还退还1 1 1 1元硬币元硬币元硬币元硬币 23. 23. 23. 23. 退还退还退还退还5 5 5 5角硬币角硬币角硬币角硬币 24. 24. 24. 24. 送出橙汁饮料送出橙汁饮料送出橙汁饮料送出橙汁饮料 25. 25. 25. 25. 送出啤酒饮料送出啤酒饮料送出啤酒饮料送出啤酒饮料(2) (2) (2) (2) 画出因果图。所有原因结点列在左画出因果图。所有原因结点列在左画出因果图。所有原因结点列在左画出因果图。所有原因结点列在左边,所有结果结点列在右边。边,所有结果结点列在右边。边,所有

130、结果结点列在右边。边,所有结果结点列在右边。 (3) (3) (3) (3) 由于由于由于由于 2 2 2 2 与与与与 3 3 3 3 ,4 4 4 4 与与与与 5 5 5 5 不能同时发生,不能同时发生,不能同时发生,不能同时发生,分别加上约束条件分别加上约束条件分别加上约束条件分别加上约束条件E E E E。(4) (4) (4) (4) 因果图因果图因果图因果图因果图因果图因果图因果图4.1.6侵入测试侵入测试l l出于测试的目的,侵入测试需要修改被测出于测试的目的,侵入测试需要修改被测试系统及其行为试系统及其行为l l这种修改均不能提交给最终用户这种修改均不能提交给最终用户l l谨

131、慎使用谨慎使用4.1.7错误猜测错误猜测l l有关被测试系统的知识,如设计方法和实有关被测试系统的知识,如设计方法和实现技术现技术l l有关的早期测试阶段的结果的知识有关的早期测试阶段的结果的知识l l测试类似或相关系统的经验测试类似或相关系统的经验l l典型的实现错误的知识(被零除)典型的实现错误的知识(被零除)l l通用的测试经验规则通用的测试经验规则4.2白盒测试的优缺点白盒测试的优缺点l l优点:优点: 迫使测试人员考虑软件的实现迫使测试人员考虑软件的实现 可以检测代码中的每条分支和路径可以检测代码中的每条分支和路径 解释隐藏在代码中的错误解释隐藏在代码中的错误 对代码的测试比较彻底对

132、代码的测试比较彻底 最优化最优化4.2白盒测试的优缺点白盒测试的优缺点l l缺点:缺点: 昂贵昂贵 有遗漏的路径有遗漏的路径4.2黑盒测试的优缺点黑盒测试的优缺点l l优点:优点: 效率高效率高 测试人员不需要了解细节测试人员不需要了解细节 测试人员和编程人员彼此独立测试人员和编程人员彼此独立 从用户的角度进行测试从用户的角度进行测试 需求完成后,马上可以设计测试用例需求完成后,马上可以设计测试用例4.2黑盒测试的优缺点黑盒测试的优缺点l l缺点:缺点: 只有少部分可能的输入被测到只有少部分可能的输入被测到 依赖于完整的需求文档依赖于完整的需求文档 丢失路径丢失路径 无法针对特定的程序无法针对

133、特定的程序4.2测试用例设计方法选择的综合策略测试用例设计方法选择的综合策略l l在任何情况下必须使用边界值分析方法在任何情况下必须使用边界值分析方法,经验表明经验表明,用这种方法设计出测试用例用这种方法设计出测试用例,发发现程序错误的能力最强现程序错误的能力最强l l必要时用等价类划分方法补充测试用例必要时用等价类划分方法补充测试用例l l用错误推测法追加测试用例用错误推测法追加测试用例l l如果程序的功能说明书中有输入条件的组如果程序的功能说明书中有输入条件的组合情况合情况,考虑因果图法考虑因果图法4.3自动化功能测试自动化功能测试4.3自动化功能测试工具自动化功能测试工具l lWinru

134、nner4.3Winrunnerl lWinrunner是基于是基于Windows平台的功能测平台的功能测试工具试工具l l自动处理测试过程自动处理测试过程l l录制录制/回放回放4.3Winrunner工作原理工作原理l l当点击当点击GUI时,时,WR将用类将用类C的测试脚本语的测试脚本语言(言(TSL)生成一个测试脚本)生成一个测试脚本l l测试人员可以修改脚本测试人员可以修改脚本4.3Winrunner测试过程测试过程l l创建创建GUImapl l创建测试创建测试l l调试测试调试测试l l执行测试执行测试l l查看测试结果查看测试结果l l报告错误报告错误4.3GUIMapl lG

135、UIMap用于保存用于保存GUI对象对象4.3录制测试脚本录制测试脚本l lWR已录制的方式,快速建立自动测试脚已录制的方式,快速建立自动测试脚本。本。4.3撰写测试脚本撰写测试脚本l l除了以录制的方式产生测试脚本之外,还除了以录制的方式产生测试脚本之外,还可以使用函数产生器,在测试脚本中插入可以使用函数产生器,在测试脚本中插入函数。函数。4.3建立数据驱动测试脚本建立数据驱动测试脚本l l测试脚本建立完毕后,很有可能用多组不测试脚本建立完毕后,很有可能用多组不同的数据,去执行测试脚本。为了达到此同的数据,去执行测试脚本。为了达到此目的,需要将测试脚本转换为数据驱动测目的,需要将测试脚本转换

136、为数据驱动测试脚本。试脚本。4.3文字检查点文字检查点l l验证某个值是否在一定范围之内验证某个值是否在一定范围之内l l计算数值是否正确计算数值是否正确4.4非功能测试非功能测试l l配置配置配置配置/ /安装测试安装测试安装测试安装测试安装安装安装安装 / / / / 反安装测试的目的:避免反安装测试的目的:避免反安装测试的目的:避免反安装测试的目的:避免“ “大风浪都挺过来了,却在阴沟里翻了船大风浪都挺过来了,却在阴沟里翻了船大风浪都挺过来了,却在阴沟里翻了船大风浪都挺过来了,却在阴沟里翻了船” ” 目目目目前前前前市市市市面面面面上上上上有有有有非非非非常常常常流流流流行行行行的的的的

137、、专专专专门门门门制制制制作作作作安安安安装装装装/ / / /反反反反安安安安装装装装程程程程序序序序的的的的一一一一些些些些工工工工具具具具,如如如如Install Install Install Install ShelledShelledShelledShelled。制作安装制作安装制作安装制作安装/ / / /反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作:反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作:反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作:反安装程序不再是件难事,关键是不要麻痹大意。主要测试工作: l l(1 1 1 1)至少在标准配置和最低

138、配置两种环境下测试;)至少在标准配置和最低配置两种环境下测试;)至少在标准配置和最低配置两种环境下测试;)至少在标准配置和最低配置两种环境下测试;l l(2 2 2 2)如如如如果果果果有有有有安安安安装装装装界界界界面面面面,应应应应当当当当尝尝尝尝试试试试各各各各种种种种选选选选项项项项,如如如如选选选选择择择择“ “全全全全部部部部” ”、“ “部部部部分分分分” ”、“ “升升升升级级级级” ”等。等。等。等。l l兼容性测试兼容性测试兼容性测试兼容性测试兼容性是指不同产品(或者新老产品)相互交换信息的能力。例如两个字处兼容性是指不同产品(或者新老产品)相互交换信息的能力。例如两个字处

139、理软件的文件格式兼容,那么它们都可以操作对方的文件,这种能力对用户理软件的文件格式兼容,那么它们都可以操作对方的文件,这种能力对用户很有好处。很有好处。兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则市场将被瓜分。被兼容,否则市场将被瓜分。l l文档和帮助测试文档和帮助测试文档和帮助测试文档和帮助测试这种测试是检查用户文档这种测试是检查用户文档(如用户手册如用户手册)的清晰性和精确性。的清晰性和精确性。4.4非功能测试非功能测试l l健壮性测试健壮性测试健壮性测试健壮性测试健壮性是指在异常情况下,软

140、件还能正常运行的能力。健壮性健壮性是指在异常情况下,软件还能正常运行的能力。健壮性健壮性是指在异常情况下,软件还能正常运行的能力。健壮性健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:一是容错能力,二是恢复能力。有两层含义:一是容错能力,二是恢复能力。有两层含义:一是容错能力,二是恢复能力。有两层含义:一是容错能力,二是恢复能力。 容错性测试通常构造一些不合理的输入来引诱软件出错,例如:容错性测试通常构造一些不合理的输入来引诱软件出错,例如:容错性测试通常构造一些不合理的输入来引诱软件出错,例如:容错性测试通常构造一些不合理的输入来引诱软件出错,例如:l l(1 1 1 1)

141、输入错误的数据类型。如)输入错误的数据类型。如)输入错误的数据类型。如)输入错误的数据类型。如“ “猴猴猴猴” ”年年年年“ “马马马马” ”月。月。月。月。l l(2 2 2 2)输入定义域之外的数值。)输入定义域之外的数值。)输入定义域之外的数值。)输入定义域之外的数值。粗暴一些方式俗称粗暴一些方式俗称粗暴一些方式俗称粗暴一些方式俗称“ “大猩猩大猩猩大猩猩大猩猩” ”测试法。除了不能拳打脚踢嘴咬测试法。除了不能拳打脚踢嘴咬测试法。除了不能拳打脚踢嘴咬测试法。除了不能拳打脚踢嘴咬外,什么招术都可以使出来。例如在测试客户机服务器模式外,什么招术都可以使出来。例如在测试客户机服务器模式外,什么

142、招术都可以使出来。例如在测试客户机服务器模式外,什么招术都可以使出来。例如在测试客户机服务器模式的软件时,把网络线拔掉,造成通信异常中断。的软件时,把网络线拔掉,造成通信异常中断。的软件时,把网络线拔掉,造成通信异常中断。的软件时,把网络线拔掉,造成通信异常中断。 恢复测试重点考察一下几项:恢复测试重点考察一下几项:恢复测试重点考察一下几项:恢复测试重点考察一下几项:l l(1 1 1 1)系统能否重新运行;)系统能否重新运行;)系统能否重新运行;)系统能否重新运行;l l(2 2 2 2)有无重要的数据丢失;)有无重要的数据丢失;)有无重要的数据丢失;)有无重要的数据丢失;l l(3 3 3

143、 3)是否毁坏了其它相关的软件硬件。)是否毁坏了其它相关的软件硬件。)是否毁坏了其它相关的软件硬件。)是否毁坏了其它相关的软件硬件。4.4非功能测试非功能测试l l性能测试性能测试性能测试性能测试性能通常是指软件的性能通常是指软件的“时间时间-空间空间”效率,而不仅是效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高些,指软件的运行速度。人们总希望软件的运行速度高些,并且占用资源少些。并且占用资源少些。既要马儿跑得快,又要马儿吃既要马儿跑得快,又要马儿吃的少。的少。有有有有时时时时人人人人们们们们关关关关心心心心测测测测试试试试的的的的“ “绝绝绝绝对对对对值值值值” ”,如如如如数数

144、数数据据据据送送送送输输输输速速速速率率率率是是是是每每每每秒秒秒秒多多多多少少少少比比比比特特特特。有有有有时时时时人人人人们们们们关关关关心心心心测测测测试试试试的的的的“ “相相相相对对对对值值值值” ”,如如如如某个软件比另一个软件快多少倍。某个软件比另一个软件快多少倍。某个软件比另一个软件快多少倍。某个软件比另一个软件快多少倍。在在在在获获获获取取取取测测测测试试试试的的的的“ “绝绝绝绝对对对对值值值值” ”时时时时,我我我我们们们们要要要要充充充充分分分分考考考考虑虑虑虑并并并并记记记记录录录录运运运运行行行行环环环环境境境境对对对对测测测测试试试试的的的的影影影影响响响响。例例

145、例例如如如如网网网网络络络络环环环环境境境境、计计计计算算算算机机机机主主主主频频频频,总线结构和外部设备都可能影响软件的运行速度。总线结构和外部设备都可能影响软件的运行速度。总线结构和外部设备都可能影响软件的运行速度。总线结构和外部设备都可能影响软件的运行速度。4.4非功能测试非功能测试4.4非功能测试非功能测试l性能测试性能测试性能优化的关键工作是找出限制性能的性能优化的关键工作是找出限制性能的“瓶瓶颈颈”,不要关注无关痛痒的地方。,不要关注无关痛痒的地方。l程序员可以通过优化数据结构、算法和代程序员可以通过优化数据结构、算法和代码码(包括包括SQL)来提高软件的性能。来提高软件的性能。l

146、算法复杂度分析是很好的方法,可以达到算法复杂度分析是很好的方法,可以达到“未卜先知未卜先知”的功效。的功效。4.4非功能测试非功能测试l性能测试性能测试性能优化就好像从海绵里挤水一样,你不挤,水就不性能优化就好像从海绵里挤水一样,你不挤,水就不出来,你越挤海绵越干。出来,你越挤海绵越干。有些程序员认为现在的计算机不仅速度越来越高,而有些程序员认为现在的计算机不仅速度越来越高,而且内存越来越大,因此软件性能优化的必要性下降了。且内存越来越大,因此软件性能优化的必要性下降了。这种看法是不对的,殊不知随着机器的升级,软件系这种看法是不对的,殊不知随着机器的升级,软件系统也越来越庞大了和复杂了,性能优

147、化仍然大有必要。统也越来越庞大了和复杂了,性能优化仍然大有必要。4.4非功能测试非功能测试性能测试的一些注意事项:性能测试的一些注意事项:性能测试的一些注意事项:性能测试的一些注意事项:l l不不不不要要要要试试试试图图图图让让让让人人人人拿拿拿拿着着着着钟钟钟钟表表表表去去去去测测测测时时时时间间间间,应应应应当当当当编编编编写写写写一一一一段段段段程序用于计算时间以及相关数据。程序用于计算时间以及相关数据。程序用于计算时间以及相关数据。程序用于计算时间以及相关数据。 l l应当测试软件在标准配置和最低配置下的性能。应当测试软件在标准配置和最低配置下的性能。应当测试软件在标准配置和最低配置下

148、的性能。应当测试软件在标准配置和最低配置下的性能。 l l为了排除干扰,应当关闭那些消耗内存、占用为了排除干扰,应当关闭那些消耗内存、占用为了排除干扰,应当关闭那些消耗内存、占用为了排除干扰,应当关闭那些消耗内存、占用CPUCPUCPUCPU的其它应用软件(如杀毒软件)。的其它应用软件(如杀毒软件)。的其它应用软件(如杀毒软件)。的其它应用软件(如杀毒软件)。 l l不同的输入情况会得到不同的性能数据,应当分不同的输入情况会得到不同的性能数据,应当分不同的输入情况会得到不同的性能数据,应当分不同的输入情况会得到不同的性能数据,应当分档记录。例如传输文件的容量从档记录。例如传输文件的容量从档记录

149、。例如传输文件的容量从档记录。例如传输文件的容量从100100100100K K K K到到到到1 1 1 1M M M M可以分可以分可以分可以分成若干等级。成若干等级。成若干等级。成若干等级。 l l由于环境的波动,同一种输入情况在不同的时间由于环境的波动,同一种输入情况在不同的时间由于环境的波动,同一种输入情况在不同的时间由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。可能得到不同的性能数据,可以取其平均值。可能得到不同的性能数据,可以取其平均值。可能得到不同的性能数据,可以取其平均值。4.4非功能测试非功能测试l l可靠性测试可靠性测试可靠性测试可靠性

150、测试可靠性是指在一定的环境下、在给定的时间内、系统可靠性是指在一定的环境下、在给定的时间内、系统可靠性是指在一定的环境下、在给定的时间内、系统可靠性是指在一定的环境下、在给定的时间内、系统不发生故障的概率。由于软件不像硬件那样可以不发生故障的概率。由于软件不像硬件那样可以不发生故障的概率。由于软件不像硬件那样可以不发生故障的概率。由于软件不像硬件那样可以“ “加加加加速老化速老化速老化速老化” ”,按此定义,软件可靠性测试可能会花费很,按此定义,软件可靠性测试可能会花费很,按此定义,软件可靠性测试可能会花费很,按此定义,软件可靠性测试可能会花费很长时间。长时间。长时间。长时间。 比比比比较较较

151、较实实实实用用用用的的的的办办办办法法法法是是是是,让让让让用用用用户户户户使使使使用用用用该该该该系系系系统统统统,记记记记录录录录每每每每一一一一次次次次发发发发生生生生故故故故障障障障的的的的时时时时刻刻刻刻。计计计计算算算算出出出出相相相相邻邻邻邻故故故故障障障障的的的的时时时时间间间间间间间间隔隔隔隔,注注注注意意意意要要要要去去去去掉掉掉掉非非非非工工工工作作作作时时时时间间间间。这这这这样样样样我我我我们们们们可可可可以以以以方方方方便便便便地地地地统统统统计计计计出出出出不不不不发发发发生生生生故故故故障障障障的的的的“ “最最最最小小小小时时时时间间间间间间间间隔隔隔隔” ”

152、、“ “最最最最大大大大时时时时间间间间间间间间隔隔隔隔” ”和和和和“ “平平平平均均均均时时时时间间间间间间间间隔隔隔隔” ”。其其其其中中中中“ “平平平平均均均均时时时时间间间间间间间间隔隔隔隔” ”会会会会让让让让人人人人们们们们大大大大体了解到系统体了解到系统体了解到系统体了解到系统“ “可靠可靠可靠可靠” ”的程度。的程度。的程度。的程度。4.4非功能测试非功能测试l l安全性测试安全性测试安全性测试安全性测试信息安全性(信息安全性(信息安全性(信息安全性(securitysecuritysecuritysecurity)是指防止系统被非是指防止系统被非是指防止系统被非是指防止系

153、统被非法入侵的能力,既属于技术问题又属于管理法入侵的能力,既属于技术问题又属于管理法入侵的能力,既属于技术问题又属于管理法入侵的能力,既属于技术问题又属于管理问题。问题。问题。问题。信息安全性测试有如下步骤:信息安全性测试有如下步骤:信息安全性测试有如下步骤:信息安全性测试有如下步骤:l l(1 1 1 1)为为为为非非非非法法法法入入入入侵侵侵侵设设设设立立立立目目目目标标标标,例例例例如如如如“ “盗盗盗盗窃窃窃窃某某某某个文件个文件个文件个文件” ”或或或或“ “更改数据库记录更改数据库记录更改数据库记录更改数据库记录” ”等。等。等。等。l l(2 2 2 2)邀邀邀邀请请请请(或或或

154、或悬悬悬悬赏赏赏赏)一一一一些些些些人人人人扮扮扮扮演演演演黑黑黑黑客客客客,让让让让他们想尽办法入侵系统,实现他们想尽办法入侵系统,实现他们想尽办法入侵系统,实现他们想尽办法入侵系统,实现“ “目标目标目标目标” ”。4.4非功能测试非功能测试l l压力测试压力测试压力测试压力测试压力测试也叫负荷测试,即获取系统能正常运行的极压力测试也叫负荷测试,即获取系统能正常运行的极压力测试也叫负荷测试,即获取系统能正常运行的极压力测试也叫负荷测试,即获取系统能正常运行的极限状态。了解限状态。了解限状态。了解限状态。了解“ “极限极限极限极限” ”是很有价值的,例如潜艇下潜是很有价值的,例如潜艇下潜是很

155、有价值的,例如潜艇下潜是很有价值的,例如潜艇下潜极限深度极限深度极限深度极限深度。 压压压压力力力力测测测测试试试试的的的的主主主主要要要要任任任任务务务务是是是是:构构构构造造造造正正正正确确确确的的的的输输输输入入入入,使使使使劲劲劲劲折折折折腾腾腾腾系统却让它刚好不瘫痪。系统却让它刚好不瘫痪。系统却让它刚好不瘫痪。系统却让它刚好不瘫痪。 压压压压力力力力测测测测试试试试的的的的一一一一个个个个变变变变种种种种是是是是敏敏敏敏感感感感测测测测试试试试。在在在在某某某某种种种种情情情情况况况况下下下下,微微微微小小小小的的的的输输输输入入入入变变变变动动动动会会会会导导导导致致致致系系系系统

156、统统统的的的的表表表表现现现现(如如如如性性性性能能能能)发发发发生生生生急急急急剧剧剧剧的的的的变变变变化化化化。敏敏敏敏感感感感测测测测试试试试目目目目的的的的是是是是发发发发现现现现什什什什么么么么样样样样的的的的输输输输入入入入可可可可能能能能会会会会引引引引发不稳定现象。发不稳定现象。发不稳定现象。发不稳定现象。4.4非功能测试非功能测试l l易用性测试易用性测试易用性是指用户使用软件的容易程度。易用性是指用户使用软件的容易程度。现代人的生活节奏快,干啥事都想图个方便。现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待无可所以把易用性作为重要的质量属性对待无可

157、非议。非议。4.5非功能自非功能自动化软件测试动化软件测试l lLoadRunner4.5LoadRunnerl l是一种预测系统行为和性能的工业标准负载测试是一种预测系统行为和性能的工业标准负载测试是一种预测系统行为和性能的工业标准负载测试是一种预测系统行为和性能的工业标准负载测试工具工具工具工具l l通过模拟大量用户实时并发负载和实时性能监测通过模拟大量用户实时并发负载和实时性能监测通过模拟大量用户实时并发负载和实时性能监测通过模拟大量用户实时并发负载和实时性能监测的方式来确认和查找问题的方式来确认和查找问题的方式来确认和查找问题的方式来确认和查找问题 创建虚拟用户创建虚拟用户创建虚拟用户

158、创建虚拟用户 创建真实负载创建真实负载创建真实负载创建真实负载 实施监测实施监测实施监测实施监测 结果分析结果分析结果分析结果分析4.5LoadRunner4.5LoadRunner-虚拟用户虚拟用户4.5创建运行场景创建运行场景4.5LoadRunner-分析结果分析结果4.6性能测试案例性能测试案例l l三层结构的性能测试案例三层结构的性能测试案例4.7GUI测试测试l l用户图形界面用户图形界面(GUI)开发环境有可复用构开发环境有可复用构件,开发用户界面既省时又精确件,开发用户界面既省时又精确4.7GUI测试测试1.1.窗口窗口窗口窗口l l窗口能否基于相关的输入或菜单命令适当的打开窗

159、口能否基于相关的输入或菜单命令适当的打开窗口能否基于相关的输入或菜单命令适当的打开窗口能否基于相关的输入或菜单命令适当的打开l l窗口能否改变大小、移动和滚动窗口能否改变大小、移动和滚动窗口能否改变大小、移动和滚动窗口能否改变大小、移动和滚动l l窗口中的数据能否用鼠标、功能键、方向箭头和窗口中的数据能否用鼠标、功能键、方向箭头和窗口中的数据能否用鼠标、功能键、方向箭头和窗口中的数据能否用鼠标、功能键、方向箭头和键盘操作键盘操作键盘操作键盘操作l l当被覆盖的窗口重新调用后,窗口能否正确再生当被覆盖的窗口重新调用后,窗口能否正确再生当被覆盖的窗口重新调用后,窗口能否正确再生当被覆盖的窗口重新调

160、用后,窗口能否正确再生4.7GUI测试测试1.1.窗口窗口窗口窗口l l能否使用所有窗口的相关功能,所有相关功能是能否使用所有窗口的相关功能,所有相关功能是能否使用所有窗口的相关功能,所有相关功能是能否使用所有窗口的相关功能,所有相关功能是否可操作否可操作否可操作否可操作l l相关的下拉式菜单,工具条,滚动条,对话框,相关的下拉式菜单,工具条,滚动条,对话框,相关的下拉式菜单,工具条,滚动条,对话框,相关的下拉式菜单,工具条,滚动条,对话框,按钮,图标和其它控制有否?能否正常显示?完按钮,图标和其它控制有否?能否正常显示?完按钮,图标和其它控制有否?能否正常显示?完按钮,图标和其它控制有否?能

161、否正常显示?完全可用?全可用?全可用?全可用?l l显示多窗口时,窗口名能否正确显示,活动窗口显示多窗口时,窗口名能否正确显示,活动窗口显示多窗口时,窗口名能否正确显示,活动窗口显示多窗口时,窗口名能否正确显示,活动窗口是否加亮是否加亮是否加亮是否加亮4.7GUI测试测试1.窗口窗口l l使用多用户时,所有窗口是否能实时更新使用多用户时,所有窗口是否能实时更新l l多次或不正确按鼠标是否会产生无法预测多次或不正确按鼠标是否会产生无法预测的结果的结果l l窗口的声音、颜色提示和窗口的操作顺序窗口的声音、颜色提示和窗口的操作顺序是否符合需求是否符合需求l l窗口能否正确关闭窗口能否正确关闭4.7G

162、UI测试测试2.数据项数据项l l字母、数据能否正确显示且输入系统字母、数据能否正确显示且输入系统l l图形方式数据项图形方式数据项(如滚动条如滚动条)是否正常工作是否正常工作l l数据输入、消失是否可以理解,能否识别数据输入、消失是否可以理解,能否识别非法数据非法数据4.7GUI测试测试3.下列式菜单和鼠标操作下列式菜单和鼠标操作l l菜单条显示在合适语言环境中菜单条显示在合适语言环境中l l应用程序的菜单是否显示系统相关特性应用程序的菜单是否显示系统相关特性l l下拉式操作是否正确,功能是否正确下拉式操作是否正确,功能是否正确l l菜单、调色板和工具条都是否能正常的工菜单、调色板和工具条都

163、是否能正常的工作作l l能否列出所有菜单功能和下拉式功能能否列出所有菜单功能和下拉式功能4.7GUI测试测试3.3.下列式菜单和鼠标操作下列式菜单和鼠标操作下列式菜单和鼠标操作下列式菜单和鼠标操作l l能否通过鼠标操作所有菜单的功能,通过文本命能否通过鼠标操作所有菜单的功能,通过文本命能否通过鼠标操作所有菜单的功能,通过文本命能否通过鼠标操作所有菜单的功能,通过文本命令激活每个菜单功能令激活每个菜单功能令激活每个菜单功能令激活每个菜单功能l l菜单功能随当前窗口操作加亮或变灰菜单功能随当前窗口操作加亮或变灰菜单功能随当前窗口操作加亮或变灰菜单功能随当前窗口操作加亮或变灰l l如果要求多次点击鼠

164、标或鼠标有多个按钮时能否如果要求多次点击鼠标或鼠标有多个按钮时能否如果要求多次点击鼠标或鼠标有多个按钮时能否如果要求多次点击鼠标或鼠标有多个按钮时能否正确识别正确识别正确识别正确识别l l光标、处理指示器和识别指针能否随操作而适当光标、处理指示器和识别指针能否随操作而适当光标、处理指示器和识别指针能否随操作而适当光标、处理指示器和识别指针能否随操作而适当改变改变改变改变4.7优秀的用户界面具有的要素优秀的用户界面具有的要素l l符合标准和规范符合标准和规范符合标准和规范符合标准和规范l l直观性直观性直观性直观性l l一致性一致性一致性一致性l l灵活性灵活性灵活性灵活性l l舒适性舒适性舒适

165、性舒适性l l正确性正确性正确性正确性l l实用性实用性实用性实用性4.7符合标准和规范符合标准和规范l l如果软件在如果软件在windows等现有平台上运行,等现有平台上运行,标准是已经确立的标准是已经确立的l l平台可能没有标准,也许测试的就是平台平台可能没有标准,也许测试的就是平台本身。在这种情况下,设计小组可能成为本身。在这种情况下,设计小组可能成为标准的创立者标准的创立者4.7Windows界面标准中三种级别信息界面标准中三种级别信息4.7直观性直观性l l用户界面是否洁净、不唐突、不拥挤?用户界面是否洁净、不唐突、不拥挤?用户界面是否洁净、不唐突、不拥挤?用户界面是否洁净、不唐突、

166、不拥挤?UIUI不应该为用户不应该为用户不应该为用户不应该为用户制造障碍,所需功能或者期待的响应应该明显,并在预制造障碍,所需功能或者期待的响应应该明显,并在预制造障碍,所需功能或者期待的响应应该明显,并在预制造障碍,所需功能或者期待的响应应该明显,并在预期出现的地方期出现的地方期出现的地方期出现的地方l lUIUI的组织和布局合理吗?是否允许用户轻松地从一个功的组织和布局合理吗?是否允许用户轻松地从一个功的组织和布局合理吗?是否允许用户轻松地从一个功的组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步作什么明显吗?任何时候都能转到另一个功能?下一步作什么明显吗?任何时候都能

167、转到另一个功能?下一步作什么明显吗?任何时候都能转到另一个功能?下一步作什么明显吗?任何时候都可以决定放弃或者回退、退出吗?输入得到承认了吗?可以决定放弃或者回退、退出吗?输入得到承认了吗?可以决定放弃或者回退、退出吗?输入得到承认了吗?可以决定放弃或者回退、退出吗?输入得到承认了吗?菜单或者窗口是否深藏不露?菜单或者窗口是否深藏不露?菜单或者窗口是否深藏不露?菜单或者窗口是否深藏不露?l l有多余的功能吗?软件整体或者局部是否做得太多?是有多余的功能吗?软件整体或者局部是否做得太多?是有多余的功能吗?软件整体或者局部是否做得太多?是有多余的功能吗?软件整体或者局部是否做得太多?是否有太多特性

168、把工作复杂化了?是否感到信息太庞杂?否有太多特性把工作复杂化了?是否感到信息太庞杂?否有太多特性把工作复杂化了?是否感到信息太庞杂?否有太多特性把工作复杂化了?是否感到信息太庞杂?l l如果其他所有努力失败,帮助信息真的能帮忙吗?如果其他所有努力失败,帮助信息真的能帮忙吗?如果其他所有努力失败,帮助信息真的能帮忙吗?如果其他所有努力失败,帮助信息真的能帮忙吗?4.7一致性一致性l l快捷键和惨淡选项,在快捷键和惨淡选项,在快捷键和惨淡选项,在快捷键和惨淡选项,在windowswindows中,按中,按中,按中,按“ “F1”F1”键总是得键总是得键总是得键总是得到帮助信息到帮助信息到帮助信息到

169、帮助信息l l术语和命令。整个软件使用同样的术语吗?特性命名一术语和命令。整个软件使用同样的术语吗?特性命名一术语和命令。整个软件使用同样的术语吗?特性命名一术语和命令。整个软件使用同样的术语吗?特性命名一致吗?例如致吗?例如致吗?例如致吗?例如FindFind是否一直叫是否一直叫是否一直叫是否一直叫FindFind,而不是有时叫而不是有时叫而不是有时叫而不是有时叫SearchSearchl l受众。软件是否一直面向同一受众级别?带有花哨的用受众。软件是否一直面向同一受众级别?带有花哨的用受众。软件是否一直面向同一受众级别?带有花哨的用受众。软件是否一直面向同一受众级别?带有花哨的用户界面的贺

170、卡程序不应该显示在泄露技术机密的错误提户界面的贺卡程序不应该显示在泄露技术机密的错误提户界面的贺卡程序不应该显示在泄露技术机密的错误提户界面的贺卡程序不应该显示在泄露技术机密的错误提示信息中示信息中示信息中示信息中l l按钮位置和等价的按钮。对话框中有按钮位置和等价的按钮。对话框中有按钮位置和等价的按钮。对话框中有按钮位置和等价的按钮。对话框中有okok按钮和按钮和按钮和按钮和cancelcancel按按按按钮时,钮时,钮时,钮时, okok按钮总是在上方或左方,按钮总是在上方或左方,按钮总是在上方或左方,按钮总是在上方或左方, cancelcancel按钮总是在按钮总是在按钮总是在按钮总是在

171、右方或下方。右方或下方。右方或下方。右方或下方。 cancelcancel按钮的等价按钮是按钮的等价按钮是按钮的等价按钮是按钮的等价按钮是Esc,Esc,而而而而OKOK按钮的等价按钮是按钮的等价按钮是按钮的等价按钮是按钮的等价按钮是EnterEnter。4.7Windows记事本和写字板记事本和写字板4.7灵活性灵活性l l状态终止和跳过。当软件具有用户非常熟状态终止和跳过。当软件具有用户非常熟悉的超级用户模式时,应该能够跳过众多悉的超级用户模式时,应该能够跳过众多提示或者窗口,直接到达想取得地方。提示或者窗口,直接到达想取得地方。l l数据输入和输出。用户希望有多种输入数数据输入和输出。用

172、户希望有多种输入数据和查看结果。为了在记事本中插入文字,据和查看结果。为了在记事本中插入文字,可以用键盘输入、粘贴、作为对象插入或可以用键盘输入、粘贴、作为对象插入或者用户鼠标从其他程序拖动。者用户鼠标从其他程序拖动。4.7Windws计算器的两种选择计算器的两种选择4.7舒适性舒适性l l恰当。软件外观和感觉应该与所做的工作和使用恰当。软件外观和感觉应该与所做的工作和使用恰当。软件外观和感觉应该与所做的工作和使用恰当。软件外观和感觉应该与所做的工作和使用者相符。金融商业应用不应该使用选丽的色彩和者相符。金融商业应用不应该使用选丽的色彩和者相符。金融商业应用不应该使用选丽的色彩和者相符。金融商

173、业应用不应该使用选丽的色彩和音效来表示狂放的风格。音效来表示狂放的风格。音效来表示狂放的风格。音效来表示狂放的风格。l l错误处理库。程序应该在用户执行严重错误的操错误处理库。程序应该在用户执行严重错误的操错误处理库。程序应该在用户执行严重错误的操错误处理库。程序应该在用户执行严重错误的操作之前提出警告,并且允许用户恢复由于错误操作之前提出警告,并且允许用户恢复由于错误操作之前提出警告,并且允许用户恢复由于错误操作之前提出警告,并且允许用户恢复由于错误操作导致丢失的数据。作导致丢失的数据。作导致丢失的数据。作导致丢失的数据。l l性能。快不见得是好事。程序的错误提示信息不性能。快不见得是好事。

174、程序的错误提示信息不性能。快不见得是好事。程序的错误提示信息不性能。快不见得是好事。程序的错误提示信息不应该一闪而过。如果操作缓慢,至少应该像用户应该一闪而过。如果操作缓慢,至少应该像用户应该一闪而过。如果操作缓慢,至少应该像用户应该一闪而过。如果操作缓慢,至少应该像用户反馈操作持续时间,并显示它正在工作,没有停反馈操作持续时间,并显示它正在工作,没有停反馈操作持续时间,并显示它正在工作,没有停反馈操作持续时间,并显示它正在工作,没有停止。止。止。止。4.7Windows的进度条的进度条4.7正确性正确性l l市场定位偏差。有没有多余的或者遗漏的功能,或者某市场定位偏差。有没有多余的或者遗漏的

175、功能,或者某市场定位偏差。有没有多余的或者遗漏的功能,或者某市场定位偏差。有没有多余的或者遗漏的功能,或者某些功能执行了与市场宣传材料不符的操作。些功能执行了与市场宣传材料不符的操作。些功能执行了与市场宣传材料不符的操作。些功能执行了与市场宣传材料不符的操作。l l语言和拼写。语言和拼写。语言和拼写。语言和拼写。l l不良媒体。媒体是软件不良媒体。媒体是软件不良媒体。媒体是软件不良媒体。媒体是软件UIUI包含的所有支持图标、图像、包含的所有支持图标、图像、包含的所有支持图标、图像、包含的所有支持图标、图像、声音和视频。图标应该同样大,并且具有相同的调色板。声音和视频。图标应该同样大,并且具有相

176、同的调色板。声音和视频。图标应该同样大,并且具有相同的调色板。声音和视频。图标应该同样大,并且具有相同的调色板。声音应该都有相同的格式。正确的媒体从声音应该都有相同的格式。正确的媒体从声音应该都有相同的格式。正确的媒体从声音应该都有相同的格式。正确的媒体从UIUI选择是应该选择是应该选择是应该选择是应该显示出来。显示出来。显示出来。显示出来。l l所见即所得。保证所见即所得。保证所见即所得。保证所见即所得。保证UIUI所说的就是实际所得的。单击保存所说的就是实际所得的。单击保存所说的就是实际所得的。单击保存所说的就是实际所得的。单击保存按钮时,显示器上的文档与存入磁盘中的完全一样吗?按钮时,显

177、示器上的文档与存入磁盘中的完全一样吗?按钮时,显示器上的文档与存入磁盘中的完全一样吗?按钮时,显示器上的文档与存入磁盘中的完全一样吗?从磁盘读出时,与原文档相同吗?从磁盘读出时,与原文档相同吗?从磁盘读出时,与原文档相同吗?从磁盘读出时,与原文档相同吗?4.7实用性实用性l l软件的具体特性是否实用软件的具体特性是否实用4.7辅助选项测试辅助选项测试l l视力损伤视力损伤l l听力损伤听力损伤l l运动损伤运动损伤l l认知和语言障碍认知和语言障碍第五章第五章测试过程测试过程322测试过程测试过程l l5.15.1单元测试单元测试单元测试单元测试l l5.25.2集成测试集成测试集成测试集成测

178、试l l5.35.3系统测试系统测试系统测试系统测试l l5.45.4系统集成测试系统集成测试系统集成测试系统集成测试l l5.55.5验收测试验收测试验收测试验收测试l l5.65.6回归测试回归测试回归测试回归测试l l5.75.7企业测试策略企业测试策略企业测试策略企业测试策略5.1单元测试单元测试l l目标:确保产生符合需求的可靠的程序单目标:确保产生符合需求的可靠的程序单元元l l由开发人员完成由开发人员完成l l白盒测试活动白盒测试活动5.1单元测试覆盖的区域单元测试覆盖的区域l l单元执行的计算单元执行的计算/操作的正确性操作的正确性l l低级性能问题低级性能问题l l低级可靠性

179、问题低级可靠性问题l l窗口的内容及导航,包括窗口的外观的一窗口的内容及导航,包括窗口的外观的一致性、热键、功能键和快捷键致性、热键、功能键和快捷键5.1单元测试覆盖的区域单元测试覆盖的区域l l报告的内容、布局和计算报告的内容、布局和计算l l文件文件/记录的创建、更新及删除记录的创建、更新及删除l l互操作单元间的通信互操作单元间的通信5.1单元的定义单元的定义l l单元的定义与被测试系统的设计方法,以单元的定义与被测试系统的设计方法,以及在开发过程中采用的实现技术有关:及在开发过程中采用的实现技术有关: 使用过程化程序语言开发的应用中的单使用过程化程序语言开发的应用中的单元可以用一个函数

180、或过程表示元可以用一个函数或过程表示 使用面向对象编程语言开发的应用中的使用面向对象编程语言开发的应用中的单元可以用一个类表示单元可以用一个类表示5.1单元的定义(续)单元的定义(续) 可视化编程环境下的单元可以是一个窗可视化编程环境下的单元可以是一个窗口,或者是这个窗口中相关元素的集合口,或者是这个窗口中相关元素的集合 基于组件开发环境中的单元可以是一个基于组件开发环境中的单元可以是一个预先定义的可重用的组件预先定义的可重用的组件5.1单元测试任务单元测试任务l l任务任务任务任务1 1、模块接口测试、模块接口测试、模块接口测试、模块接口测试 检查进出模块的数据是否正确检查进出模块的数据是否

181、正确检查进出模块的数据是否正确检查进出模块的数据是否正确 ChecklistChecklist:l l模块的实际输入与定义的输入是否一致模块的实际输入与定义的输入是否一致模块的实际输入与定义的输入是否一致模块的实际输入与定义的输入是否一致 个数、类型、顺序个数、类型、顺序个数、类型、顺序个数、类型、顺序l l模块中对于非内部模块中对于非内部模块中对于非内部模块中对于非内部/ /局部变量是否合理使用局部变量是否合理使用局部变量是否合理使用局部变量是否合理使用l l使用其他模块时,是否检查可用性和处理结果使用其他模块时,是否检查可用性和处理结果使用其他模块时,是否检查可用性和处理结果使用其他模块时

182、,是否检查可用性和处理结果l l使用外部资源时,是否检查可用性并及时释放资使用外部资源时,是否检查可用性并及时释放资使用外部资源时,是否检查可用性并及时释放资使用外部资源时,是否检查可用性并及时释放资源源源源 内存、文件、硬盘、端口等内存、文件、硬盘、端口等内存、文件、硬盘、端口等内存、文件、硬盘、端口等l l其他其他其他其他5.1单元测试任务单元测试任务l l任务任务任务任务2 2、模块局部数据结构测试、模块局部数据结构测试、模块局部数据结构测试、模块局部数据结构测试 检查局部数据结构能否保持完整性检查局部数据结构能否保持完整性检查局部数据结构能否保持完整性检查局部数据结构能否保持完整性 C

183、hecklistChecklist:l l变量从来没有被使用变量从来没有被使用变量从来没有被使用变量从来没有被使用 可能别的地方使用了错误的变量名可能别的地方使用了错误的变量名可能别的地方使用了错误的变量名可能别的地方使用了错误的变量名l l变量没有初始化变量没有初始化变量没有初始化变量没有初始化l l错误的类型转换错误的类型转换错误的类型转换错误的类型转换l l数组越界数组越界数组越界数组越界l l非法指针非法指针非法指针非法指针l l变量或函数名称拼写错误变量或函数名称拼写错误变量或函数名称拼写错误变量或函数名称拼写错误 使用了外部变量或函数使用了外部变量或函数使用了外部变量或函数使用了外

184、部变量或函数l l其他其他其他其他5.1单元测试任务单元测试任务l l任务任务任务任务3 3、模块边界条件测试、模块边界条件测试、模块边界条件测试、模块边界条件测试 检查临界数据是否正确处理检查临界数据是否正确处理检查临界数据是否正确处理检查临界数据是否正确处理 ChecklistChecklist:l l普通合法数据是否正确处理普通合法数据是否正确处理普通合法数据是否正确处理普通合法数据是否正确处理l l普通非法数据是否正确处理普通非法数据是否正确处理普通非法数据是否正确处理普通非法数据是否正确处理l l边界内最接近边界的边界内最接近边界的边界内最接近边界的边界内最接近边界的( (合法合法合

185、法合法) )数据是否正确处理数据是否正确处理数据是否正确处理数据是否正确处理l l边界外最接近边界的边界外最接近边界的边界外最接近边界的边界外最接近边界的( (非法非法非法非法) )数据是否正确处理数据是否正确处理数据是否正确处理数据是否正确处理l l其他其他其他其他5.1单元测试任务单元测试任务l l任务任务任务任务4 4、模块独立执行通路、模块独立执行通路、模块独立执行通路、模块独立执行通路( (路径路径路径路径) )测试测试测试测试 检查由于计算错误、判定错误、控制流错误导致的程检查由于计算错误、判定错误、控制流错误导致的程检查由于计算错误、判定错误、控制流错误导致的程检查由于计算错误、

186、判定错误、控制流错误导致的程序错误序错误序错误序错误 ChecklistChecklist:l l死代码死代码死代码死代码l l错误的计算优先级错误的计算优先级错误的计算优先级错误的计算优先级l l精度错误精度错误精度错误精度错误 比较运算错误比较运算错误比较运算错误比较运算错误 赋值错误赋值错误赋值错误赋值错误l l表达式的不正确符号表达式的不正确符号表达式的不正确符号表达式的不正确符号l l循环变量的使用错误循环变量的使用错误循环变量的使用错误循环变量的使用错误 错误赋值错误赋值错误赋值错误赋值l l其他其他其他其他5.1单元测试任务单元测试任务l l任务任务任务任务5 5、模块内部错误处

187、理测试、模块内部错误处理测试、模块内部错误处理测试、模块内部错误处理测试 检查内部错误处理设施是否有效检查内部错误处理设施是否有效检查内部错误处理设施是否有效检查内部错误处理设施是否有效 ChecklistChecklist:l l是否检查错误出现是否检查错误出现是否检查错误出现是否检查错误出现 资源使用前后资源使用前后资源使用前后资源使用前后 其他模块使用前后其他模块使用前后其他模块使用前后其他模块使用前后l l出现错误,是否进行错误处理出现错误,是否进行错误处理出现错误,是否进行错误处理出现错误,是否进行错误处理 抛出错误抛出错误抛出错误抛出错误 通知用户通知用户通知用户通知用户 进行记录

188、进行记录进行记录进行记录l l错误处理是否有效错误处理是否有效错误处理是否有效错误处理是否有效 在系统干预前处理在系统干预前处理在系统干预前处理在系统干预前处理 报告和记录的错误真实详细报告和记录的错误真实详细报告和记录的错误真实详细报告和记录的错误真实详细l l其他其他其他其他5.1单元测试方法单元测试方法l l确定如何调用某个给定单元以及每次调用确定如何调用某个给定单元以及每次调用该单元的响应该单元的响应l l确定单元的状态和状态间转换确定单元的状态和状态间转换l l确定单元的每个状态的预期结果,以及确确定单元的每个状态的预期结果,以及确认这些结果所必须的内容认这些结果所必须的内容5.1单

189、元测试方法(续)单元测试方法(续)l l考察被测试系统的需求规格说明文档以及考察被测试系统的需求规格说明文档以及被测试的单元,确认以前的步骤已识别出被测试的单元,确认以前的步骤已识别出了所有可能的测试条件,如有必要可以增了所有可能的测试条件,如有必要可以增加附件条件加附件条件l l确定测试该单元的先决条件确定测试该单元的先决条件l l使用上述信息生成一套测试该单元的测试使用上述信息生成一套测试该单元的测试用例用例5.1单元测试的数据需求单元测试的数据需求l l不使用真实数据不使用真实数据l l需要少量数据时,可以考虑可以使用边界需要少量数据时,可以考虑可以使用边界分析或等价类划分方法,设计模拟

190、数据分析或等价类划分方法,设计模拟数据l l需要大量数据时,可以使用真实数据的拷需要大量数据时,可以使用真实数据的拷贝(对于敏感数据应适当处理),或者使贝(对于敏感数据应适当处理),或者使用真实数据的有代表性的样本用真实数据的有代表性的样本5.1单元测试输入单元测试输入l l被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档l l被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档l l补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)l l单元测试计划单元测试规范说明文档单元测试计

191、划单元测试规范说明文档单元测试计划单元测试规范说明文档单元测试计划单元测试规范说明文档l l单元测试指南单元测试指南单元测试指南单元测试指南l l单元测试用例单元测试用例单元测试用例单元测试用例l l空白的测试记录表格空白的测试记录表格空白的测试记录表格空白的测试记录表格5.1单元测试测试技术单元测试测试技术l l针对被测单元需求的功能测试针对被测单元需求的功能测试l l静态测试静态测试l l白盒测试白盒测试l l状态转换测试状态转换测试l l性能测试性能测试5.1单元测试输出单元测试输出l l完整的被测试过的单元完整的被测试过的单元l l单元测试证书单元测试证书l l修正的测试用例修正的测试

192、用例l l归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格5.1单元测试输出(续)单元测试输出(续)l l单元测试日志单元测试日志l l单元测试重用包单元测试重用包l l简短的单元测试总结报告简短的单元测试总结报告5.1单元测试过程单元测试过程单元测试输入单元测试输入执行单元测试执行单元测试分析结果分析结果检检测测到到错错误误?是是调试并修正单元调试并修正单元/修正测试用例修正测试用例设计新的设计新的/重用旧的测试用例重用旧的测试用例否否单元测试输出单元测试输出5.1单元测试停止标准单元测试停止标准l l单元测试用例设计已经通过评审单元测试用例设计已经通过评审单元

193、测试用例设计已经通过评审单元测试用例设计已经通过评审 l l按照单元测试计划完成了所有规定单元的测试按照单元测试计划完成了所有规定单元的测试按照单元测试计划完成了所有规定单元的测试按照单元测试计划完成了所有规定单元的测试 l l达到了测试计划中关于单元测试所规定的覆盖率达到了测试计划中关于单元测试所规定的覆盖率达到了测试计划中关于单元测试所规定的覆盖率达到了测试计划中关于单元测试所规定的覆盖率的要求的要求的要求的要求 l l被测试的单元每千行代码必须发现至少被测试的单元每千行代码必须发现至少被测试的单元每千行代码必须发现至少被测试的单元每千行代码必须发现至少3 3 3 3 个错误个错误个错误个

194、错误 l l软件单元功能与设计一致软件单元功能与设计一致软件单元功能与设计一致软件单元功能与设计一致 l l在单元测试中发现的错误已经得到修改,在单元测试中发现的错误已经得到修改,在单元测试中发现的错误已经得到修改,在单元测试中发现的错误已经得到修改, 各级各级各级各级缺陷修复率达到标准缺陷修复率达到标准缺陷修复率达到标准缺陷修复率达到标准 5.2集成测试集成测试-概述概述l l进行系统测试之前证明组成被测试系统进行系统测试之前证明组成被测试系统的各个模块以正确、稳定、一致的方式的各个模块以正确、稳定、一致的方式接口和交互。接口和交互。l l由开发组由开发组/测试组完成测试组完成l l黑盒技术

195、黑盒技术5.2集成测试覆盖的区域集成测试覆盖的区域l l从其它互操作模块调用一个模块从其它互操作模块调用一个模块l l在互操作模块间正确传输数据在互操作模块间正确传输数据l l兼容性兼容性l l性能问题性能问题5.2执行集成测试遵循的方法执行集成测试遵循的方法l l识别组成一个完整系统的模块间的关系识别组成一个完整系统的模块间的关系l l评审模块间的交互和通信需求,识别出模评审模块间的交互和通信需求,识别出模块间的接口块间的接口l l使用上述信息产生一套测试该模块的测试使用上述信息产生一套测试该模块的测试用例用例l l当依次将模块加入到扩充的系统中当依次将模块加入到扩充的系统中,并测,并测试新

196、合并的系统时,应采用增量测试试新合并的系统时,应采用增量测试5.2集成测试集成测试-数据需求数据需求l l不使用真实数据不使用真实数据l l使用测试辅助程序模拟数据访问使用测试辅助程序模拟数据访问5.2集成测试集成测试-输入输入l l被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档l l被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档l l补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)l l集成测试计划单元测试规范说明文档集成测试计划单元测试规范说明文档集成测试计划单元测试

197、规范说明文档集成测试计划单元测试规范说明文档l l集成测试指南集成测试指南集成测试指南集成测试指南l l集成测试用例集成测试用例集成测试用例集成测试用例l l空白的测试记录表格空白的测试记录表格空白的测试记录表格空白的测试记录表格5.2集成测试集成测试-技术技术l黑盒测试黑盒测试l性能测试性能测试5.2集成测试集成测试-输出输出l l完整的被测试过和集成过的模块完整的被测试过和集成过的模块l l集成测试证明集成测试证明l l修正的测试用例修正的测试用例l l归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格l l集成测试日志集成测试日志l l集成测试报告集成测试报告

198、5.2集成测试过程集成测试过程集成测试输入集成测试输入执行集成测试执行集成测试分析结果分析结果检测到错误检测到错误?否否集成测试输出集成测试输出是是调整并修正被测试系统调整并修正被测试系统/修正测修正测试用例试用例设计新的设计新的/重用旧的测试用例重用旧的测试用例5.2集成测试停止标准集成测试停止标准l l集成测试用例设计已经通过评审集成测试用例设计已经通过评审集成测试用例设计已经通过评审集成测试用例设计已经通过评审 l l按照集成构建计划及增量集成策略完成了整个系统的集按照集成构建计划及增量集成策略完成了整个系统的集按照集成构建计划及增量集成策略完成了整个系统的集按照集成构建计划及增量集成策

199、略完成了整个系统的集成测试成测试成测试成测试 l l达到了测试计划中关于集成测试所规定的覆盖率的要求达到了测试计划中关于集成测试所规定的覆盖率的要求达到了测试计划中关于集成测试所规定的覆盖率的要求达到了测试计划中关于集成测试所规定的覆盖率的要求 l l被测试的集成工作版本每千行代码必须发现被测试的集成工作版本每千行代码必须发现被测试的集成工作版本每千行代码必须发现被测试的集成工作版本每千行代码必须发现2 2 2 2 个错误个错误个错误个错误 l l集成工作版本满足设计定义的各项功能、性能要求集成工作版本满足设计定义的各项功能、性能要求集成工作版本满足设计定义的各项功能、性能要求集成工作版本满足

200、设计定义的各项功能、性能要求 l l在集成测试中发现的错误已经得到修改,在集成测试中发现的错误已经得到修改,在集成测试中发现的错误已经得到修改,在集成测试中发现的错误已经得到修改, 各级缺陷修复各级缺陷修复各级缺陷修复各级缺陷修复率达到标准率达到标准率达到标准率达到标准 5.3系统测试系统测试-概述概述l l测试系统的功能和结构的稳定性测试系统的功能和结构的稳定性l l测试性能和可靠性等非功能性需求测试性能和可靠性等非功能性需求l l黑盒技术黑盒技术l l测试人员完成测试人员完成5.3系统测试系统测试-方法方法l l评审系统需求,找出以下内容:评审系统需求,找出以下内容:l l高级业务需求高级

201、业务需求l l真实系统的数据处理和事务率需求真实系统的数据处理和事务率需求l l系统性能需求系统性能需求l l备份和恢复需求备份和恢复需求l l保密性需求保密性需求5.3系统测试系统测试-方法(续)方法(续)l l识别被测试系统与其他系统通信的需求及通信手识别被测试系统与其他系统通信的需求及通信手识别被测试系统与其他系统通信的需求及通信手识别被测试系统与其他系统通信的需求及通信手段段段段l l考察将要运行真实系统的计算机环境,以便找出考察将要运行真实系统的计算机环境,以便找出考察将要运行真实系统的计算机环境,以便找出考察将要运行真实系统的计算机环境,以便找出该系统与其它系统的互操作性或兼容性问

202、题该系统与其它系统的互操作性或兼容性问题该系统与其它系统的互操作性或兼容性问题该系统与其它系统的互操作性或兼容性问题l l检查对测试系统过程、系统文档、帮助设施以及检查对测试系统过程、系统文档、帮助设施以及检查对测试系统过程、系统文档、帮助设施以及检查对测试系统过程、系统文档、帮助设施以及恢复、备份和归档的需求恢复、备份和归档的需求恢复、备份和归档的需求恢复、备份和归档的需求l l使用上述信息,生成测试用例使用上述信息,生成测试用例使用上述信息,生成测试用例使用上述信息,生成测试用例5.3系统测试系统测试-数据数据l l使用真实数据使用真实数据5.3系统测试系统测试-角色和职责角色和职责l l

203、测试组组长:保证在质量控制和监督下,测试组组长:保证在质量控制和监督下,使用合适的测试技术执行充分的系统测试使用合适的测试技术执行充分的系统测试l l测试分析员:设计和实现用于被测试系统测试分析员:设计和实现用于被测试系统测试的测试用例测试的测试用例l l测试员:执行测试用例测试员:执行测试用例l l独立测试观察员:监控测试过程独立测试观察员:监控测试过程5.3系统测试计划和资源系统测试计划和资源l l一个合适的具体测试环境的可用性一个合适的具体测试环境的可用性l l对真实环境的商业或安全要求的估计以及对真实环境的商业或安全要求的估计以及系统测试对它产生不利影响的可能性系统测试对它产生不利影响

204、的可能性l l真实环境中商业或机密的敏感数据或保密真实环境中商业或机密的敏感数据或保密性重要信息的出现性重要信息的出现5.3系统测试输入系统测试输入l l被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档l l被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档l l补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)l l系统测试计划系统测试计划系统测试计划系统测试计划l l系统测试规范说明文档系统测试规范说明文档系统测试规范说明文档系统测试规范说明文档l l系统测试指南系统测试指南

205、系统测试指南系统测试指南l l系统测试用例系统测试用例系统测试用例系统测试用例l l空白的测试记录表格空白的测试记录表格空白的测试记录表格空白的测试记录表格5.3系统测试测试技术系统测试测试技术l l针对高级系统需求的黑盒测试针对高级系统需求的黑盒测试l l针对被测试系统的该机业务需求的线索测针对被测试系统的该机业务需求的线索测试试l l非功能测试(容量、压力、性能)非功能测试(容量、压力、性能)l l静态测试(评审系统文档)静态测试(评审系统文档)l l使用自动化测试工具使用自动化测试工具5.3系统测试输出系统测试输出l l完整的被测试系统完整的被测试系统完整的被测试系统完整的被测试系统l

206、l系统测试证明系统测试证明系统测试证明系统测试证明l l修正的测试用例修正的测试用例修正的测试用例修正的测试用例l l归档的测试数据归档的测试数据归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格l l系统测试日志系统测试日志系统测试日志系统测试日志l l系统测试报告系统测试报告系统测试报告系统测试报告5.3系统测试过程系统测试过程系统测试输入系统测试输入执行系统测试执行系统测试分析结果分析结果检测到错检测到错误?误?否否系统测试输出系统测试输出是是调整并修正被测试系统调整并修正被测试系统/修正修正测试用例测试用例设计新的

207、设计新的/重用旧的测试用例重用旧的测试用例5.3系统测试停止标准系统测试停止标准l l系统测试用例设计已经通过评审系统测试用例设计已经通过评审系统测试用例设计已经通过评审系统测试用例设计已经通过评审 l l按照系统测试计划完成了系统测试按照系统测试计划完成了系统测试按照系统测试计划完成了系统测试按照系统测试计划完成了系统测试 l l达到了测试计划中关于系统测试所规定的覆盖率达到了测试计划中关于系统测试所规定的覆盖率达到了测试计划中关于系统测试所规定的覆盖率达到了测试计划中关于系统测试所规定的覆盖率的要求的要求的要求的要求 l l被测试的系统每千行代码必须发现被测试的系统每千行代码必须发现被测试

208、的系统每千行代码必须发现被测试的系统每千行代码必须发现1 1 1 1 个错误个错误个错误个错误 l l系统满足需求规格说明书的要求系统满足需求规格说明书的要求系统满足需求规格说明书的要求系统满足需求规格说明书的要求 l l在系统测试中发现的错误已经得到修改,在系统测试中发现的错误已经得到修改,在系统测试中发现的错误已经得到修改,在系统测试中发现的错误已经得到修改, 各级各级各级各级缺陷修复率达到标准缺陷修复率达到标准缺陷修复率达到标准缺陷修复率达到标准 5.4系统集成测试概述系统集成测试概述l l目标:确保被测试系统可以与其他制定的目标:确保被测试系统可以与其他制定的软件系统成功进行互操作(不

209、对其他系统软件系统成功进行互操作(不对其他系统产生不利的影响,也不被其他系统影响)产生不利的影响,也不被其他系统影响)l l黑盒技术黑盒技术l l测试人员进行测试人员进行5.4系统集成测试方法系统集成测试方法l l审查系统的互操作性需求,并确认以下要审查系统的互操作性需求,并确认以下要求:求:l l1.被测试系统与其他系统通信的需求和通被测试系统与其他系统通信的需求和通信的手段信的手段l l2.涉及与其他系统通信的高级业务需求涉及与其他系统通信的高级业务需求l l3.真实环境中数据处理和事务率的需求真实环境中数据处理和事务率的需求l l4.系统性能的需求系统性能的需求5.4系统集成测试方法(续

210、)系统集成测试方法(续)l l5.备份和恢复的需求备份和恢复的需求l l6.保密性需求保密性需求l l考察将要运行真实系统的计算机环境,找考察将要运行真实系统的计算机环境,找出与其他系统的互操作性和兼容性的问题出与其他系统的互操作性和兼容性的问题l l通过以上信息,产生一套测试该系统的测通过以上信息,产生一套测试该系统的测试用例试用例5.4系统集成测试数据需求系统集成测试数据需求l l使用真实数据使用真实数据5.4系统集成测试角色和职责系统集成测试角色和职责l l测试组组长:保证在质量控制和监督下,测试组组长:保证在质量控制和监督下,使用合适的测试技术执行充分的系统测试使用合适的测试技术执行充

211、分的系统测试l l测试分析员:设计和实现用于被测试系统测试分析员:设计和实现用于被测试系统测试的测试用例测试的测试用例l l测试员:执行测试用例测试员:执行测试用例l l独立测试观察员:监控测试过程独立测试观察员:监控测试过程l l用户代表:非正式观察用户代表:非正式观察5.4系统集成测试计划和资源系统集成测试计划和资源l l合适的指定的测试环境的可用性合适的指定的测试环境的可用性l l对真实的商业或安全特性的评估,以及系对真实的商业或安全特性的评估,以及系统集成测试为其带来的负面影响的可能性统集成测试为其带来的负面影响的可能性l l真实环境中商业或机密的敏感数据或以安真实环境中商业或机密的敏

212、感数据或以安全为主的信息的出现全为主的信息的出现l l模拟与外部系统进行典型交互的能力模拟与外部系统进行典型交互的能力5.4系统集成测试输入系统集成测试输入l l被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档l l被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档l l补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)l l系统集成测试计划系统集成测试计划系统集成测试计划系统集成测试计划l l系统集成测试规范说明文档系统集成测试规范说明文档系统集成测试规范说明文档系统集成测试规

213、范说明文档l l系统集成测试指南系统集成测试指南系统集成测试指南系统集成测试指南l l系统集成测试用例系统集成测试用例系统集成测试用例系统集成测试用例l l空白的测试记录表格空白的测试记录表格空白的测试记录表格空白的测试记录表格5.4系统集成测试测试技术系统集成测试测试技术l l针对高级需求的黑盒测试针对高级需求的黑盒测试l l针对被测试系统的高级业务需求的线索测针对被测试系统的高级业务需求的线索测试试l l发现任何未预料到的问题的否定测试和错发现任何未预料到的问题的否定测试和错误测试误测试l l考虑自动化测试工具的使用考虑自动化测试工具的使用5.4系统集成测试输出系统集成测试输出l l完整的

214、被测试系统完整的被测试系统完整的被测试系统完整的被测试系统l l系统测试证明系统测试证明系统测试证明系统测试证明l l修正的测试用例修正的测试用例修正的测试用例修正的测试用例l l归档的测试数据归档的测试数据归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格l l系统集成测试日志系统集成测试日志系统集成测试日志系统集成测试日志l l系统集成测试报告系统集成测试报告系统集成测试报告系统集成测试报告5.4系统集成测试过程系统集成测试过程系统集成测试输入系统集成测试输入执行系统集成测试执行系统集成测试分析结果分析结果检测到错检测

215、到错误?误?否否系统集成测试输出系统集成测试输出是是调整并修正被测试系统调整并修正被测试系统/修正修正测试用例测试用例设计新的设计新的/重用旧的测试用例重用旧的测试用例5.5用户验收测试概述用户验收测试概述l l目标:确认被测试系统能够满足业务需求,目标:确认被测试系统能够满足业务需求,在将软件正是交付给最终用户之前,确保在将软件正是交付给最终用户之前,确保系统工作正常并可以使用系统工作正常并可以使用l l黑盒测试黑盒测试l l在测试组的协助下,由用户代表完成在测试组的协助下,由用户代表完成5.5用户验收测试方法用户验收测试方法l l与用户代表讨论与用户代表讨论l l评审被测试系统的需求评审被

216、测试系统的需求5.5用户验收测试数据需求用户验收测试数据需求l l使用真实数据使用真实数据l l得到使用真实数据的许可得到使用真实数据的许可5.5用户验收测试角色和职责用户验收测试角色和职责l l测试组组长:监督测试过程,使用适当的测试组组长:监督测试过程,使用适当的测试技术执行充分的测试测试技术执行充分的测试l l测试分析员:与用户代表联系,确定在用测试分析员:与用户代表联系,确定在用户验收测试时重新运行的测试用例户验收测试时重新运行的测试用例l l测试员:协助用户代表执行测试用例测试员:协助用户代表执行测试用例l l独立测试观察员:监控测试过程独立测试观察员:监控测试过程5.5用户验收测试

217、计划和资源用户验收测试计划和资源l l用户代表:充分理解系统的业务、具备采用户代表:充分理解系统的业务、具备采用典型例子达到业务目标的经验用典型例子达到业务目标的经验l l测试环境:真实环境测试环境:真实环境l l考虑系统缺陷的更正及重新测试的所需的考虑系统缺陷的更正及重新测试的所需的时间和人力时间和人力5.5用户验收测试输入用户验收测试输入l l被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档l l被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档l l补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手

218、册)补充材料(如用户手册)l l用户验收测试计划用户验收测试计划用户验收测试计划用户验收测试计划l l用户验收测试规范说明文档用户验收测试规范说明文档用户验收测试规范说明文档用户验收测试规范说明文档l l用户验收测试指南用户验收测试指南用户验收测试指南用户验收测试指南l l用户验收测试用例用户验收测试用例用户验收测试用例用户验收测试用例l l空白的测试记录表格空白的测试记录表格空白的测试记录表格空白的测试记录表格5.5用户验收测试测试技术用户验收测试测试技术l l针对高级需求的黑盒测试针对高级需求的黑盒测试针对高级需求的黑盒测试针对高级需求的黑盒测试l l针对被测试系统的高级业务需求的线索测试

219、针对被测试系统的高级业务需求的线索测试针对被测试系统的高级业务需求的线索测试针对被测试系统的高级业务需求的线索测试l l可用性测试保证被测试系统的可用性测试保证被测试系统的可用性测试保证被测试系统的可用性测试保证被测试系统的GUIGUI具有直观性、具有直观性、具有直观性、具有直观性、一致性和易用性,并保证在线帮助机制是令人满一致性和易用性,并保证在线帮助机制是令人满一致性和易用性,并保证在线帮助机制是令人满一致性和易用性,并保证在线帮助机制是令人满意的意的意的意的l l系统文档(如用户手册)及其在被测试系统中的系统文档(如用户手册)及其在被测试系统中的系统文档(如用户手册)及其在被测试系统中的

220、系统文档(如用户手册)及其在被测试系统中的使用的静态测试使用的静态测试使用的静态测试使用的静态测试5.5用户验收测试输出用户验收测试输出l l用户验收过的系统用户验收过的系统用户验收过的系统用户验收过的系统l l用户验收测试证明用户验收测试证明用户验收测试证明用户验收测试证明l l修正的测试用例修正的测试用例修正的测试用例修正的测试用例l l归档的测试数据归档的测试数据归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格l l用户验收测试日志用户验收测试日志用户验收测试日志用户验收测试日志l l用户验收测试报告用户验收测试报

221、告用户验收测试报告用户验收测试报告5.5用户验收测试过程用户验收测试过程用户验收测试输入用户验收测试输入执行用户验收测试执行用户验收测试分析结果分析结果检测到错检测到错误?误?否否用户验收测试输出用户验收测试输出是是调整并修正被测试系统调整并修正被测试系统/修正修正测试用例测试用例设计新的设计新的/重用旧的测试用例重用旧的测试用例5.5操作验收测试概述操作验收测试概述l l目标:确认被测试应用被测试系统满足其目标:确认被测试应用被测试系统满足其操作需求并确保将系统交付给操作用户前操作需求并确保将系统交付给操作用户前系统正常工作并可以使用系统正常工作并可以使用l l黑盒测试黑盒测试l l在测试组

222、的协助下,由用户代表完成在测试组的协助下,由用户代表完成5.5操作验收测试两种用户测试区别操作验收测试两种用户测试区别l l用户验收测试:验证被测试系统符合其业用户验收测试:验证被测试系统符合其业务需求,并在正式提交给最终用户之前确务需求,并在正式提交给最终用户之前确信系统工作正确并可用信系统工作正确并可用l l操作验收测试:验证被测试系统在操作和操作验收测试:验证被测试系统在操作和管理方面的情况(例如:更新后被测试系管理方面的情况(例如:更新后被测试系统的安装、对被测试系统及其数据的备份、统的安装、对被测试系统及其数据的备份、归档和恢复以及注册新用户并为其分配权归档和恢复以及注册新用户并为其

223、分配权限)限)5.5操作验收测试数据需求操作验收测试数据需求l l测试数据满足下列需求:测试数据满足下列需求:测试数据满足下列需求:测试数据满足下列需求:l l1.1.所用的测试数据能够体现真实数据并具有代表所用的测试数据能够体现真实数据并具有代表所用的测试数据能够体现真实数据并具有代表所用的测试数据能够体现真实数据并具有代表性性性性l l2.2.测试数据为支持那些操纵海量数据的操作验收测试数据为支持那些操纵海量数据的操作验收测试数据为支持那些操纵海量数据的操作验收测试数据为支持那些操纵海量数据的操作验收测试任务提供了数量和复杂性都足够的数据测试任务提供了数量和复杂性都足够的数据测试任务提供了

224、数量和复杂性都足够的数据测试任务提供了数量和复杂性都足够的数据l l3.3.操作验收测试不涉及重要数据的访问和操作操作验收测试不涉及重要数据的访问和操作操作验收测试不涉及重要数据的访问和操作操作验收测试不涉及重要数据的访问和操作5.5操作验收测试数据需求(续)操作验收测试数据需求(续)l l当真实数据包括机密性和保密性信息时,当真实数据包括机密性和保密性信息时,必须保证:必须保证:l l1.用户代表被允许使用这些数据用户代表被允许使用这些数据l l2.测试组组长被允许使用这些数据测试组组长被允许使用这些数据l l3.独立测试观察员被允许使用这些数据独立测试观察员被允许使用这些数据5.5操作验收

225、测试角色和职责操作验收测试角色和职责l l测试组组长:监督测试过程,使用适当的测试组组长:监督测试过程,使用适当的测试技术执行充分的测试测试技术执行充分的测试l l测试分析员:与用户代表联系,确定在用测试分析员:与用户代表联系,确定在用户验收测试时重新运行的测试用例户验收测试时重新运行的测试用例l l测试员:协助用户代表执行测试用例测试员:协助用户代表执行测试用例l l独立测试观察员:监控测试过程独立测试观察员:监控测试过程5.5操作验收测试计划和资源操作验收测试计划和资源l l在用户中选择一个或多个用户操作代表在用户中选择一个或多个用户操作代表l l不一定使用真实数据,但测试数据应的数不一定

226、使用真实数据,但测试数据应的数量和复杂性应能够代表真实的数据量和复杂性应能够代表真实的数据l l应考虑缺陷的更正及重新测试所需的时间应考虑缺陷的更正及重新测试所需的时间和人力和人力5.5操作验收测试输入操作验收测试输入l l被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档被测试系统的需求规格文档l l被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档被测试系统的设计文档l l补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)补充材料(如用户手册)l l操作验收测试计划操作验收测试计划操作验收测试计划操作验收测试计划l l操作验收测试规范说明文档

227、操作验收测试规范说明文档操作验收测试规范说明文档操作验收测试规范说明文档l l操作验收测试指南操作验收测试指南操作验收测试指南操作验收测试指南l l操作验收测试用例操作验收测试用例操作验收测试用例操作验收测试用例l l空白的测试记录表格空白的测试记录表格空白的测试记录表格空白的测试记录表格5.5操作验收测试测试技术操作验收测试测试技术l l针对高级需求的黑盒测试针对高级需求的黑盒测试l l可用性测试保证被测试系统的可用性测试保证被测试系统的GUI具有直具有直观性、一致性和易用性,并保证在线帮助观性、一致性和易用性,并保证在线帮助机制是令人满意的机制是令人满意的l l系统文档(如用户手册)及其在

228、被测试系系统文档(如用户手册)及其在被测试系统中的使用的静态测试统中的使用的静态测试5.5操作验收测试输出操作验收测试输出l l操作验收过的系统操作验收过的系统操作验收过的系统操作验收过的系统l l操作验收测试证明操作验收测试证明操作验收测试证明操作验收测试证明l l修正的测试用例修正的测试用例修正的测试用例修正的测试用例l l归档的测试数据归档的测试数据归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格l l操作验收测试日志操作验收测试日志操作验收测试日志操作验收测试日志l l操作验收测试报告操作验收测试报告操作验收测试

229、报告操作验收测试报告5.5操作验收测试过程操作验收测试过程操作验收测试输入操作验收测试输入执行操作验收测试执行操作验收测试分析结果分析结果检测到错误检测到错误?否否操作验收测试输出操作验收测试输出是是调整并修正被测试系统调整并修正被测试系统/修正测修正测试用例试用例设计新的设计新的/重用旧的测试用例重用旧的测试用例5.5软件测试停止标准软件测试停止标准l l软件系统经过单元、集成、系统测试,软件系统经过单元、集成、系统测试,软件系统经过单元、集成、系统测试,软件系统经过单元、集成、系统测试, 分别达分别达分别达分别达到单元、集成、系统测试停止标准到单元、集成、系统测试停止标准到单元、集成、系统

230、测试停止标准到单元、集成、系统测试停止标准 l l软件系统通过验收测试,软件系统通过验收测试,软件系统通过验收测试,软件系统通过验收测试, 并已得出验收测试结并已得出验收测试结并已得出验收测试结并已得出验收测试结论论论论 l l软件项目需暂停以进行调整时,测试应随之暂停,软件项目需暂停以进行调整时,测试应随之暂停,软件项目需暂停以进行调整时,测试应随之暂停,软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据并备份暂停点数据并备份暂停点数据并备份暂停点数据 l l软件项目在其开发生命周期内出现重大估算,进软件项目在其开发生命周期内出现重大估算,进软件项目在其开发生命周期内出现重大估算,

231、进软件项目在其开发生命周期内出现重大估算,进度偏差,需暂停或终止时,度偏差,需暂停或终止时,度偏差,需暂停或终止时,度偏差,需暂停或终止时, 测试应随之暂停或测试应随之暂停或测试应随之暂停或测试应随之暂停或终止,并备份暂停或终止点数据终止,并备份暂停或终止点数据终止,并备份暂停或终止点数据终止,并备份暂停或终止点数据 5.5软件测试覆盖率标准软件测试覆盖率标准l l语句覆盖率最低不能小于语句覆盖率最低不能小于80%80%l l测试用例执行覆盖率应达到测试用例执行覆盖率应达到100% 100% l l测试需求覆盖率应达到测试需求覆盖率应达到100% 100% 5.6回归测试概述回归测试概述l l

232、目标:保证被测试系统在系统被修改或目标:保证被测试系统在系统被修改或扩充后,各项功能依然正确扩充后,各项功能依然正确l l黑盒技术黑盒技术5.6回归测试方法回归测试方法l l在合适的特定阶段,对被测试系统新增或在合适的特定阶段,对被测试系统新增或扩充部分的功能进行测试以验证其满足需扩充部分的功能进行测试以验证其满足需求求l l评审被测试系统评审被测试系统5.6回归测试数据需求回归测试数据需求l l保证可能会影响到测试的输出的因素和保证可能会影响到测试的输出的因素和最初在未修改的软件上进行测试时的那最初在未修改的软件上进行测试时的那些因素尽可能一致些因素尽可能一致5.6回归测试角色和职责回归测试

233、角色和职责l l测试组组长:监督测试过程,使用适当的测试组组长:监督测试过程,使用适当的测试技术执行充分的测试测试技术执行充分的测试l l测试分析员:与用户代表联系,确定在用测试分析员:与用户代表联系,确定在用户验收测试时重新运行的测试用例户验收测试时重新运行的测试用例l l测试员:协助用户代表执行测试用例测试员:协助用户代表执行测试用例l l独立测试观察员:监控测试过程独立测试观察员:监控测试过程5.6回归测试计划和资源回归测试计划和资源l l回归测试人员应从测试组中选出回归测试人员应从测试组中选出l l可以在专门环境和真实环境中进行可以在专门环境和真实环境中进行l l应考虑缺陷的更正及重新

234、测试所需要的时应考虑缺陷的更正及重新测试所需要的时间和人力间和人力5.6回归测试输入回归测试输入l l从前测试阶段中得到的适用的重用包从前测试阶段中得到的适用的重用包从前测试阶段中得到的适用的重用包从前测试阶段中得到的适用的重用包l l被测试系统的需求规格说明和设计文档被测试系统的需求规格说明和设计文档被测试系统的需求规格说明和设计文档被测试系统的需求规格说明和设计文档l l补充材料(如用户指南)补充材料(如用户指南)补充材料(如用户指南)补充材料(如用户指南)l l回归测试规格说明文档回归测试规格说明文档回归测试规格说明文档回归测试规格说明文档l l回归测试指南回归测试指南回归测试指南回归测

235、试指南l l回归测试测试用例回归测试测试用例回归测试测试用例回归测试测试用例l l空白的测试结果记录表格空白的测试结果记录表格空白的测试结果记录表格空白的测试结果记录表格5.6回归测试测试技术回归测试测试技术l l针对高级系统需求的黑盒测试针对高级系统需求的黑盒测试l l针对可能受到新的扩充或增强部分损针对可能受到新的扩充或增强部分损害的被测试系统的其他方面的黑盒测害的被测试系统的其他方面的黑盒测试试l l性能测试(如压力、容量测试等)性能测试(如压力、容量测试等)5.6回归测试输出回归测试输出l l完整的经过回归测试的系统完整的经过回归测试的系统完整的经过回归测试的系统完整的经过回归测试的系

236、统l l完整的回归测试证明完整的回归测试证明完整的回归测试证明完整的回归测试证明l l修正过的测试用例修正过的测试用例修正过的测试用例修正过的测试用例l l归档的测试数据归档的测试数据归档的测试数据归档的测试数据l l完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格完成的测试结果记录表格l l回归测试日志回归测试日志回归测试日志回归测试日志l l回归测试重用包回归测试重用包回归测试重用包回归测试重用包5.6回归测试过程回归测试过程回归测试输入回归测试输入执行回归测试执行回归测试分析结果分析结果检测到错误检测到错误?否否回归测试输出回归测试输出是是调整并修正被测试系统调整并修正

237、被测试系统/修正测试修正测试用例用例设计新的设计新的/重用旧的测试用例重用旧的测试用例5.7测试的分类与比较测试的分类与比较问题问题问题问题1 1 1 1:有了:有了:有了:有了“ “黑盒黑盒黑盒黑盒” ”测试为什么还要测试为什么还要测试为什么还要测试为什么还要“ “白盒白盒白盒白盒” ”测试?测试?测试?测试?l l黑黑黑黑盒盒盒盒测测测测试试试试只只只只能能能能观观观观察察察察软软软软件件件件的的的的外外外外部部部部表表表表现现现现,即即即即使使使使软软软软件件件件的的的的输输输输入入入入输输输输出出出出都都都都是是是是正正正正确确确确的的的的,却却却却并并并并不不不不能能能能说说说说明明

238、明明软软软软件件件件就就就就是是是是正正正正确确确确的的的的。因因因因为为为为程程程程序序序序有有有有可可可可能能能能用用用用错错错错误误误误的的的的运运运运算算算算方方方方式式式式得得得得出出出出正正正正确确确确的的的的结结结结果果果果,例例例例如如如如“ “负负负负负负负负得得得得正正正正,错错错错错错错错得得得得对对对对” ”,只只只只有有有有白白白白盒盒盒盒测测测测试试试试才才才才能能能能发现真正的原因。发现真正的原因。发现真正的原因。发现真正的原因。l l白盒测试能发现程序里的隐患,象内存泄白盒测试能发现程序里的隐患,象内存泄白盒测试能发现程序里的隐患,象内存泄白盒测试能发现程序里的

239、隐患,象内存泄漏、误差累计问题。在这方面,黑盒测试漏、误差累计问题。在这方面,黑盒测试漏、误差累计问题。在这方面,黑盒测试漏、误差累计问题。在这方面,黑盒测试存在严重的不足。存在严重的不足。存在严重的不足。存在严重的不足。 5.7测试的分类与比较测试的分类与比较问题问题问题问题2 2 2 2:如果每个单元都通过了测试,把它们:如果每个单元都通过了测试,把它们:如果每个单元都通过了测试,把它们:如果每个单元都通过了测试,把它们集成一起难道会有什么不妥吗?集成测试是集成一起难道会有什么不妥吗?集成测试是集成一起难道会有什么不妥吗?集成测试是集成一起难道会有什么不妥吗?集成测试是否多此一举?否多此一

240、举?否多此一举?否多此一举?l l要要要要把把把把N N N N个个个个单单单单元元元元集集集集成成成成一一一一起起起起肯肯肯肯定定定定靠靠靠靠接接接接口口口口耦耦耦耦合合合合,这这这这时时时时可可可可能能能能会会会会产产产产生生生生在在在在单单单单元元元元测测测测试试试试中中中中无无无无法法法法发发发发现现现现的的的的问问问问题题题题。例例例例如如如如:数数数数据据据据通通通通过过过过不不不不同同同同的的的的接接接接口口口口时时时时可可可可能能能能出出出出错错错错;几几几几个个个个函函函函数数数数关关关关联联联联在在在在一一一一起起起起时时时时可可可可能能能能达达达达不不不不到到到到预预预预

241、期期期期的的的的功功功功能能能能;在在在在某某某某个个个个单单单单元元元元里里里里可可可可以以以以接接接接受受受受的的的的误误误误差差差差可可可可能能能能在在在在集集集集成成成成后后后后被被被被扩扩扩扩大大大大到到到到无无无无法法法法接接接接受受受受的的的的程度。所以集成测试是必要的,不是多此一举。程度。所以集成测试是必要的,不是多此一举。程度。所以集成测试是必要的,不是多此一举。程度。所以集成测试是必要的,不是多此一举。5.7测试的分类与比较测试的分类与比较问题问题问题问题3 3 3 3:在集成测试的时候,已经对一些子系:在集成测试的时候,已经对一些子系:在集成测试的时候,已经对一些子系:在

242、集成测试的时候,已经对一些子系统进行了功能测试、性能测试等等,那么在统进行了功能测试、性能测试等等,那么在统进行了功能测试、性能测试等等,那么在统进行了功能测试、性能测试等等,那么在系统测试时能否跳过相同内容的测试系统测试时能否跳过相同内容的测试系统测试时能否跳过相同内容的测试系统测试时能否跳过相同内容的测试? ? ? ? l l不能!因为集成测试是在仿真环境中开展不能!因为集成测试是在仿真环境中开展不能!因为集成测试是在仿真环境中开展不能!因为集成测试是在仿真环境中开展的,那不是真正的目标系统。再者,单元的,那不是真正的目标系统。再者,单元的,那不是真正的目标系统。再者,单元的,那不是真正的

243、目标系统。再者,单元测试和集成测试通常由开发小组执行。根测试和集成测试通常由开发小组执行。根测试和集成测试通常由开发小组执行。根测试和集成测试通常由开发小组执行。根据测试心理学的分析,开发人员测试自己据测试心理学的分析,开发人员测试自己据测试心理学的分析,开发人员测试自己据测试心理学的分析,开发人员测试自己的工作成果虽然是必要的,但不能作为成的工作成果虽然是必要的,但不能作为成的工作成果虽然是必要的,但不能作为成的工作成果虽然是必要的,但不能作为成果已经通过测试的依据。果已经通过测试的依据。果已经通过测试的依据。果已经通过测试的依据。 5.7测试的分类与比较测试的分类与比较问题问题问题问题4

244、4 4 4:既然系统测试与验收测试的内容几乎是相同:既然系统测试与验收测试的内容几乎是相同:既然系统测试与验收测试的内容几乎是相同:既然系统测试与验收测试的内容几乎是相同的,为什么还要验收测试?的,为什么还要验收测试?的,为什么还要验收测试?的,为什么还要验收测试?l l首先是首先是首先是首先是“ “信任信任信任信任” ”问题。对于合同项目而言,如果问题。对于合同项目而言,如果问题。对于合同项目而言,如果问题。对于合同项目而言,如果测试小组是开发方的人员,客户怎么能够轻易相测试小组是开发方的人员,客户怎么能够轻易相测试小组是开发方的人员,客户怎么能够轻易相测试小组是开发方的人员,客户怎么能够轻

245、易相信信信信“ “别人别人别人别人” ”呢呢呢呢? ? ? ? 所以当项目进行系统测试之后,所以当项目进行系统测试之后,所以当项目进行系统测试之后,所以当项目进行系统测试之后,客户再进行验收测试是情理之中的事。否则,那客户再进行验收测试是情理之中的事。否则,那客户再进行验收测试是情理之中的事。否则,那客户再进行验收测试是情理之中的事。否则,那是客户失职。是客户失职。是客户失职。是客户失职。 l l不论是合同项目还是非合同项目,软件的最终用不论是合同项目还是非合同项目,软件的最终用不论是合同项目还是非合同项目,软件的最终用不论是合同项目还是非合同项目,软件的最终用户各色各样(如受教育程度不同、使

246、用习惯不同户各色各样(如受教育程度不同、使用习惯不同户各色各样(如受教育程度不同、使用习惯不同户各色各样(如受教育程度不同、使用习惯不同等等)。测试小组至多能够模仿小部分用户的行等等)。测试小组至多能够模仿小部分用户的行等等)。测试小组至多能够模仿小部分用户的行等等)。测试小组至多能够模仿小部分用户的行为,但并不具有普遍的代表性。为,但并不具有普遍的代表性。为,但并不具有普遍的代表性。为,但并不具有普遍的代表性。5.7测试的分类与比较测试的分类与比较问题问题问题问题5 5 5 5:能否将系统测试和验收测试:能否将系统测试和验收测试:能否将系统测试和验收测试:能否将系统测试和验收测试“ “合二为

247、一合二为一合二为一合二为一” ”? l l系系系系统统统统测测测测试试试试不不不不是是是是一一一一会会会会儿儿儿儿就就就就能能能能做做做做完完完完的的的的,比比比比较较较较长长长长时时时时间间间间的的的的用用用用户户户户测测测测试试试试很很很很难难难难组组组组织织织织。用用用用户户户户还还还还有有有有自自自自己己己己的的的的事事事事情情情情要要要要做做做做,他他他他们们们们为为为为什什什什么么么么要要要要为为为为别别别别人人人人测测测测试试试试呢呢呢呢?即即即即使使使使用用用用户户户户愿愿愿愿意意意意做做做做系系系系统统统统测测测测试试试试,他他他他们们们们消消消消耗耗耗耗的的的的时时时时间间

248、间间、花花花花费费费费的的的的金金金金钱钱钱钱大大大大多多多多比比比比测测测测试小组的高。试小组的高。试小组的高。试小组的高。l l系统测试时会找出相当多的软件缺陷,软件需要系统测试时会找出相当多的软件缺陷,软件需要系统测试时会找出相当多的软件缺陷,软件需要系统测试时会找出相当多的软件缺陷,软件需要反反复复地改错。如果让用户发现反反复复地改错。如果让用户发现反反复复地改错。如果让用户发现反反复复地改错。如果让用户发现“ “内幕内幕内幕内幕” ”,一,一,一,一是丢脸,二是会吓跑买主。所以还是关起门来,是丢脸,二是会吓跑买主。所以还是关起门来,是丢脸,二是会吓跑买主。所以还是关起门来,是丢脸,二

249、是会吓跑买主。所以还是关起门来,先让测试小组做完系统测试的好。先让测试小组做完系统测试的好。先让测试小组做完系统测试的好。先让测试小组做完系统测试的好。5.7企业的测试策略企业的测试策略l l理念:理念:理念:理念:企业的主要目的是获取利润,降低测试成本企业的主要目的是获取利润,降低测试成本企业的主要目的是获取利润,降低测试成本企业的主要目的是获取利润,降低测试成本也是盈利的一种方式。也是盈利的一种方式。也是盈利的一种方式。也是盈利的一种方式。 用较低的代价实现有效的测试,不应为了追用较低的代价实现有效的测试,不应为了追用较低的代价实现有效的测试,不应为了追用较低的代价实现有效的测试,不应为了

250、追求完美的测试而不失一切代价。求完美的测试而不失一切代价。求完美的测试而不失一切代价。求完美的测试而不失一切代价。5.7企业的测试策略企业的测试策略l l如何合理地减少测试工作量如何合理地减少测试工作量如何合理地减少测试工作量如何合理地减少测试工作量减少冗余的测试减少冗余的测试减少冗余的测试减少冗余的测试l l白盒测试与黑盒测试的方式虽然不同,但白盒测试与黑盒测试的方式虽然不同,但白盒测试与黑盒测试的方式虽然不同,但白盒测试与黑盒测试的方式虽然不同,但往往有往往有往往有往往有“ “异曲同工异曲同工异曲同工异曲同工” ”之妙。在很多地方,之妙。在很多地方,之妙。在很多地方,之妙。在很多地方,白盒

251、测试与黑盒测试会产生一模一样的效白盒测试与黑盒测试会产生一模一样的效白盒测试与黑盒测试会产生一模一样的效白盒测试与黑盒测试会产生一模一样的效果(或者能推理出),这样的测试是冗余果(或者能推理出),这样的测试是冗余果(或者能推理出),这样的测试是冗余果(或者能推理出),这样的测试是冗余的。的。的。的。l l在集成测试、系统测试阶段,可能要执行在集成测试、系统测试阶段,可能要执行在集成测试、系统测试阶段,可能要执行在集成测试、系统测试阶段,可能要执行多次多次多次多次“ “回归测试回归测试回归测试回归测试” ”。每一次。每一次。每一次。每一次“ “回归测试回归测试回归测试回归测试” ”都会存在不少的

252、冗余,应当设法剔除不必都会存在不少的冗余,应当设法剔除不必都会存在不少的冗余,应当设法剔除不必都会存在不少的冗余,应当设法剔除不必要的重复测试工作。要的重复测试工作。要的重复测试工作。要的重复测试工作。 5.7企业的测试策略企业的测试策略减少无价值的测试减少无价值的测试l l无价值的测试通常是由于不懂得测试无价值的测试通常是由于不懂得测试技术引起的。例如功能测试,在等价技术引起的。例如功能测试,在等价区间之中,本来只要测试一个典型的区间之中,本来只要测试一个典型的输入就行了,如果有人在此区间测试输入就行了,如果有人在此区间测试了了100100次,那么其中次,那么其中9999次就是无价值次就是无

253、价值的。的。 5.7企业的测试策略企业的测试策略如何如何如何如何“ “偷工减料偷工减料偷工减料偷工减料” ” l l有有有有一一一一些些些些“ “短短短短、平平平平、快快快快” ”的的的的项项项项目目目目,经经经经费费费费本本本本来来来来就就就就少少少少,用用用用户户户户对对对对质质质质量量量量要要要要求求求求也也也也马马马马马马马马虎虎虎虎虎虎虎虎。为为为为了了了了能能能能多多多多挣挣挣挣一一一一点点点点钱钱钱钱,开开开开发发发发方方方方不不不不得得得得不不不不采采采采用用用用“ “偷偷偷偷工工工工减减减减料料料料” ”的的的的方方方方式式式式来来来来降降降降低低低低测测测测试试试试代代代代

254、价价价价。偷偷偷偷工工工工减减减减料料料料的的的的途途途途径径径径无无无无非非非非就就就就是是是是减减减减少少少少测测测测试试试试的的的的内内内内容容容容和和和和频频频频度度度度。但但但但不不不不能能能能砍砍砍砍得得得得太太太太狠狠狠狠,否否否否则则则则软软软软件件件件拿拿拿拿不不不不出出出出手手手手。基基基基本本本本方方方方法法法法是是是是找找找找出出出出软软软软件件件件中中中中需需需需要要要要优优优优先先先先测测测测试试试试的的的的部部部部分分分分(见见见见下下下下表表表表),其其其其它它它它次次次次要要要要部部部部分分分分可可可可以以以以忽忽忽忽略略略略或或或或将将将将来再测试。来再测试

255、。来再测试。来再测试。5.7企业的测试策略企业的测试策略 “偷工减料偷工减料”方法的测试优先级:方法的测试优先级:l l哪些功能是软件的特色?哪些功能是软件的特色? l l哪些功能是用户最常用的?哪些功能是用户最常用的? l l如果系统可以分块卖的话,哪些功能如果系统可以分块卖的话,哪些功能块在销售时最昂贵?块在销售时最昂贵? l l哪些功能出错将导致用户不满或索赔哪些功能出错将导致用户不满或索赔?5.7企业的测试策略企业的测试策略l l哪些程序是最复杂、最容易出错的?哪些程序是最复杂、最容易出错的?l l哪些程序是相对独立,应当提前测试哪些程序是相对独立,应当提前测试的?的?l l哪些程序最

256、容易扩散错误?哪些程序最容易扩散错误?l l哪些程序是全系统的性能瓶颈所在?哪些程序是全系统的性能瓶颈所在?l l哪些程序是开发者最没有信心的?哪些程序是开发者最没有信心的?第六章第六章软件测试软件测试管理体系管理体系414测试的组织测试的组织开发组开发组测试组测试组高级管理人员高级管理人员测试主管测试主管独立测试独立测试观察员观察员用户代表用户代表操作代表操作代表测试组组长测试组组长测试者测试者测试者测试者测试者测试者测试分析员测试分析员测试分析员测试分析员测试分析员测试分析员开发组开发组组长组长开发组开发组角色和职责测试主管角色和职责测试主管l l管理测试过程日常的组织管理测试过程日常的组

257、织l l负责与开发组进行联系负责与开发组进行联系l l负责向公司的高级主管或领导报告负责向公司的高级主管或领导报告l l在验收测试第三方软件时,作为公司的代在验收测试第三方软件时,作为公司的代表表l l可以由高级主管或质量保证主管兼职可以由高级主管或质量保证主管兼职角色和职责测试组组长角色和职责测试组组长l l为一个或多个测试分析员和测试者分配任为一个或多个测试分析员和测试者分配任务务l l按照预定的计划监控他们的进度按照预定的计划监控他们的进度l l建立和维护测试项目文件系统建立和维护测试项目文件系统l l产生测试项目相关材料产生测试项目相关材料l l向测试主管汇报测试的进展向测试主管汇报测

258、试的进展角色和职责测试组组长角色和职责测试组组长l l相关材料:测试计划。是测试过程的项目相关材料:测试计划。是测试过程的项目管理的基础管理的基础l l相关材料:测试规范说明。详细罗列测试相关材料:测试规范说明。详细罗列测试被测试系统的方法、所需资源、测试环境、被测试系统的方法、所需资源、测试环境、评估标准和可接受的缺陷发生频率、停机评估标准和可接受的缺陷发生频率、停机标准。标准。角色和职责测试分析员角色和职责测试分析员l l设计和实现用于完成被测试系统测试的测设计和实现用于完成被测试系统测试的测试用例试用例l l协助测试组组长生成测试规格说明文档协助测试组组长生成测试规格说明文档l l备份和

259、归档所有的测试文档和材料备份和归档所有的测试文档和材料l l完成测试总结报告完成测试总结报告角色和职责测试者角色和职责测试者l l执行由测试分析员建立的测试脚本执行由测试分析员建立的测试脚本l l解释测试结果解释测试结果l l录入测试结果录入测试结果l l向测试组组长汇报向测试组组长汇报角色和职责独立测试观察员角色和职责独立测试观察员l l负责验证在被测试系统的测试过程中,执负责验证在被测试系统的测试过程中,执行了正确的过程行了正确的过程l l与测试主管联系与测试主管联系l l可以从质量保证代表中选出可以从质量保证代表中选出V模型模型需求需求规格说明规格说明设计设计实现实现单元测试单元测试集成

260、测试集成测试系统测试系统测试验收测试验收测试计划单元测试计划单元测试计划集成测试计划集成测试计划系统测试计划系统测试计划验收测试计划验收测试测试需求管理测试需求管理l l测试前,测试分析员需要精确的了解测试前,测试分析员需要精确的了解被测试系统的需求被测试系统的需求l l可以利用需求管理工具对需求进行管可以利用需求管理工具对需求进行管理理缺陷跟踪缺陷跟踪l l唯一标识缺陷、注册缺陷及其特征唯一标识缺陷、注册缺陷及其特征l l将一个严重程度的数值和缺陷相对应将一个严重程度的数值和缺陷相对应l l将一个决定的优先级和缺陷相连将一个决定的优先级和缺陷相连缺陷跟踪(续)缺陷跟踪(续)l l定义工作流,

261、用于向相关人员提供缺陷的定义工作流,用于向相关人员提供缺陷的详细信息,以及它在系统中随进展发生的详细信息,以及它在系统中随进展发生的状态状态l l定义在缺陷跟踪过程中涉及到的人员的权定义在缺陷跟踪过程中涉及到的人员的权利和权限利和权限l l定义公司的特殊需求定义公司的特殊需求案例分析案例分析l l陈有为是一名资深的测试工程师,公司任命他为一个为陈有为是一名资深的测试工程师,公司任命他为一个为陈有为是一名资深的测试工程师,公司任命他为一个为陈有为是一名资深的测试工程师,公司任命他为一个为期三个月的测试项目的项目经理。他要带领期三个月的测试项目的项目经理。他要带领期三个月的测试项目的项目经理。他要

262、带领期三个月的测试项目的项目经理。他要带领5 5名测试工名测试工名测试工名测试工程师完成本项目,其中两名熟练的测试工程师,三名新程师完成本项目,其中两名熟练的测试工程师,三名新程师完成本项目,其中两名熟练的测试工程师,三名新程师完成本项目,其中两名熟练的测试工程师,三名新招聘的测试工程师。招聘的测试工程师。招聘的测试工程师。招聘的测试工程师。l l被测试的系统共有六个子系统,陈有为安排每人负责一被测试的系统共有六个子系统,陈有为安排每人负责一被测试的系统共有六个子系统,陈有为安排每人负责一被测试的系统共有六个子系统,陈有为安排每人负责一个子系统,自己承担最重要的子系统,每个人将测试结个子系统,

263、自己承担最重要的子系统,每个人将测试结个子系统,自己承担最重要的子系统,每个人将测试结个子系统,自己承担最重要的子系统,每个人将测试结果直接发给用户。果直接发给用户。果直接发给用户。果直接发给用户。l l项目启动后,客户非常不满意,抱怨主要集中在三名新项目启动后,客户非常不满意,抱怨主要集中在三名新项目启动后,客户非常不满意,抱怨主要集中在三名新项目启动后,客户非常不满意,抱怨主要集中在三名新人身上。人身上。人身上。人身上。l l陈有为和另外两名熟练的测试工程师都承担这繁重的测陈有为和另外两名熟练的测试工程师都承担这繁重的测陈有为和另外两名熟练的测试工程师都承担这繁重的测陈有为和另外两名熟练的

264、测试工程师都承担这繁重的测试任务,无法帮助三名新人,他一时不知如何是好?试任务,无法帮助三名新人,他一时不知如何是好?试任务,无法帮助三名新人,他一时不知如何是好?试任务,无法帮助三名新人,他一时不知如何是好?讨论讨论l l针对上述案例,请你分析测试组可能针对上述案例,请你分析测试组可能遇到的问题,并提出解决问题的建议遇到的问题,并提出解决问题的建议软件测试管理要素软件测试管理要素l l测试计划(测试计划(Plan)l l测试人员及组织(测试人员及组织(People)l l测试过程(测试过程(Process)技术过程、支持过程、管理过程技术过程、支持过程、管理过程l l测试工作产品(测试工作产

265、品(Product)测试计划、测试用例、缺陷报告、测测试计划、测试用例、缺陷报告、测试报告试报告软件测试管理的系统方法软件测试管理的系统方法l l以系统的观点看待软件测试管理,测试管以系统的观点看待软件测试管理,测试管理是软件项目管理的一个子系统理是软件项目管理的一个子系统l l关注软件测试中的四要素关注软件测试中的四要素l l关注软件测试管理子系统与开发管理子系关注软件测试管理子系统与开发管理子系统的相互关系统的相互关系l l关注软件测试系统中各过程的相互关联、关注软件测试系统中各过程的相互关联、相互作用相互作用测试计划测试计划l l测试估计测试估计l l确定切实可行的测试目标确定切实可行的

266、测试目标l l制定合理的软件测试计划制定合理的软件测试计划l l控制测试计划的执行控制测试计划的执行人员管理人员管理l l选择合适的测试人员选择合适的测试人员l l是测试人员能够按照计划完成测试任务是测试人员能够按照计划完成测试任务l l与相关方进行沟通、协同工作与相关方进行沟通、协同工作l l建立有效的测试团队建立有效的测试团队测试过程测试过程l l定义和定制所需要的测试过程定义和定制所需要的测试过程l l满足测试过程所需要的资源和条件满足测试过程所需要的资源和条件l l实施确定的测试过程实施确定的测试过程l l测量和分析测试过程的有效性和效率测量和分析测试过程的有效性和效率l l进行基于度

267、量的软件测试过程的持续改进进行基于度量的软件测试过程的持续改进测试产品测试产品l l检查和评测测试工作产品检查和评测测试工作产品l l测量和分析测试对象测量和分析测试对象-开发的软件产品、收开发的软件产品、收集质量分析和合产品放行决策所需要的数集质量分析和合产品放行决策所需要的数据据l l测试配置管理测试配置管理软件测试人员管理软件测试人员管理l人员的选择人员的选择l人员的激励人员的激励l职业发展计划职业发展计划l人员的培训人员的培训测试人员的选择测试人员的选择l l计算机技能计算机技能l l测试能力测试能力l l测试经验测试经验l l产品经验产品经验l l开发经验开发经验l l职业素质职业素

268、质测试人员的选择(续)测试人员的选择(续)合适的人员特征合适的人员特征不合适的人员特征不合适的人员特征愿意将测试作为自己的工作愿意将测试作为自己的工作轻视测试,愿意以开发作为自己的职业轻视测试,愿意以开发作为自己的职业职业悲观主义者(产品负面)职业悲观主义者(产品负面)容易妥协,害怕争论容易妥协,害怕争论愿意承担繁重的测试工作愿意承担繁重的测试工作不愿意作艰苦的测试工作不愿意作艰苦的测试工作善于观察,能识别细微的差别善于观察,能识别细微的差别粗心大意,忽视席位的差别粗心大意,忽视席位的差别逻辑性强、思维慎密、表达清晰逻辑性强、思维慎密、表达清晰思维粗糙、不周全、不能清晰地表达思维粗糙、不周全、

269、不能清晰地表达具有自我管理能力,不偏离工作主线具有自我管理能力,不偏离工作主线不能把握工作重点、易陷于细枝末节不能把握工作重点、易陷于细枝末节掌握必要的技术背景及技能掌握必要的技术背景及技能技术背景弱技术背景弱测试人员及组织测试人员及组织l l选择合适的测试人员选择合适的测试人员l l使测试人员能够按测试计划完成测试任务使测试人员能够按测试计划完成测试任务l l与相关方进行沟通与相关方进行沟通l l建立有效的测试团队建立有效的测试团队测试人员能力及要求测试人员能力及要求l l质量保证协会关于认证软件测试工程师的质量保证协会关于认证软件测试工程师的五个方面的能力要求五个方面的能力要求测试人员能力

270、及要求(续)测试人员能力及要求(续)l l一般能力:表达、交流、协调、管理、质一般能力:表达、交流、协调、管理、质量意识、软件工程等量意识、软件工程等l l测试技能及方法:测试基本概念及方法、测试技能及方法:测试基本概念及方法、测试工具及环境、专业测试标准等测试工具及环境、专业测试标准等l l测试规划能力:风险分析及防范、软件发测试规划能力:风险分析及防范、软件发行标准、测试目标及计划、测试计划及评行标准、测试目标及计划、测试计划及评审方法审方法测试人员能力及要求(续)测试人员能力及要求(续)l l测试执行能力:测试数据测试执行能力:测试数据/用例、测试比较用例、测试比较及分析、缺陷记录及处理

271、、自动化工具及分析、缺陷记录及处理、自动化工具l l测试分析、报告和改进能力:测试统计、测试分析、报告和改进能力:测试统计、测试报告、过程监测及持续改进测试报告、过程监测及持续改进测试人员的激励测试人员的激励X理论理论胡萝卜大棒迫使人们工作胡萝卜大棒迫使人们工作Y理论理论经理的职能不是督促人们工作,而是经理的职能不是督促人们工作,而是人们有可能工作人们有可能工作需求的层次(需求的层次(Maslow模型)模型)生存需求工作职位、工资奖金、休息时间生存需求工作职位、工资奖金、休息时间安全需求公正待遇、应付工作的能力和信安全需求公正待遇、应付工作的能力和信心心社会需求团队归属感,相互理解、认同和社会

272、需求团队归属感,相互理解、认同和支持支持自尊需求具有受人尊重自尊需求具有受人尊重/赏识的能力和业赏识的能力和业绩绩自我实现需求成为自己期望的人物自我实现需求成为自己期望的人物人员激励人员激励l l管理者习惯用对自己有效的因素激励测试人员,很可能管理者习惯用对自己有效的因素激励测试人员,很可能管理者习惯用对自己有效的因素激励测试人员,很可能管理者习惯用对自己有效的因素激励测试人员,很可能无效无效无效无效l l过多地使用权利、资金和处罚将无济于事过多地使用权利、资金和处罚将无济于事过多地使用权利、资金和处罚将无济于事过多地使用权利、资金和处罚将无济于事l l行业领先企业采用的卓有成效的非货币形式的

273、奖励措施行业领先企业采用的卓有成效的非货币形式的奖励措施行业领先企业采用的卓有成效的非货币形式的奖励措施行业领先企业采用的卓有成效的非货币形式的奖励措施l l在项目进行过程中,而不是项目结束后奖励在项目进行过程中,而不是项目结束后奖励在项目进行过程中,而不是项目结束后奖励在项目进行过程中,而不是项目结束后奖励l l奖励应该在工作获得认同后尽快兑现奖励应该在工作获得认同后尽快兑现奖励应该在工作获得认同后尽快兑现奖励应该在工作获得认同后尽快兑现l l对人员的工作表现出真诚的兴趣,是对他们最好的奖励对人员的工作表现出真诚的兴趣,是对他们最好的奖励对人员的工作表现出真诚的兴趣,是对他们最好的奖励对人员

274、的工作表现出真诚的兴趣,是对他们最好的奖励l l奖励因素是因人而异、因时而异的,已经满足的需要很奖励因素是因人而异、因时而异的,已经满足的需要很奖励因素是因人而异、因时而异的,已经满足的需要很奖励因素是因人而异、因时而异的,已经满足的需要很可能不能成为奖励的因素可能不能成为奖励的因素可能不能成为奖励的因素可能不能成为奖励的因素测试人员职业发展计划测试人员职业发展计划l l初级测试工程师初级测试工程师初级测试工程师初级测试工程师具备必要的计算机知识和技能具备必要的计算机知识和技能具备必要的计算机知识和技能具备必要的计算机知识和技能掌握测试技能和方法,具有测试掌握测试技能和方法,具有测试掌握测试技

275、能和方法,具有测试掌握测试技能和方法,具有测试/ /实施能力实施能力实施能力实施能力l l中级测试工程师中级测试工程师中级测试工程师中级测试工程师初级测试工程师一年以上经验初级测试工程师一年以上经验初级测试工程师一年以上经验初级测试工程师一年以上经验具有测试设计能力,能够指导初级测试工程师具有测试设计能力,能够指导初级测试工程师具有测试设计能力,能够指导初级测试工程师具有测试设计能力,能够指导初级测试工程师工作工作工作工作测试人员职业发展计划测试人员职业发展计划l l高级测试工程师高级测试工程师高级测试工程师高级测试工程师中级测试工程师一年以上工作经验中级测试工程师一年以上工作经验中级测试工程

276、师一年以上工作经验中级测试工程师一年以上工作经验具有测试规划及管理能力,测试分析机报告能具有测试规划及管理能力,测试分析机报告能具有测试规划及管理能力,测试分析机报告能具有测试规划及管理能力,测试分析机报告能力,测试过程设计及改进能力力,测试过程设计及改进能力力,测试过程设计及改进能力力,测试过程设计及改进能力可以指导中级测试工程师的工作可以指导中级测试工程师的工作可以指导中级测试工程师的工作可以指导中级测试工程师的工作12年的测试发展计划(年的测试发展计划(E.Dustinetc)l l1-21-2年年年年 技术技能技术技能技术技能技术技能 熟悉整个测试过程及产品业务领域,学习熟悉整个测试过

277、程及产品业务领域,学习熟悉整个测试过程及产品业务领域,学习熟悉整个测试过程及产品业务领域,学习 和和和和掌握自动测试工具,学习测试自动化编程工具掌握自动测试工具,学习测试自动化编程工具掌握自动测试工具,学习测试自动化编程工具掌握自动测试工具,学习测试自动化编程工具 开发和执行测试脚本,承担测试实施任务开发和执行测试脚本,承担测试实施任务开发和执行测试脚本,承担测试实施任务开发和执行测试脚本,承担测试实施任务 掌握编程语言、操作系统、网络与数据库方面掌握编程语言、操作系统、网络与数据库方面掌握编程语言、操作系统、网络与数据库方面掌握编程语言、操作系统、网络与数据库方面的技能的技能的技能的技能12

278、年的测试发展计划(年的测试发展计划(E.Dustinetc)l l3-43-4年年年年 测试过程测试过程测试过程测试过程 深入了解测试过程,掌握测试过程设计及改进,深入了解测试过程,掌握测试过程设计及改进,深入了解测试过程,掌握测试过程设计及改进,深入了解测试过程,掌握测试过程设计及改进,参与软件工作产品的同行评审参与软件工作产品的同行评审参与软件工作产品的同行评审参与软件工作产品的同行评审 进一步了解产品业务领域,改进测试自动化编进一步了解产品业务领域,改进测试自动化编进一步了解产品业务领域,改进测试自动化编进一步了解产品业务领域,改进测试自动化编程技术程技术程技术程技术 能指导初级测试工程

279、师能指导初级测试工程师能指导初级测试工程师能指导初级测试工程师 加强编程语言、操作系统、网络与数据库方面加强编程语言、操作系统、网络与数据库方面加强编程语言、操作系统、网络与数据库方面加强编程语言、操作系统、网络与数据库方面的技能的技能的技能的技能12年的测试发展计划(年的测试发展计划(E.Dustinetc)l l4-5年年测试组工作测试组工作 管理管理1-3名测试工程师,担任任务估算、名测试工程师,担任任务估算、管理及进度控制管理及进度控制 进一步培养在软件项目管理及支持工具进一步培养在软件项目管理及支持工具方面的技能方面的技能12年的测试发展计划(年的测试发展计划(E.Dustinetc

280、)l l5-65-6年年年年 技术管理技术管理技术管理技术管理 管理管理管理管理4-84-8名测试工程师,提高任务估算、管理名测试工程师,提高任务估算、管理名测试工程师,提高任务估算、管理名测试工程师,提高任务估算、管理及进度控制能力,完成测试规划并制定测试计划及进度控制能力,完成测试规划并制定测试计划及进度控制能力,完成测试规划并制定测试计划及进度控制能力,完成测试规划并制定测试计划 研究测试的技术手段,保持使用项目管理及支研究测试的技术手段,保持使用项目管理及支研究测试的技术手段,保持使用项目管理及支研究测试的技术手段,保持使用项目管理及支持工具技能持工具技能持工具技能持工具技能 用大量时

281、间为其他测试工程师提供技术及过程用大量时间为其他测试工程师提供技术及过程用大量时间为其他测试工程师提供技术及过程用大量时间为其他测试工程师提供技术及过程方面指导方面指导方面指导方面指导 开始与客户打交道并做演示推介开始与客户打交道并做演示推介开始与客户打交道并做演示推介开始与客户打交道并做演示推介12年的测试发展计划(年的测试发展计划(E.Dustinetc)l l6-12年测试管理年测试管理 管理管理8名以上测试工程师,负责一个或多名以上测试工程师,负责一个或多个项目的测试工作个项目的测试工作 与客户打交道并做演示推介与客户打交道并做演示推介 保持使用项目管理及支持工具的技能保持使用项目管理

282、及支持工具的技能软件测试培训内容分类软件测试培训内容分类l l软件测试基础知识和技能培训软件测试基础知识和技能培训l l软件测试过程培训软件测试过程培训l l软件测试管理培训软件测试管理培训l l软件测试设计培训软件测试设计培训l l软件测试工具培训软件测试工具培训l l软件测试对象软件产品培训软件测试对象软件产品培训软件测试人员的培训计划软件测试人员的培训计划l l是测试计划的一个重要组成部分是测试计划的一个重要组成部分是测试计划的一个重要组成部分是测试计划的一个重要组成部分l l需要管理层的重视,在时间和资源上予以保证需要管理层的重视,在时间和资源上予以保证需要管理层的重视,在时间和资源上

283、予以保证需要管理层的重视,在时间和资源上予以保证l l认真调查和分析测试人员的培训需求认真调查和分析测试人员的培训需求认真调查和分析测试人员的培训需求认真调查和分析测试人员的培训需求l l将培训活动安排在测试任务开始前将培训活动安排在测试任务开始前将培训活动安排在测试任务开始前将培训活动安排在测试任务开始前l l“ “边干边学边干边学边干边学边干边学” ”模式很可能牺牲质量和效率模式很可能牺牲质量和效率模式很可能牺牲质量和效率模式很可能牺牲质量和效率l l软件测试实习活动在整个培训中占较大比例软件测试实习活动在整个培训中占较大比例软件测试实习活动在整个培训中占较大比例软件测试实习活动在整个培训

284、中占较大比例l l鼓励合作学习,团队演练鼓励合作学习,团队演练鼓励合作学习,团队演练鼓励合作学习,团队演练l l对培训效果要及时评价,发现不足进行改进对培训效果要及时评价,发现不足进行改进对培训效果要及时评价,发现不足进行改进对培训效果要及时评价,发现不足进行改进测试工作产品测试工作产品l l检查和评审测试工作产品检查和评审测试工作产品l l测量和分析测试对象测量和分析测试对象l l分析和产品放行决策所需的数据分析和产品放行决策所需的数据l l测试配置管理测试配置管理软件测试组织软件测试组织软件测试组织(续)软件测试组织(续)l l微软人员结构微软人员结构项目经理项目经理5,开发人员,开发人员

285、31%,测试人员,测试人员64,1:6.2:12.8Exchange2000项目项目项目经理:项目经理:25人人开发人员:开发人员:140人人测试人员:测试人员:350人人测试计划测试计划l l测试估计测试估计l l确定测试可行的测试目标确定测试可行的测试目标l l制定合理的测试计划制定合理的测试计划l l控制测试计划的执行控制测试计划的执行软件测试计划及执行软件测试计划及执行l l测试管理目标测试管理目标范围范围时间时间/进度进度成本成本/预算预算质量质量软件测试计划及执行软件测试计划及执行l l测试计划步骤测试计划步骤测试计划步骤测试计划步骤 确定测试目标和最终交付物确定测试目标和最终交付

286、物确定测试目标和最终交付物确定测试目标和最终交付物 确定测试阶段确定测试阶段确定测试阶段确定测试阶段 确定里程碑及其交付物确定里程碑及其交付物确定里程碑及其交付物确定里程碑及其交付物 将测试工作范围进行细化和分解,形成工作分将测试工作范围进行细化和分解,形成工作分将测试工作范围进行细化和分解,形成工作分将测试工作范围进行细化和分解,形成工作分解结构(解结构(解结构(解结构(WBSWBS) 以网络图的形式说明以网络图的形式说明以网络图的形式说明以网络图的形式说明WBSWBS中各项工作的相互顺中各项工作的相互顺中各项工作的相互顺中各项工作的相互顺序和依赖关系序和依赖关系序和依赖关系序和依赖关系软件

287、测试计划及执行软件测试计划及执行l l测试计划步骤测试计划步骤测试计划步骤测试计划步骤 对于对于对于对于WBSWBS中的每一项任务,估算其时间和其他中的每一项任务,估算其时间和其他中的每一项任务,估算其时间和其他中的每一项任务,估算其时间和其他资源资源资源资源 对于对于对于对于WBSWBS中的每一项任务,估算成本中的每一项任务,估算成本中的每一项任务,估算成本中的每一项任务,估算成本 估算整个测试阶段的工期和成本估算整个测试阶段的工期和成本估算整个测试阶段的工期和成本估算整个测试阶段的工期和成本 判断测试是否能够在预定的时间、成本和其他判断测试是否能够在预定的时间、成本和其他判断测试是否能够在

288、预定的时间、成本和其他判断测试是否能够在预定的时间、成本和其他资源的约束下完成资源的约束下完成资源的约束下完成资源的约束下完成 如果无法完成,需要及时调整计划如果无法完成,需要及时调整计划如果无法完成,需要及时调整计划如果无法完成,需要及时调整计划软件测试常见问题软件测试常见问题/风险风险l l在软件测试方面培训不足、人员能力不足在软件测试方面培训不足、人员能力不足l l开发人员与测试人员的对立情绪开发人员与测试人员的对立情绪l l测试人员测试人员“左右不是人左右不是人”l l测试人员不愿意充当带来坏消息和说测试人员不愿意充当带来坏消息和说“不不”的人的人l l过分依赖软件测试过分依赖软件测试

289、l l缺乏管理层对测试的理解和支持缺乏管理层对测试的理解和支持软件测试常见问题软件测试常见问题/风险(续)风险(续)l l用户参与不够用户参与不够l l测试跟不上软件的快速变化测试跟不上软件的快速变化l l缺乏软件测试工具缺乏软件测试工具l l软件测试时间不够软件测试时间不够l l缺乏完整的需求文档、设计文档缺乏完整的需求文档、设计文档测试过程测试过程l l定义和定制所需的测试过程定义和定制所需的测试过程l l满足测试过程所需的资源满足测试过程所需的资源l l实施确定的测试过程实施确定的测试过程l l测量和分析测试过程的有效性和效率测量和分析测试过程的有效性和效率l l进行基于度量的测试过程的持续改进进行基于度量的测试过程的持续改进

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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