《黑盒测试培训》PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
修正BUG的代价
需求 设计
编程 内部测试 外部测试 发布
一些常识和经验之谈
测试能提高软件的质量,但是提高质量不能依赖测试。 测试只能证明缺陷存在,不能证明缺陷不存在。“彻
底地测试”难以成为现实,要考虑时间、费用等限制, 不允许无休止地测试。我们应当祈祷:软件的缺陷在 产品被淘汰之前一直没有机会发作。 测试的主要困难是不知道如何进行有效地测试,也不 知道什么时候可以放心地结束测试。 每个开发人员应当测试自己的程序(份内之事),但 是不能作为该程序已经通过测试的依据(所以项目需 要独立测试人员)。 80-20原则:80%的缺陷聚集在20%的模块中,经常出 错的模块改错后还会经常出错 测试应当循序渐进,不要企图一次性干完,注意“欲 速则不达”。
很多人认为软件测试就是运行一下软件,看看结果对不对. 但实际上,如何在有限的投入下,提高软件测试的效率和产 出是一件很见功底的事.好的测试人员不仅要掌握各种测 试技术,还要具备丰富的编程经验和对BUG的敏感.测试的 复杂之处,除了测试技术问题之外,还有测试管理问题.
测试不是可有可无,随心所欲的.规范化的软件开发需要对 软件测试早做计划,分配必要的时间,人力和财力等资源,并 将其作为项目管理的一个部分加以控制和协调.
单元测试:是针对软件设计的最小单位—程序模块,进行 正确性检验的测பைடு நூலகம்工作。一般包括逻辑检查、结构检查、 接口检查、出错处理、代码注释、输入校验、边界值检查。
单元测试的依据是系统的详细设计;一般由项目组开发人 员自己完成。
集成测试:在单元测试的基础上,将所有模块按照设计要 求组装进行测试。一般包括逻辑关系检查、数据关系检查、 业务关系检查、模块间接口检查、外部接口检查。
(4)软件需求、设计报告、程序经常发生变更,每次变更都可能产生 新的Bug。
(5)任何人在编程时都可能犯错误,导致程序中有Bug。
(6)人们常处于进度的压力之下,急忙之下容易产生Bug,尤其是在期 限临近之际。
(7)人们过于自信,喜欢说“没问题”,不真实的“没问题”将产生 真正的问题。
测试的分类
从测试方法的角度可以分为手工测试和自动化 测试。
系统测试:系统测试是在所有单元、集成测试后,对系统 的功能及性能的总体测试。
确认测试:模拟用户运行的业务环境,运用黑盒测试方法, 验证软件系统是否满足用户需求或软件需求说明书中指明 的软件特性(功能、非功能)上的。
从测试原理上分为:白盒测试、黑盒测试。
白盒测试:是通过程序的源代码进行测试而不使用用 户界面。这种类型的测试需要从代码句法发现内部代 码在算法,溢出,路径,条件等等中的缺点或者错误, 进而加以修正。
理解正确性 编码正确性
测试的目的
测试的目的是寻找错误,并且是尽最大可能 找出最多的错误.在选取用例时,考虑那些易 于发现程序错误的数据;
一个好的测试用例在于发现至今未发现的 错误;
一个成功的测试是发现了至今未发现的错 误的测试.
正确理解测试的目的十分重要。如果认为测试的目的是为了说明程序中 没有缺陷,那么测试人员就会向这个目标靠拢,因而下意识地选用一些 不易暴露错误的测试示例。这样的测试是不真实的。
软件测试培训内容
什么是软件测试 软件测试对象 测试的目的 测试的分类 功能测试方法与内容 测试策略 测试流程及相关文档 测试人员的基本素质 测试驱动开发介绍
什么是软件测试
软件测试是一种有效的提高软件质量的手段,但即使在投 入上有所保证,测试也不能百分为百发现所有质量隐患.况 且软件质量并不仅仅是测试出来的.
黑盒测试:是通过使用整个软件或某种软件功能来严 格地测试, 而并没有通过检查程序的源代码或者很清 楚地了解该软件的源代码程序具体是怎样设计的。测 试人员通过输入他们的数据然后看输出的结果从而了 解软件怎样工作。在测试时,把程序看作一个不能打 开的黑盆子,在完全不考虑程序内部结构和内部特性 的情况下,测试者在程序接口进行测试,它只检查程 序功能是否按照需求规格说明书的规定正常使用,程 序是否能适当地接收和正确的输出
手工测试:不使用任何测试工具,根据事先设 计好的测试用例来运行系统,测试各功能模块
自动化测试:利用测试工具,通过编写测试脚 本和输入测试数据,自动运行测试程序。目前 最常用的自动化测试工具是基于GUI的自动化 测试工具,基本原理都是录制、回放技术。
从整体的角度可以分为单元测试、集成测试、系统测试、 确认测试。
软件生存各个阶段间的确认和验证
理解正确性 表达正确性
用户要求 用户: 我要什么?
1
5 相符吗?
需求说明书
分析员: 我可以提供什么?
2 理解正确性 设计正确性 表达正确性
3
设计说明书 设计员: 我要软件做什么?
运行结果
计算机: 程序运行得到 的结果
运行正确性
4
输入正确性
源程序 程序员: 我要让计算机 怎么做?
开发和测试是软件项目相辅相成的两个过程,人员间的交 流,协作和配合是提高整体效率的重要因素.
开发与测试的 V 型关系
如果软件开发过程采用严格的瀑布模型,那么 开发与测试有“V”型的对应关系 。
需求开发
验收测试 系统测试
高层设计
集成测试
详细设计
单元测试
编程
软件产品开发完毕,再进行测试的观念是有 悖于生命周期理论的.软件产品质量问题越 晚发现,修复的代价越大.
为什么需要测试?因为软件中有Bug。
为什么软件中有Bug?以下是一些原因:
(1)开发人员不太了解需求,不清楚应该“做什么”和“不做什么”, 常常做不合需求的事情,因此产生了Bug。
(2)软件系统越来越复杂,开发人员不太可能精通所有的技术,如果 不能正确地使用技术,将产生Bug。
(3)技术文档普遍比较糟糕,文档本身就有Bug,导致使用者产生更多 的Bug。
软件测试的定义
软件测试是为了发现错误而执行程序的过 程
软件测试是根据软件开发各阶段的规格说 明和程序的内部结构而精心设计一批测试 用例(即输入数据及其预期的输出结果),并利 用这些测试用例去运行程序,以发现程序错 误的过程.
软件测试的对象
软件测试不等于程序测试.软件测试贯穿于 软件定义和开发的整个期间.需求分析,概要 设计,详细设计,以及程序编码等各个阶段所 得到的文档,包括需求规格说明,概要设计规 格说明,详细设计规格说明以及源程序,都是 软件测试的对象.
需求 设计
编程 内部测试 外部测试 发布
一些常识和经验之谈
测试能提高软件的质量,但是提高质量不能依赖测试。 测试只能证明缺陷存在,不能证明缺陷不存在。“彻
底地测试”难以成为现实,要考虑时间、费用等限制, 不允许无休止地测试。我们应当祈祷:软件的缺陷在 产品被淘汰之前一直没有机会发作。 测试的主要困难是不知道如何进行有效地测试,也不 知道什么时候可以放心地结束测试。 每个开发人员应当测试自己的程序(份内之事),但 是不能作为该程序已经通过测试的依据(所以项目需 要独立测试人员)。 80-20原则:80%的缺陷聚集在20%的模块中,经常出 错的模块改错后还会经常出错 测试应当循序渐进,不要企图一次性干完,注意“欲 速则不达”。
很多人认为软件测试就是运行一下软件,看看结果对不对. 但实际上,如何在有限的投入下,提高软件测试的效率和产 出是一件很见功底的事.好的测试人员不仅要掌握各种测 试技术,还要具备丰富的编程经验和对BUG的敏感.测试的 复杂之处,除了测试技术问题之外,还有测试管理问题.
测试不是可有可无,随心所欲的.规范化的软件开发需要对 软件测试早做计划,分配必要的时间,人力和财力等资源,并 将其作为项目管理的一个部分加以控制和协调.
单元测试:是针对软件设计的最小单位—程序模块,进行 正确性检验的测பைடு நூலகம்工作。一般包括逻辑检查、结构检查、 接口检查、出错处理、代码注释、输入校验、边界值检查。
单元测试的依据是系统的详细设计;一般由项目组开发人 员自己完成。
集成测试:在单元测试的基础上,将所有模块按照设计要 求组装进行测试。一般包括逻辑关系检查、数据关系检查、 业务关系检查、模块间接口检查、外部接口检查。
(4)软件需求、设计报告、程序经常发生变更,每次变更都可能产生 新的Bug。
(5)任何人在编程时都可能犯错误,导致程序中有Bug。
(6)人们常处于进度的压力之下,急忙之下容易产生Bug,尤其是在期 限临近之际。
(7)人们过于自信,喜欢说“没问题”,不真实的“没问题”将产生 真正的问题。
测试的分类
从测试方法的角度可以分为手工测试和自动化 测试。
系统测试:系统测试是在所有单元、集成测试后,对系统 的功能及性能的总体测试。
确认测试:模拟用户运行的业务环境,运用黑盒测试方法, 验证软件系统是否满足用户需求或软件需求说明书中指明 的软件特性(功能、非功能)上的。
从测试原理上分为:白盒测试、黑盒测试。
白盒测试:是通过程序的源代码进行测试而不使用用 户界面。这种类型的测试需要从代码句法发现内部代 码在算法,溢出,路径,条件等等中的缺点或者错误, 进而加以修正。
理解正确性 编码正确性
测试的目的
测试的目的是寻找错误,并且是尽最大可能 找出最多的错误.在选取用例时,考虑那些易 于发现程序错误的数据;
一个好的测试用例在于发现至今未发现的 错误;
一个成功的测试是发现了至今未发现的错 误的测试.
正确理解测试的目的十分重要。如果认为测试的目的是为了说明程序中 没有缺陷,那么测试人员就会向这个目标靠拢,因而下意识地选用一些 不易暴露错误的测试示例。这样的测试是不真实的。
软件测试培训内容
什么是软件测试 软件测试对象 测试的目的 测试的分类 功能测试方法与内容 测试策略 测试流程及相关文档 测试人员的基本素质 测试驱动开发介绍
什么是软件测试
软件测试是一种有效的提高软件质量的手段,但即使在投 入上有所保证,测试也不能百分为百发现所有质量隐患.况 且软件质量并不仅仅是测试出来的.
黑盒测试:是通过使用整个软件或某种软件功能来严 格地测试, 而并没有通过检查程序的源代码或者很清 楚地了解该软件的源代码程序具体是怎样设计的。测 试人员通过输入他们的数据然后看输出的结果从而了 解软件怎样工作。在测试时,把程序看作一个不能打 开的黑盆子,在完全不考虑程序内部结构和内部特性 的情况下,测试者在程序接口进行测试,它只检查程 序功能是否按照需求规格说明书的规定正常使用,程 序是否能适当地接收和正确的输出
手工测试:不使用任何测试工具,根据事先设 计好的测试用例来运行系统,测试各功能模块
自动化测试:利用测试工具,通过编写测试脚 本和输入测试数据,自动运行测试程序。目前 最常用的自动化测试工具是基于GUI的自动化 测试工具,基本原理都是录制、回放技术。
从整体的角度可以分为单元测试、集成测试、系统测试、 确认测试。
软件生存各个阶段间的确认和验证
理解正确性 表达正确性
用户要求 用户: 我要什么?
1
5 相符吗?
需求说明书
分析员: 我可以提供什么?
2 理解正确性 设计正确性 表达正确性
3
设计说明书 设计员: 我要软件做什么?
运行结果
计算机: 程序运行得到 的结果
运行正确性
4
输入正确性
源程序 程序员: 我要让计算机 怎么做?
开发和测试是软件项目相辅相成的两个过程,人员间的交 流,协作和配合是提高整体效率的重要因素.
开发与测试的 V 型关系
如果软件开发过程采用严格的瀑布模型,那么 开发与测试有“V”型的对应关系 。
需求开发
验收测试 系统测试
高层设计
集成测试
详细设计
单元测试
编程
软件产品开发完毕,再进行测试的观念是有 悖于生命周期理论的.软件产品质量问题越 晚发现,修复的代价越大.
为什么需要测试?因为软件中有Bug。
为什么软件中有Bug?以下是一些原因:
(1)开发人员不太了解需求,不清楚应该“做什么”和“不做什么”, 常常做不合需求的事情,因此产生了Bug。
(2)软件系统越来越复杂,开发人员不太可能精通所有的技术,如果 不能正确地使用技术,将产生Bug。
(3)技术文档普遍比较糟糕,文档本身就有Bug,导致使用者产生更多 的Bug。
软件测试的定义
软件测试是为了发现错误而执行程序的过 程
软件测试是根据软件开发各阶段的规格说 明和程序的内部结构而精心设计一批测试 用例(即输入数据及其预期的输出结果),并利 用这些测试用例去运行程序,以发现程序错 误的过程.
软件测试的对象
软件测试不等于程序测试.软件测试贯穿于 软件定义和开发的整个期间.需求分析,概要 设计,详细设计,以及程序编码等各个阶段所 得到的文档,包括需求规格说明,概要设计规 格说明,详细设计规格说明以及源程序,都是 软件测试的对象.