新人培训(软件测试基础)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试人员素质 Cont.
5. 交流。当你告诉某个开发人员的程序出现 了错误时,需要用一种婉转且留有余地的商 讨口吻和开发人员交流。 6. 记忆。测试人员应该具备将历史类似错误 从记忆深处挖掘出来的本领。 7. 耐心。测试工作需要耐心,有时我们需要 花费大量的时间去剥离、确认和跟踪一个错 误,测试工作是那些坐不住板凳的人无法胜 任的。
2.彻底的测试不可能
因为存在着输入量太大,输出结果太多, 软件实现途径太多和软件实现没有客观 标准,从不同的角度看软件缺陷的标准 不同这些客观因素的存在,所以我们只 能做到有限数量路径测试
如果时间不够,无法进行充分 的测试怎么办?
• • •
我们要使用风险分析,确定测试的重点, 需要考虑下列因素:
对于该项目的用途而言,哪种功能最重要? 哪种功能对用户最明显? 哪种功能对安全影响最大? 哪种功能对用户最有用? 在开发过程中,该应用软件的哪个部分最重 要?
•
•
如果时间不够,无法进行充分 的测试怎么办?Cont.
哪一部分代码最复杂,容易导致出现错误? 哪一部分的应用程序是在急迫或在惊恐的情 况下开发出来的? 哪一部分程序与过去项目中引起问题的部分 相类似/有关? 哪一部分程序与过去项目中需要大量维护的 部分相类似/有关? 开发人员认为在软件中哪些部分是高风险的?
软件测试策略
1.数据和数据库完整性测试 我们在数据测试中必须认真对待默认值、 空白、Null值、零值和无效输入等情况。
软件测试策略 Cont.
2.功能测试 功能测试又称正确性测试,它检查软件 的功能是否符合规格说明。基本方法是 构造一些合理输入,检查是否得到期望 的输出。
软件测试策略 Cont.
何为软件测试?Cont.
发现问题 记录问题 跟踪问题
历史数据
再现问题
跟踪问题:第三个行为表示通过“记录问题” 行为操作来跟踪和控制出现过的问题,直到 问题关闭。由“再现问题”引出的虚线代表 着两个行为之间的关联是隐性存在的。
何为软件测试?Cont.
发现问题 记录问题 跟踪问题
历史数据
再现问题
测试需求分析
在整个软件测试生命周期中,制定项目 的测试需求和计划阶段是测试项目的关 键。在这个阶段,我们需要制定项目的 测试需求,从而确定测试项目的范围和 目标;我们也需要对项目进行规划,确 定项目所需的资源、分配、风险、方法 和策略等等,从而让整个项目有序地、 高效的、受控地进行。
什么是测试需求:
如果时间不够,无法进行充分 的测试怎么办?Cont.
哪些问题能造成最差的发行? 哪些问题最能引起用户抱怨? 哪些测试可以容易地覆盖多种功能? 哪些测试在覆盖高风险部分的测试时使用时 间最少?
3.软件测试是有风险的行为
我们可以通过对资源的调节,对测试程 度和范围进行有效控制。原则是尽量使 用有限资源得到最大的回报。测试只能 保证尽可能多地发现错误,不能保证发 现所有的错误。
测试人员素质
• •
•
•
五项优秀测试人员所拥有的重要特征: Controlled(可管理,有条理的)、 Competent(掌握测试技术的)、 Critical(专注于发现问题的)、 Comprehensive(注重细节的)、 Considerate(能够和开发人员很好交流的), 简称为测试人员的5C职业特征。
测试人员素质 Cont.
3. 技术能力。开发人员轻视那些不懂技术的 人是一种普遍存在的现象,测试人员必须很 好的理解被测软件概念,会使用其中的一些 重要工具。 4. 自信。测试人员和开发人员的工作性质相 反,所以经常出现开发人员指责测试人员工 作出现错误的事情。测试人员必须对自己的 观点保持足够的自信,如果容许别人对自己 的工作结果指东指西,就不能完成更多的事 情了。
再现问题:来源于“记录问题”,表示 这个过程只是为了演示曾经出现过的错 误现象,值得注意的是有些错误现象我 们可能没有办法再现了。
何为软件测试?Cont.
比如,由于某次操作引起了操 作系统的内存异常出错,我们 记录了但是下一次演示的过程 中不一定会再出现。虽然有这 样的事情发生,但是我们有理 由肯定错误还是存在的,只不 过我们没有触发相应的条件。
3.易用性原则 易用性是人机交互中适应性、实用性和 有效性的集中体现。 优秀UI常见的七个要素: 符合标准和规范;灵活性;正确性;直 观性;舒适性;实用性;一致性。
软件测试策略 Cont.
4.性能测试与压力测试 压力测试:对系统不断施加压力的测试,是 通过确定一个系统的瓶颈或者不能接收的性 能点(极限点),来获得系统能提供的最大 服务级别的测试 性能测试:在交替进行负荷和强迫测试时常 用的术语。性能测试关注的是系统的整体。 它和通常所说的强度、压力/负载测试有密切 的关系。所以压力和强度测试应该与性能测 试一同进行。
性能测试和压力测试的区别?
他们具有不同的测试目的 压力测试是为了发现系统能支持的最大负载, 他的前提是要求系统性能处在可以接受的范 围内,比如经常规定的页面3秒钟内相应;所 以一句话概括就是:在性能可以接受的前提 下,测试系统可以支持的最大负载。 性能测试是为了检查系统的反映,运行速度 等性能指标,他的前提是要求在一定负载下, 如检查一个网站在100人同时在线的情况下的 性能指标,每个用户是否都还可以正常的完 成操作等。
测试人员素质 Cont.
8. 怀疑。这也是测试人员必须具备的 基础品德,开发人员本能地掩盖所有 已经出现的或者未出现的错误。测试 人员在听取了开发人员的说明后,必 须保持怀疑态度知道经过自己认真地 核实。
End Thanks
—by Bill Hetzel [The Complete Guide to Software Testing, Chapter 11]
测试人员素质 Cont.
根据5C我们可以对测试人员应该具备的职业 素质总结出一下几点: 1. 沟通能力。测试人员必须能够同测试涉及 到的所有人进行沟通,具有与技术人员和非 技术人员交流的能力。 2. 共同价值观。测试人员必须和每一类人打 交道与他们形成共同的价值观,具备这种能 力可以将测试人员与相关人员之间的冲突和 对抗减少到最低程度。
发现问题
记录问题
跟踪问题
历史数据
再现问题
何为软件测试?Cont.
发现问题 记录问题 跟踪问题
历史数据
再现问题
发现问题:第一个行为,表示发现软件 中存在的问题。
何为软件测试?Cont.
发现问题 记录问题 跟踪问题
历史数据
再现问题
记录问题:第二个行为,表示通过“发现问 题”行为操作指明和标注问题存在的正确位 置,详细记录导致问题出现的操作步骤,及 时储存当时的错误状态。
—by Grenford J. Myers [The Art of software Testing]
软件测试目的?Cont.
软件测试不以发现错误为唯一目的,查 不出错误的测试并非没有价值。整个测 试过程本身就是评定测试质量的一种方 法。如果我们的测试过程是可持续增长 的在运行多次而未发现软件错误,这样 多少都可以得出这样的结论:被测试软 件已经完美了,或者就是需要遗弃这套 无法正常工作的测试过程而重新构建一 套了。
4.并非所有的软件错误都能修 复
没有足够的时间(项目进度不允许) 不算真正的软件错误(沟通理解上发生歧义) 修复的风险太大(导致更多的错误,修复成 本太高) 不值得修复(不太常用的功能) 以上都需要经过严格的评估,整个评估决策 过程由软件测试人员、项目管理人员和程序 开发人员共同参与。
软件测试基础培训
不便透露
何为软件测试?
测试是发现并指出软件(包含软件经过 建模、需求、设计等阶段所产生的大量 输出工件)中存在缺陷的过程,这个过 程指名和标注问题存在的正确位置,详 细记录导致问题出现的操作步骤,及时 储存当时的错误状态,以上组合在一起 便于测试后问题能够准确再现
何为软件测试?Cont.
何为软件测试?Cont.
发现问题 记录问题 跟踪问题
历史数据
再现问题
历史数据:从“记录问题”中挑选相同属性 的错误,提高下次测试的针对性。因为是虚 框,所以可以视为过程的一种补充。
为什么需要软件测试?
测试可以保证你对需求和设计的理解与 表达的正确性、实现的正确性以及运行 的正确性,任何一个环节发生了问题都 会在软件测试中表现出来。
软件测试应在软件开发的需求分析阶段 介入
测试概要设计 系统集成 系统测试
软件验收
验收测试
概要设计
详细设计
测试详细设计
代码集成
集成测试
软件开发过程
编码 单元测试
软件测试过程
软件测试目的?
软件测试是为了发现错误而执行程序的过程 测试是为了证明程序有错,而不是证明程序 无错误 一个好的测试用例是在于它能发现至今未发 现的错误 一个成功的测试是发现了至今未发现的错误 的测试
软件测试原则:
1.尽早和不断的测试 2.彻底的测试不可能 3.软件测试是有风险的行为 4.并非所有的软件错误都能修复 5.合理安排测试计划
1.尽早和不断的测试
要尽早地测试,让测试人员在软件的需 求和设计阶段就介入而不是等这些工作 全部完成了才进行测试。发现软件错误 的时间在整个软件过程阶段中越靠后, 修复它所消耗的资源就越大
为什么需要软件测试?Cont.
测试同时还可以防止无意识的行为引入 一些将来可能出现的错误。
为什么需要软件测试?Cont.
测试也可以帮助设计代码及其用户界面, 在编码之前测试人员就代表了客户,这 个时候我们需要考虑程序会产生什么样 的效果,而不用管它内部是如何工作的。
W模型
需求分析
测试需求分析
在分析和制订测试需求时,我 们要考虑的是:
测试目标:
系统的哪些特性需要被测试以保证这些特性 的质量。测试目标往往要根据目标特点进行 分解细化,分解到一个可测试的粒度,即具 体的特性;如果不经分解细化,笼统、整体 或者概括性的特性不利于测试工作的开展。 要测试的系统特性往往包括:功能、性能、 可用性、安全性、兼容性......
5.合理安排测试计划
好的测试计划树立了一个正确的测试目 标、组合了各种有针对性的测试方法、 罗列了所有可使用资源等。测试计划制 定需要严谨,防止发生测试偏移现象。 测试时间安排得尽量宽松(也就是说我 们需要预留工作余量),不要指望在极 短的时间内完成一个全方位、高水平的 测试。任何理想化的概念和无法确定的 因素都应该被剔除。
人们在接受了一项任务后,总会先想到 或去了解这项任务中我们需要做些什么, 软件测试也是如此。在确定要开展一个 测试项目后,我们就要开始了解“什么 是我们要在该项目中进行测试的”—— 也就是测试需求。
在分析和制订测试需求时,我 们要考虑的是:
测试范围:
在测试项目中,我们需要进行开发生命 周期中各阶段测试(单元测试、集成测 试、系统测试和验收测试)的全部还是 具体那些阶段。
测试需求分析
测试需求主要包括两种类型:功能性需 求和非功能性需求
功能性需求:
• • • • •
描述了系统的特征或系统提供的服务。 主要包括: 系统功能 业务流程 界面功能和风格 系统安装 等
非功能性需求:
• • • •
描述了施加于系统操作上的约束。主要 包括: 性能要求 安全性要求 兼容性要求 等