




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、键入文字测试理论培训资料测试理论培训资料键入文字错误猜测异常分析状态迁移流程分析正交试验法判定法 因果图 输出域覆盖输入域覆盖边界值 等价类 黑盒白盒程序插装逻辑覆盖信息流分析数据流分析控制流分析其他 处理过程条件组合输入输出整体特性内部实现动态分析静态分析SRS HLD LLD GUIDB 编码 调试 白盒 灰盒 黑盒软件质量流程技术组织开发技术测试技术UTITST分析设计编码ISO9001 CMM 6 西格玛质量体系瀑布模型螺旋模型RUP 模型IPD 模型V&V 模型常见的项目组织结构需求管理配置管理同行评审缺陷管理键入文字键入文字键入文字需求分析SRS 评审SRS 基线化系统测试
2、的计划设计和实现ST 计划ST 方案ST 用例概要设计HLD 评审HLD 基线化详细设计LLD 评审LLD 基线化编码代码走查UT 执行IT 执行ST 执行集成测试的计划设计和实现IT 计划IT 方案IT 用例单元测试的计划设计和实现UT 计划UT 方案UT 用例键入文字需求分析SRS 评审SRS 基线化系统测试的计划设计和实现ST 计划ST 方案ST 用例概要设计HLD 评审HLD 基线化详细设计LLD 评审LLD 基线化编码代码走查UT 执行IT 执行ST 执行集成测试的计划设计和实现IT 计划IT 方案IT 用例单元测试的计划设计和实现UT 计划UT 方案UT 用例键入文字测测 试试 基
3、基 础础7软软 件件 质质 量量10测测 试试 方方 法法18V&V 模型(测试过程)模型(测试过程)21单单 元元 测测 试试23集集 成成 测测 试试29系系 统统 测测 试试37测测 试试 覆覆 盖盖 率率49测测 试试 用用 例例 举举 例例51同同 行行 评评 审审53配配 置置 & 需需 求求 管管 理理56缺缺 陷陷 管管 理理58SQLSQL SERVERSERVER61测试工具总结测试工具总结67第一阶段英语单词总结第一阶段英语单词总结84复习问题总结复习问题总结88键入文字测测 试试 基基 础础1、 软件测试的目的:验证(表达软件能够工作) 检测(发现错误)
4、 预防(管 理质量)a 是否更好的为软件使用者(用户)服务;b 是否更好的为公司其他人员服务,提高软件的质量。2、 测试执行:单元测试(UT 执行):一个测试用例的测试执行; 集成测试(IT 执行):一个测试用例集的测试执行; 系统测试(ST 执行):不同测试阶段的测试执行。这几句话是什么意思,觉得不是很有针对性?3、 回归测试的目的:a. 验证错误是否修复;b. 检测对代码的修改是否引入了新的错误。5、 软件测试的主要工作:a. 检视代码,评审开发文档;b. 进行测试设计,写作测试文档(测试计划、测试方案、测试用例等) ;c. 执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;
5、d. 通过测试度量软件质量。 6、 软件危机的出现主要表现在:a. 由于缺乏大型软件开发经验和软件开发数据积累,开发工作计划很难制定; b. 开发早期需求分析不够明确,造成开发后期矛盾集中暴露;键入文字 c. 不遵循开发规范,开发文档不完整,软件难以维护; d. 缺乏严密有效的软件质量检测手段,交付给用户的软件质量差。7、 软件危机的后果:a. 软件质量不高,很难稳定;b. 软件项目延期,进度无法控制;c. 成本增加,无法控制预算。8、 软件危机的根源:a. 根据摩尔定律,硬件发展很快,相应对软件系统的期望越来越高; b. 软件系统复杂性提高,需多人合作; c. 软件开发是人的智力活动,无法用
6、已有的产业工程方法来组织管理。9、 软件生命周期的各个阶段:计划 需求分析 设计 编码 测试 运行 评价10、 设计:概要设计(HLD):在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块; 详细设计(LLD):对每个模块要完成的工作进行具体的描述。11、 软件研发相关要素:人员、过程、工具。12、 软件项目组人员组成:分析人员、设计人员、开发人员、测试人员、配置管理人员、SQA(质量保证人员) ;13、 软件研发流程类型:瀑布模型、螺旋模型、RVPRUP 流程、IPD 流程。键入文字14、 软件研发中几个重要的过程:需求管理;配置管理;缺陷管理;同行评审。15、 常见的引入缺
7、陷的原因:a. 开发过程缺乏有效的沟通,或者没有进行沟通; b. 软件复杂度越来越高; c. 编程中产生错误; d. 需求不断变更; e. 项目进度的压力; f. 不重视开发文档;g. 软件开发工具本身隐藏的问题。等等 键入文字软软 件件 质质 量量软件质量管理体系:软件质量管理体系:软件质量管理体系: ISO9000(2000 版) CMM 六西格玛ISO 9000 ISO 9004 核心黄素ISO9000:2000 版标准版标准ISO9000:制定管理理念和原则ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一进补充。 (梳心)ISO9004:是组织进行
8、持续改进的指南标准。八项质量管理原则: 一以顾客为中心:组织依存于其顾客,因此,组织应理解顾客当前的和未来的需求, 满足顾客要求并争取赶超顾客期望。ISO 9001键入文字二领导作用: 领导者将本组织的宗旨.方向和内部环境编统一起来,并创造使员工能 够充参与实现组织目标的环境。三全员参与: 各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组 织带来最大的收益。四过程方法: 将相关的资源和活动作为过程进行管理,可以更高效地得到期望的结 果。 五 管理系统方法:针对设定的目标,识别.理解并管理一个由相互关联的过程的过程 所组成的体系,有助于提高组织的有效性和效率。六 持续改进:持续改进是
9、组织的一个永恒的目标。七 基于事实的决策方法:对数据和信息的逻辑分析或直觉判断是有效决策的基础。八 互利的供方关系:通过互利的关系,增强组织及其供方创造价值的能力。其中与软件产品产品优其相关有:(一.三.六.七项)1、 软件质量的定义:一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求。而质量就是实体基于这些特性满足需求的程度。2、 软件质量的三个层次:a. 符合需求规格;b. 符合用户显示需求; c. 符合用户实际需求。3、 影响软件质量的因素:流程、技术、组织。流程:一组活动(活动是否都是必须的;活动角色之间的关系)过程:一组将输入转化为输出的相关联或相互作用的活动。4、 八项质量
10、管理原则的意义:a. 是质量管理的理论基础; b用高度概括易于理解的语言所表述的质量管理的最基本,最通用的一般性规律; c. 为组织建立质量管理体系提供了理论依据;键入文字 d. 是组织的领导者有效的实施质量管理工作必须遵循的原则。5、CMM 软件质量成熟度模型 CMM(capabillty Maturity Moelel)由于美国软件工程研究所(SEI)受美国国防部委托立项。开发人:Watts Humphrey.1991 年推出 CMM1.0 版,1993 年提出 CMM1.1 版现在开发 CMMI(CMM Integration)软件能力成熟度模型软件能力成熟度模型 CMM(提唱过程决定质
11、量)(提唱过程决定质量) 持续改进过程 可预测的过程 管理变更 标准.一致的过程 产品过程质量 纪律的过程 集成工程过程 项目管理CMM1 级级特点:(个人英雄主义)特点:(个人英雄主义)A 项目的成功依赖于一个非常优秀的项目经理的团队。B 无法重复以往成功的实践。C 缺乏基本配置管理1 初始级初始级 initial不可预测并且缺控制2 可重复级可重复级 Repeatable可重复以前的主要经验3 已定义级已定义级 Definded过程被描述,并得到良好理解4 已管理级已管理级 Managed过程被描述,并得到良好理解5 优化级优化级关注过程改进键入文字可视度:可视度:整个过程不可预测,不可见
12、,不可控。 (过程管理非常混乱)CMM2 级级特点:(有纪律)特点:(有纪律)能够重复以前成功的经验和实践。引入合理需求变更(需求管理)测试与开发分离,整个过程能力可概为有纪律的。可视度可视度原始需求需求分析设计编码测试产品CMM3 级级特点:(有过程,经过同行评审)特点:(有过程,经过同行评审)组织中有一个专门负责组织的标准软件过程。 (SEPG)可视度可视度同 CMM2 但整个过程是标准和一致的。CMM4 级特点级特点特点:(量化管理)特点:(量化管理)过程能力是可预防的,因为过程是已测量的并在可测的范围内运行。组织能定量地预测过程和产品质量方面趋势。软件产品具有可预测的高质量。可视度可视
13、度同 CMM3 但整个过程是可预测的。CMM5 级特点级特点特点:(改进过程本身)特点:(改进过程本身)通过缺陷来发现过程的不足。新的开发技术触使改进过程。可视度可视度同 CMM¥级整个是以改进的。CMM1:初始级,Inltial,不可预测并且缺乏控制; CMM2:可重复级:Repeatable,可重复以前的主要经验;(关键过程区域:需求管理;软件项目计划;软件项目跟踪和监督;软件子键入文字合同管理;软件质量保证;软件配置管理。 ) CMM3:已定义级:Defined,过程被描述,并得到良好理解;(关键过程区域:组织过程定义;组织过程焦点;培训大纲;集成软件管理;软件产品工程;组际协调;同行评
14、审。 )CMM4:已管理级:Managed,过程被测量并受控;(关键过程区域:定量的过程管理;软件质量管理。 )CMM5:优化级,Optimizing,关注过程改进。(关键过程区域:缺陷预防;技术变更管理;过程变更管理。 )7、 CMM 的用途:a. 评估组用来识别组织中的强处和弱处; b. 评价组用来识别选择不同的业务承包商的风险和监督合同; c. 管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需进行的活动; d. 技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件过程。8、 ISO9001 和 CMM 的关系: 相似点:强调管理、过程、规范化和文档
15、化; 不同点:CMM 把焦点对准软件;ISO9001 的范围包括:硬件、软件、流程性材料和服务; 两者关系:CMM2 级与 ISO9001 强相关;CMM 的每个关键过程域至少按某种解释与ISO9001 弱相关。六西格玛管理法(强调组织能力)六西格玛管理法(强调组织能力)本质:全面质量管理,而不仅仅是质量提高手段本质:全面质量管理,而不仅仅是质量提高手段六西格玛实施方式:六西格玛实施方式: DMAIC过程过程键入文字 推行控制系统推行控制系统 优化解决方案优化解决方案 研究资料,确定原因研究资料,确定原因 收集资料,寻找原因收集资料,寻找原因 提出问题,确定目标提出问题,确定目标9、 软件质量
16、模型: 功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含需求的功能的能力。包括:适合性;准确性;互操作性;保密安全性;功能性的依从性。 可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。包括:成熟性;容错性;易恢复性;可靠性的依从性。 易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。包括:易理解性;易学性;易操作性;吸引性;易用性的依从性。 效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。包括:时间特性;资源利用性;效率依从性。 维护性:软件产品可被修改的能力。修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的
17、适应。包括:易分析性;易改变性;稳定性;易测1 定义 Define2 测量 Measure3 分析 Anslyse4 改进 Improre5 控制 cororol键入文字试性;维护性的依从性。 可移植性:软件产品从一种环境迁移到另外一种环境的能力。包括:适应性;易安装性;共存性;易替换性;可移植性的依从性。10、 软件质量活动:软件质量保证(SQA)和测试;SQA 从流程方面保证软件的质量、测试从技术方面保证软件的质量、只进行 SQA 或者只进行测试活动不一定能产生好的软件质量。11、 SQA 的主要工作范围: 指导并监督项目按照过程实施; 对项目进行度量、分析,增加项目的可视性; 审核工作产
18、品,评价工作产品和过程质量目标的复合度; 进行缺陷分析,缺陷预防活动,发现过程的缺陷,提供决策参考,促进过程改进。12、 度量:对事物属性的量化表示;软件度量:是指计算机软件中范围广泛的测度,包括对软件系统、构建或生命周期过程具有的某个给定属性的度的一个定量测量。目的: 提高软件生产率,缩短产品研发周期,降低研发成本、维护成本; 提高软件产品质量,提高用户满意度; 为组织持续改进提供量化的指标和反馈。13、 软件度量的作用:理解;预测;评估;改进。分类:规模;工作量;进度;质量 如何将度量的知识应用于实际工作中:建立测试工作的度量数据,目的是作为预测和改进的基础(a. 熟悉需求:进度、工作量、
19、规模;b. 设计用例:工作效率、覆盖率;c. 执行用例:工作效率、缺陷密度;)键入文字键入文字测测 试试 方方 法法1 1、 什么是白盒测试:什么是白盒测试: 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体共能实现情况; 白盒测试是基于程序结构的逻辑驱动测试; 白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。2 2、 为什么进行白盒测试:为什么进行白盒测试: 一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问难题能基本得到消除; 能保证内部逻辑结构达到一定的覆盖程度,
20、能够给予软件代码质量更大的保证; 发现问题后解决问题的成本较低。3 3、 白盒测试的常用技术:白盒测试的常用技术: 静态分析:控制流分析、数据流分析、信息流分析等; 动态分析:逻辑覆盖测试(分支测试、路径测试等) 、程序插装等。4、 * *控制流相关概念:控制流相关概念:程序元素、控制流关系、控制流图、控制流矩阵。 (步骤:5)5、 * *控制流分析能发现的问题:控制流分析能发现的问题:转向并不存在的标号;没有用的语句标号;从程序入口进入后无法达到的语句;不能达到停机语句的语句。6、 * *数据流相关概念数据流相关概念:数据的定义;数据的引用。 (步骤:3)7、 * *数据流分析的左右:数据流
21、分析的左右:分析代码中关于数据定义和引用方面的错误;进行代码优化。 (赋值语句运算效率高)键入文字8、 * *信息流分析:信息流分析:输入变量和语句关系;语句和输出变量关系;输入和输出变量管 理。 (步骤:4)9、 覆盖率工具的作用:覆盖率工具的作用: 分析被测试代码控制结构,决定插装位置; 实施插装; 将插装代码重新编译; 执行被测对象,根据插装的监控哨信息统计覆盖率。10、白盒测试的特点:白盒测试的特点: 测试人员需要了解软件的实现; 可以检测代码中的每条分支和路径; 解释隐藏在代码中的错误; 对代码的测试比较彻底; 实现代码结构上的优化; 白盒测试投入较大,成本高; 白盒测试不验证规格的
22、正确性。11、什么是黑盒测试:什么是黑盒测试: 黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现; 黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。 黑盒测试又可以被称为基于规格的测试。12、常见的黑盒测试类型:常见的黑盒测试类型:功能性测试;容量测试;负载测试;恢复性测试。13、*系统测试的时候,如果没有 SRS 时,有两类 BUG 无法发现:需求遗漏;需求偏差。14、黑盒测试的黑盒测试的优点优点:对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高; 测试人员不需要了解实现的细节,包括特定的编程语言; 从用户的视角进行测试,
23、很容易被大家理解和接受; 有助于暴露任何规格不一致或键入文字有歧义的问题。15、黑盒测试的黑盒测试的缺点缺点: 没有清晰的和简明的规格,测试用例是很难设计的; 不能控制内部执行路径,会有很多内部程序路径没有被测试到;不能直接针对特定的程序段,这些程序可能非常复杂(因此可能隐藏更多的问题) 。16、动态和静态测试的分类依据在于:动态和静态测试的分类依据在于:被测对象是否运行起来。17、手工静态分析手工静态分析同行评审:同行评审:正规检视;技术评审;走查。评审对象:计 划、需求文档、设计图、代码等。18、自动化静态分析:自动化静态分析:静态验证;语法分析器;符号执行器。 自动化测试的限制(板书):
24、自动化测试的限制(板书): 自动化测试不具备想象力,不能够检查脚本中给定的观察点之外的错误; 自动化测试只能提高测试效率,不能提高测试效果,不能发现比人工测试更多的问题;如被测对象不稳定,存在变动性的话不适合开展自动化测试,否则脚本的编写和维护所耗费的时间可能远大于人工测试; 只有手工测试积累到一定程度(提供更多的观察点) ,才能做好自动化测试。键入文字V&V 模型(测试过程)模型(测试过程)1 1、 验证与确认验证与确认 V&VV&V:验证(VERIFICATION)强调过程;确认(VALIDATION)强调 结果。2 2、 V&VV&V 告诉我们:告
25、诉我们: 尽早测试(尽早准备、尽早执行) ; 全面测试(文档、代码) 全过程测试(测试参与到开发过程中、对测试过程全称跟踪) 测试是独立的、迭代的。3、 单元、集成、系统测试的比较:单元、集成、系统测试的比较:测试方法不同;考察范围不同;评估基准不同。4、 回归测试策略:回归测试策略:完全重复测试;选择性重复测试(覆盖修改法;周边影响法; 指标达成方法;选择重要级别高的测试用例)5、 其他测试阶段:其他测试阶段:验收测试;a(ALPHA)测试;B(BETA)测试。系统测试执行集成测试执行单元测试执行代码审查需求分析SRS 评审SRS 基线化概要设计HLD 评审HLD 基线化详细设计LLD 评审
26、LLD 基线化CODE系统测试计划系统测试方案设计系统测试用例设计集成测试计划集成测试方案设计集成测试用例设计单元测试计划单元测试方案设计单元测试用例设计键入文字6、 主要的测试文档:主要的测试文档:测试计划;测试方案;测试用例;测试规程;测试报告;测试日报。键入文字单单 元元 测测 试试1、 单元测试的目的:单元测试的目的:在于发现各模块内部可能存在的各种错误主要是基于白盒测试。 验证代码是与设计相符合的; 发现设计和需求中存在的错误; 发现在编码过程中引入的错误。 (和设计不相符 / 和设计相符,但是由于编码疏漏引起)2、 孤立的测试策略:孤立的测试策略: 方法:不考虑每个模块与其他模块之
27、间的关系,为每个模块设计桩模块和驱动模块。每个模块进行独立的单元测试。 优点:该方法是最简单,最容易操作的。可以达到高的结构覆盖率。该方法是纯粹的单元测试。 缺点:桩函数和驱动函数工作量很大,效率低。3、 自顶向下的单元测试策略:自顶向下的单元测试策略: 方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块。 优点:可以节省驱动函数的开发工作量,测试效率较高。 缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。4、 自底向上的单元测试策略:自底向上的单元测试策略: 方
28、法:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被测试过的模块做桩模块。以此类推,直到测试完所有模块。 优点:可以节省桩函数的开发工作量,测试效率较高。 缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产生很大的影响。5、 单元测试的四个阶段:单元测试的四个阶段: 测试计划:完成单元测试计划; 测试设计:完成单元测试方案;键入文字 测试实现:完成单元测试用例、单元测试规程、单元测试脚本及数据文件; 测试执行:执行单元测试用例,修改发现的问题并进行回归测试,提交单元测试报告。 单元测试:桩单元测试:桩&驱
29、动举例:驱动举例:无论是单元测试还是集成测试都涉及到以下三个函数:主控函数:int ctrl(int x, int y)加法函数:int add(int x, int y)减法函数:int sub(int x, int y)注意:进行单元测试时,设计用例时依据的是 LLD;进行集成测试时,设计测试用例依据的是 HLD。下面给出来的是需要测试的实际的代码。int ctrl(int x, int y)int temp=0;if(x=y) temp=add(x, y);else temp=sub(x, y);return temp;int add(int x, int y) return(x+y);
30、int sub(int x, int y) return(x-y);自顶向下单元测试策略自顶向下单元测试策略不同测试步骤中的驱动可以写到一起,也可以分开写,这里是写到一起了。不同测试步骤中的驱动可以写到一起,也可以分开写,这里是写到一起了。测试测试 ctrl 函数函数需要写一个驱动和两个桩。驱动函数驱动函数void driver()int ret=0;ret=ctrl(2,1); /xy键入文字if(ret=3) printf(“testcase JISUAN_UT_CTRL_001 pass”);else printf(“testcase JISUAN_UT_CTRL_001 fail”);
31、ret=ctrl(1,1); /x=yif(ret=2) printf(“testcase JISUAN_UT_CTRL_002 pass”);else printf(“testcase JISUAN_UT_CTRL_002 fail”);ret=ctrl(1,2); /x=y)键入文字 temp=stub_add(x, y);else temp=stub_sub(x, y);return temp;测试测试 add 函数函数 驱动函数驱动函数同测试 ctrl 函数时的驱动桩函数桩函数同测试 ctrl 函数时 sub 函数对应的桩修改代码修改代码int ctrl(int x, int y) i
32、nt temp=0;if(x=y) temp=add(x, y); if(x=2 & y=1 & temp=3) printf(“testcase JISUAN_UT_ADD_001 pass”); else printf(“testcase JISUAN_UT_ADD_001 fail”); if(x=1 & y=1 & temp=2) printf(“testcase JISUAN_UT_ADD_002 pass”); else printf(“testcase JISUAN_UT_ADD_002 fail”);else temp=stub_sub(x, y
33、);return temp;测试测试 sub 函数函数键入文字驱动函数驱动函数同测试 ctrl 函数时的驱动桩函数桩函数无键入文字 29修改代码修改代码int ctrl(int x, int y) int temp=0;if(x=y) temp=add(x, y);else temp=sub(x, y); if(x=1&y=2 & temp=-1) printf(“testcase JISUAN_UT_SUB_001 pass”); else printf(“testcase JISUAN_UT_SUB_001 fail”);return temp; 键入文字 30集集 成成
34、测测 试试一一 WhatWhat:什么是集成测试:什么是集成测试集成测试(Integration Testing) 集成测试也叫组装测试、联合测试、部件测试、子系统测试集成测试测什么 1.外部接口:各件呐在一起后表现的功能 2.内部接口:各件间的接口是否正确 集成苏的目的验证软件的组建对概要设计说明书的符合度集成测试的评估基准: 接口覆盖率 A.接口被测试到的百分比 B.接口的等价类、边界值的覆盖率二二 WhyWhy:为什么要做集成测试:为什么要做集成测试一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。虽然
35、已经有了 IT 和 ST,但 IT 和 UT、ST 关注点不一样,它们互为补充反分解性公理:为一个被测模块获得的覆盖并不能覆盖他所调用的模块。反组合性公理:对于一个模块中的对各子模块分别合适的测试包并不一定对作为一个整体的模块合适三三 WhoWho:谁做集成测试:谁做集成测试开发人员做 A 优势:一般来说,编程能力稍强键入文字 31 B 劣势:Protect(就像变形金刚的汽车人) ,心理上不愿意否定自己的劳动成果,职责是保护程序测试人员做 A 优势:Destroy(就像变形金刚的霸天虎) ,心理上追求完美,职责是挑刺、破坏程序 B 劣势:目前的现状,大部分 tester 编程能力不够四四 W
36、henWhen:什么时候做集成测试:什么时候做集成测试4.1 集成测试所处的测试过程集成测试所处的测试过程 A.测试准备活动在开发活动时可以并行开展,如开始做 HLD 设计时就可以开始做 ITP了 B.测试执行活动在单元测试的基础上进行五五. . WhereWhere:对什么部分做集成测试:对什么部分做集成测试子系统间集成(系统内集成)模块间集成(子系统内集成)函数间集成(模块内集成)六六. . HowHow:怎么做集成测试:怎么做集成测试6.1 测试过程的制定6.1.1 计划根据 SVVP 制定 ITP6.1.2 设计根据 ITP 制定 IT 方案6.1.3 实现根据 IT 方案制定 IT
37、用例键入文字 326.1.4 执行根据 IT 用例进行集成测试,提交 Bug Report,回归测试6.2 采用的测试方法6.2.1 灰盒测试随集成层次不同,灰度随之相应变化6.3 制定集成测试策略 Test Strategy6.3.1 根据被测对象(层次)选择合适的策略11大爆炸集成大爆炸集成 BigBig BangBang 优点方法简单、效率高缺点急于求成,成功率不高大海捞针,导致即使发现问题也难以定位(无法故障隔离)囫囵吞枣,许多内部接口的错误被漏测适用范围小项目、维护型项目软件结构不清晰的系统22自顶向下集成自顶向下集成 Top-DownTop-Down子策略深度优先(Depth-Fi
38、rst)广度优先(Broadth-First)优点A.主控模块(高层组件)得到较早验证键入文字 33B.深度优先策略能够较早验证一个完整的功能,增强了开发信心C.基本不需要开发驱动,减少了这部分的工作量D.和高层设计顺序一致,方便并行开展E.定位问题容易,支持故障隔离缺点A.需要开发大量的桩,工作量、成本太大B.底层变更可能导致测试推倒重来C.底层组件的验证较晚,测试不充分适用范围A.软件结构清晰的系统B.高层接口变化小,底层接口变化大C.主控模块风险大,需尽早验证D.希望尽早看到系统一部分功能33自底向上集成自底向上集成 Bottom-UpBottom-Up优点A.底层组件得到较早验证B.测
39、试初期可以并行集成,效率高C.由于驱动模块是额外编写的,对被测模块的可测试性要求较低D.减少了开发桩的工作量E.定位问题容易,支持故障隔离缺点A.需要开发大量的驱动,工作量、成本同样很高B.对高层的验证太晚了,设计上的缺陷不能被及早发现C.集成到顶层后,对于底层异常将难以覆盖。而使用桩将简单得多键入文字 34适用范围A.软件结构清晰的系统B.底层接口稳定、或先被开发出来C.高层接口变化较频繁44 三明治集成(分而治之策略)三明治集成(分而治之策略) 又分为传统型和改进型又分为传统型和改进型 SandwichSandwich优点融合了自顶向下和自底向上两种策略的优点缺点中间层测试要么不充分,要么
40、测的充分但开发驱动和桩的工作量大适用范围软件结构清晰的系统基本都适合采用55基干集成(内核耦合度高)基干集成(内核耦合度高) BackboneBackbone结构与策略:内核(大爆炸)-应用子系统(自底向上)-控制子系统(自顶向下)优点具有三明治集成的优点缺点A.对系统结构的分析存在一定难度B.由于被测系统复杂,驱动和桩的开发工作量较大C.局部采用了大爆炸策略,存在大爆炸所有的缺点适用范围嵌入式系统66分层集成(线性关系)分层集成(线性关系) LayersLayers集成方式A.层内集成键入文字 35策略非常灵活,可以是各种其他策略优缺点根据策略而变B.层间集成策略和优缺点同层内集成使用范围有
41、明显线性层次关系的系统77基于功能集成基于功能集成 Function-BasedFunction-Based优点A.可以尽早验证关键组件的功能B.可能同时加入多个模块,与大爆炸类似,效率较高C.和自顶向下一样,驱动模块的开发工作量不多缺点A.兼具大爆炸和自顶向下的缺点,比如对有些接口测试不充分,可能导致漏测B.可能会有较多的冗余测试适用范围对功能的实现没把握的产品88持续集成(高频集成、每日集成)持续集成(高频集成、每日集成) Continuous/High-frequencyContinuous/High-frequency优点A.错误能被较早发现,且容易定位B.开发和集成可以并行,效率高缺
42、点测试针对性不强,不容易发现有价值的问题适用范围迭代开发、增量开发的产品键入文字 3699基于进度集成基于进度集成 Schedule-BasedSchedule-Based优点并行度高,能缩短项目进度缺点组件间缺乏整体性,无法有效集成开发驱动和桩的工作量难以估计由于进度原因,集成效果不好适用范围进度很紧的项目1010基于风险集成基于风险集成 Risk-BasedRisk-Based优点风险大的模块得到较早验证,有助于系统的快速稳定缺点风险分析偏差导致集成重点的偏离适用范围有些组件有较大的风险,需及早验证以增强信心1111基于消息(事件)集成基于消息(事件)集成 Message-Based/Ev
43、ent-BasedMessage-Based/Event-Based优缺点与基于功能集成类似,适用面向对象系统1212基于使用集成基于使用集成 Use-BasedUse-Based优缺点与自底向上类似,适用面向对象系统1313基于基于 C/SC/S、B/SB/S 的集成的集成适用 C/S、B/S 结构的系统1414分布式集成分布式集成 DistributedDistributed ServicesServices适用分布式系统键入文字 37键入文字 38系系 统统 测测 试试 定义定义System Testing-是将已经集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件、外设、某些
44、支持软件、数据和人员等其他系统元素结合在一起,在实际运行使用的环境下,对计算机系统进行系列的测试活动; 对象对象键入文字 391.产品级-软件+硬件2.项目级-软件(也可能包含硬件) 完备性完备性如何保证系统测试的完备性?如何保证系统测试的完备性?1.尽可能所有需求都有对应的 Test Case;2.依据软件的质量特性,以不同的角度,测试需求;3.依据不同的 Test Case、方法,构造不同的测试数据及处理过程;常用测试方法1.11.1 功能测试(功能)功能测试(功能)定义:function Testing-依据 SRS 和测试需求列表验证产品的功能是否实现和是否符合产品需求规格目标:1.是
45、否有不正确或遗漏了的功能?2.功能是实现是否满足用户需求,和系统设计的隐式需求?3.输入能否正确接受?能否正确输出结果?1.21.2 性能测试(效率)性能测试(效率)定义:Performance Testing-测试该软件在集成系统中的运行性能。 (大多使用工具测试)目标:度量系统相对与预定义目标的差距。实施:1.性能指标定义明确。2.构造性能测试研究数据。键入文字 403.构造不同的性能测试场景。4.执行性能测试 (一般90%就通过) 。5.性能分析。6.性能故障定位。7.性能优化。依据1.资源占用性。2.CPU 响应时间。区别:1.压力测试-不强调施压量,只检查施压的状况。2.容量测试-强
46、调施压,施了多少压。3.性能测试-施压后检验性能指标是否达到规定资源使用和响应时间的要求。1.2.1 资源方面(资源占用情况)CPU 使用情况。IO 使用情况。内存使用情况。信道使用事情。1.2.2 时间方面(CPU 响应时间)每个模块执行时间百分比。一个模块等待 IO 完成的百分比。指令随时间的跟踪路径。每一组指令页换入和换出的次数。系统反映时间。系统吞吐量,即每个单元的处理数量。键入文字 41所有主要指令的单元执行时间。1.31.3 压力测试压力测试/ /极限测试(可靠性)极限测试(可靠性)定义:Stress Testing-系统在其资源超符合的情况下表现。目标:在极限或者恶劣的环境下,系
47、统的自我保护能力。主要验证系统的可靠性。实施:1.同一时间,大量的用户登陆。2.引入大量的操作。目的:1.是否存在内存泄露。2.验证系统可靠性。3.测试后给予用户一个明确的界定。区别:1.压力测试-不强调施压量,只检查施压的状况。2.容量测试-强调施压,施了多少压。3.性能测试-施压后检验性能指标是否达到规定资源使用和响应时间的要求。1.41.4 容量测试容量测试定义:volume Testing-使系统能够承受超额的数据容量来发现它是否能够正确处理。目标:1.测试系统容量是否满足需求规定系统容量。2.若无规定系统容量可以通过此测试给出明确容量界定。实施:键入文字 421.构造一批大容量的测试
48、数据输入到系统。2.对系统整体构造不同业务场景,反复执行。区别:1.压力测试-不强调施压量,只检查施压的状况。2.容量测试-强调施压,施了多少压。 3.性能测试-施压后检验性能指标是否达到规定资源使用和响应时间的要求。1.51.5 安全性测试(功能)安全性测试(功能)定义:Security Testing-验证集成在系统内的保护机制能否在实际应用中保护系统不受到非法的侵入。目的:保证系统安全性,数据的完整性、保密性。1.5.1 数据完整性数据存储的完整性。数据保密的完整性。保密性数据存储的保密性。数据访问的保密性。1.5.2 权限权限的分配权限的使用1.5.3 协议多在手机测试用到。键入文字
49、431.5.4 其他如 LOG.1.61.6 GUIGUI 测试(易用)测试(易用)定义:Graphical User Interface Testing-针对软件系统的界面进行的测试。目标:1.界面实现与界面设计的吻合情况。(界面设计)2.确认界面处理的正确性。 (针对不同的控件分析)相关自动化测试工具1.WinRunner2.SilkTest3.QaRun 1.6.1 简单界面元素定义:指功能和属性相对比较单一的界面区域,即通常所指的各种控件。方法:主要关注他们的外观、表现行为。1.6.2 组合类界面元素定义:一些复杂的界面元素,比如表格、各种文本编辑器等。方法:先将其分解为简单的界面元素
50、,然后再进行处理。1.6.3 完整界面(窗口)定义:键入文字 44由一系列界面元素通过适当的形式组合而成的界面形式,最为常见的为各种窗口。包括各种对话框、单文档窗口、多文档窗口,多文档子窗口等。方法:外观、布局、行为。1.输入类界面元素:与要考虑其外观、输入时的特性比如回显、对齐原则、滚动原则等内容。2.输出类界面元素:外观。1.71.7 可用性测试(易用)可用性测试(易用)定义:Usability Testing-为检测用户在理解和使用系统方面到底有多好。目标:1.考虑产品是否符合实际应用情况。2.是否符合用户习惯或特殊要求。3.操作方式是否方便合理、设备和用户见交互信息是否准确易于理解、是
51、否遵从行业习惯、外观/界面是否美观等。一般关注的可用性问题:1.过分复杂的功能或指令。2.困难的安装过程。3.错误信息过于简单。4.用户被迫去记太多信息。5.语法、格式和定义不一致。1.81.8 安装测试安装测试键入文字 45定义:根据软件测试特性列表、软件安装、配置文档,设计安装过程的测试用例,发现软件在安装过程中的错误。被测对象:1.软件本身。2.软件安装文档。1.8.1 安装测试前要检查的工作1.安装文档是否齐全。2.安装软件的程序文件是否齐全。3.被测软件的安装文件是否齐全。4.软件的安装说明文档是否齐全。5.检查软件的文件格式是否与安装说明文档中要求的文件格式相符。1.8.2 安装测
52、试过程中的工作1.所有的预置数据是齐全。2.软件环境配置是否合理。3.硬件环境配置是否合理。4.用户选择的一套任选方案是相容。5.安装过程中:A.系统提供的缺省参数值进行安装测试。B.指定由人工完成安装过程,列出每一步安装步骤所需的工作,并仔细检查每一安装步骤所完成工作的正确性。C.安装测试过程中要设计异常的安装测试用例,包括配置参数的异常、安装选项和安装路径的异常。6.安装文档的测试。键入文字 461.8.3 安装后要做的检查工作1.所有文件是否都已产生并确有所需的内容。 A.程序文件的目录是否正确产生。 B.各目录及子目录下的程序文件是否都正确产生。 C.是否存在无用的目录、子目录、程序文
53、件以及无用的子目录。 D.目录、子目录、以及程序文件本身的权限是否正确。 E.对于 Windows 还要检查与应用软件相配套的动态链接库文件齐全。2.安装日志的检查。3.安装完成后,要进行程序的运行,联结验证。4.软件的卸载测试。1.8.4 安装测试中软件的升级测试1.软件通过重新安装来达到升级的目的。2.通过 Patch 的方式实现软件的升级。3.在线升级。1.91.9 配置测试配置测试定义:系统在各种软硬件配置、不同参数配置下系统具有的功能和性能。目标:验证全部配置的可操作性,有效性。1.101.10 异常测试异常测试/ /恢复性测试(可靠)恢复性测试(可靠)定义:容错性测试。通过人工干预
54、手段产生异常,能检验系统的容错、恢复能力,是系统可靠键入文字 47性评价的重要手段。异常处理1.系统自动处理。2.人工干预处理。注意1.系统的异常还与系统的指标测试有关,当系统的服务能力大于系统的设计指标时,也属于系统的异常情况。2.系统的可靠性是设计出来的,而不是测试出来的。测试出的数据有助于为我们进一步的系统优化设计积累经验,设计和测试是一个相互反馈的过程。1.111.11 备份测试(可靠)备份测试(可靠)恢复性测试的一个补充,验证软件或硬件失败中备份他数据的能力。1.121.12 健壮性测试(可靠)健壮性测试(可靠)Robustness Testing 用于测试系统在故障时,是否能够自动
55、恢复或者忽略故障继续运行。1.131.13 文档测试文档测试Documentation Testing 测试文档的正确性,保证操作手册的过程能够正常工作。1.141.14 在线帮助测试在线帮助测试Online Help Testing 检测时实在线帮助的可靠性和正确性。1.151.15 网络测试网络测试网络环境下和其他设备对接,进行系统功能、性能与指标方面的测试,保证对接的正确性。1.161.16 稳定性测试稳定性测试在一定负荷情况下能持续运行的时间。键入文字 482 2 系统测试测试过程系统测试测试过程2.12.1 计划阶段计划阶段明确 what 目标、why 测试目的、when 可控时间、
56、where 测试范围、how 如何开展.主要活动有:参与开发人员软件需求的分析,SRS 评审,通过后写 ST 计划,进行 ST 计划评审。入口准则:SRS 完成并确定需求规格基线输入:SRS|SDP|SVVP出口准则:ST 计划评审通过输出:2.22.2 设计阶段设计阶段主要活动有:组织人员依据测试计划编写测试方案,并进行系统方案的评审入口准则: ST 计划评审通过输入: ST 计划|SRS出口准则: ST 方案评审通过输出: ST 方案2.32.3 实现阶段实现阶段主要活动有:组织人员依据 ST 方案编写测试用例、测试规程及预测试项,并对其进行评审入口准则: ST 方案评审通过输入: ST
57、计划|SRS|ST 方案出口准则: 测试用例、测试规程及预测试项评审通过输出: 测试用例、测试规程及预测试项键入文字 492.42.4 执行阶段执行阶段主要活动有:组织测试执行活动、负责缺陷报告返回给开发部门修改、组织进行测试报告的编写、组织进行测试报告的评审入口准则: 测试用例、测试规程及预测试项的评审通过输入: ST 计划|ST 方案|ST 用例|ST 规程|ST 预测试项出口准则: ST 报告评审并通过输出: ST 预测试报告|ST 测试报告|缺陷报告测测 试试 覆覆 盖盖 率率1、 覆盖率概念:覆盖率概念: 覆盖率是用来度量测试完整性的一个手段。覆盖率是测试技术有效性的一个度量。覆盖率
58、=(至少被执行一次的 item 数)/item 的总数; 覆盖率大体可以划分为两大类:逻辑覆盖和功能覆盖; 测试用例设计不能一味追求覆盖率,因为测试成本虽覆盖率的增加而增加。2、 逻辑覆盖主要类型:逻辑覆盖主要类型:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、路径覆盖。3、 语句覆盖率:语句覆盖率:(Statement Coverage) ,在测试时运行被测程序后,程序中被执行到的可执行语句的比率; 语句覆盖率 = (至少被执行一次的语句数量)/(可执行的语句总数)4、 分支覆盖率:分支覆盖率:(Branch Coverage)也叫判定覆盖(Decision Coverage) ,它的含键入
59、文字 50义是:在测试时运行被测程序后,程序中所有判断语句的取真分支和取假分支被执行到的比率;判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)5、 条件覆盖率:条件覆盖率:(Condition Coverage)的含义是,在测试时运行被测程序后,所有判断语句中每个条件的可能取值(真值和假值)出现过的比率;条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)6、 分支分支-条件覆盖率:条件覆盖率:(Branch Condition Coverage)也叫判定条件覆盖(Decision Condition Coverage) ,它的含义是,在测试时运行被测程序后,所有判
60、断语句中每个条件的所有可能值(为真为假)和每个判断本身的判定结果(为真为假)出现的比率;分支条件覆盖率=(条件操作树枝或判定结果至少被评价一次的数量)/(条件操作数值总数+判定结果总数)7、 路径覆盖率:路径覆盖率:(Path Coverage)的含义是,在测试时运行被测程序后,程序中所有可能的路径被执行过的比率;路径覆盖率=(至少被执行到一次的路径数)/(总的路径数)8、 其他覆盖率:其他覆盖率:功能覆盖率;面向对象的覆盖率;函数覆盖;指令块覆盖;判定路径覆盖。键入文字 51测测 试试 用用 例例 举举 例例测试用例编号BOSS_ ST_ MARKETING_NEW_01P重要级别高(还有“较高、中、较低、低”几个等级)测试项目新增营销记录测试标题新增 10 元的营销记录用例类型基本事件(对应还有“备选事
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025年中国对冲基金行业市场调研分析及投资战略规划报告
- 2025年度房屋租赁合同电子签名服务协议
- 热风系统设计及优化医疗设备领域的创新
- 2025年度个体劳动者版权授权合同
- 2025年离职后知识产权保护及保密协议
- 新能源项目股权居间合同
- 住房设计合同范本
- 【可行性报告】2025年灯头相关行业可行性分析报告
- 马拉松赛道及配套基础设施建设项目可行性研究报告(编制大纲)
- 公司间借贷合同范本
- 北京市东城区2025年公开招考539名社区工作者高频重点提升(共500题)附带答案详解
- 2025福建福州地铁集团限公司运营分公司校园招聘高频重点提升(共500题)附带答案详解
- 2025至2030年中国电子护眼台灯数据监测研究报告
- 2025年浙江省温州乐清市融媒体中心招聘4人历年高频重点提升(共500题)附带答案详解
- 2025夏季广东广州期货交易所招聘高频重点提升(共500题)附带答案详解
- 北京市丰台区2024-2025学年高三上学期期末英语试题
- 2025上海市嘉定工业区农村青年干部招聘22人历年高频重点提升(共500题)附带答案详解
- 《兽医基础》练习题及参考答案
- 2025年煤矿探放水证考试题库
- 农业机械设备运输及调试方案
- 污水处理设备的故障处理指南考核试卷
评论
0/150
提交评论