软件测试培训教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试的目的和原则
软件测试的原则: 所有的软件测试都应追溯到用户需求。 应当把“尽早地和不断地进行软件测试”作为软件 测试者的座右铭。 完全测试是不可能的,测试需要终止。 测试无法显示软件潜在的缺陷。也就是说测试只能 证明软件存在错误而不能证明软件没有错误。
wenku.baidu.com
软件测试的对象
根据软件定义,软件包括程序,数据和文档,所以 软件测试并不仅仅是程序测试,软件测试应该贯穿 整个软件生命周期中。
企业需要怎样的测试人才?
熟练C、C++、Java、VB、Delphi、C#中的一种 以上 熟练使用SQL Server或Oracle数据库 了解业务领域(ERP、OA、电子商务、税务系 ERP OA 统、电信计费系统……) 熟练掌握至少一种以上的测试工具,如 TestDirector、QTP、LoadRunner、Robot 进取、合作、表达、沟通、责任心、耐心、认真 程度
系统测试
将通过集成测试的软件部署到某种较为复杂的计算 机永华环境进行测试。 目的:通过与系统的需求定义作比较,发现软件与 系统的定义不符合或与之矛盾的地方。 这个阶段主要进行的是安装卸载测试、兼容性测试、 功能确认测试、安全测试等。 采用黑盒测试法,主要考察被测软件的功能与性能 表现。
性能测试
性能测试要求被测软件在业务处理速度、处理能力 和所耗用的硬件系统资源比率满足用户的需求。 不要尝试用手动方式进行性能测试,应当编写一段 相应的程序或者使用专门的工具进行,如利用 LoadRunner自动化性能测试工具。 性能测试相对难度较大,要求测试人员掌握编程语 言,精通业务流程,拥有深厚的项目经验。
软件测试培训教 程
研发部 2010年11月
培训内容
软件测试理论基础 软件测试流程 软件项目运作流程 软件测试工作流程 软件测试用例设计方法 软件缺陷 测试的技巧 测试工具的选择 软件的测试整个过程
软件测试理论基础
测试行业简介
软件测试在软件生命周期中占据重要作用。 软件生命周期的每个阶段都应该包含测试从而检验 本阶段的成果是否接近预期的目标,尽可能早的发 现错误并加以修正。 由于测试的重要性和复杂度,它慢慢的独立发展成 为一个行业,并且在迅猛发展。 在典型的软件开发项目中,软件测试工作量往往占 软件开发总工作量的 40 %以上。而在软件开发的 总成本中,用在测试上的开销要占 30 %到 50 %
软件测试概论(行情)
3、用户对软件质量要求越来越高,通过第三方测 试机构的严格测试来判定 4、市场需求量不断增大,软件测试工程师的待遇 也在不断提高。北京地区的薪资趋势大致如图1-1所 示。
图1-1 薪资趋势图
测试工程师的职业发展
软件测试工程师一般有几个方向可走,如图1-2所示。
初级测试工程师
中级测试工程师
软件测试人员职业要求
从个人素质角度要求测试工程师需要具备以下6种 素质: 责任心 沟通能力 团队合作精神 耐心、细心和信心 时时保持怀疑态度、并且有缺陷预防的意识 不断学习的能力
软件测试流程
软件测试流程图
软件测试虽然是软件生存周期的 一个独立阶段,但测试工作却渗 透到从分析、设计直到编程的各 个阶段中(1-7是软件测试所经 阶段的一般流程)。
测试用例 程序内部结构 测试结果
图1-5 白盒测试示例图
软件测试分类—灰盒测试
灰盒测试介于白盒和黑盒测试之间。 。 灰盒测试一方面考虑程序代码的功能性表现,另 一方面,又需要考虑程序代码的内部结构。 通俗地讲,灰盒测试就是白加黑。 像我们的性能测试,自动化功能测试就是采用了 灰盒测试的方法。 图1-6是灰盒测试的示例图。
高级测试工程师
测试管理者
图1-2 职业发展规划图
开发工程师
一个理想的测试工程师应该有开发经验,至少要有 开发的概念。仅仅发现Bug是测试的初步,而分析 出根本原因,却要有很深的功底。
企业需要怎样的测试人才?
一年以上软件测试经验 计算机相关专业大专以上学历 了解软件工程,熟悉软件测试过程和标准,熟悉 配置管理技术和工具 能够编制测试计划、设计测试用例、编写Bug报 告和测试总结报告、使用测试工具、开发测试脚 本 熟练使用Windows或Unix或Linux操作系统
1991年国际标准ISO 9126中定义为:软件满足规定 或潜在用户需求的总和。 1999年国际标准ISO 14598中定义为:软件特性的总 和,软件满足规定或潜在用户需求的能力。 2001年国际标准ISO 9126中定义为:软件满足规定 用户或潜在用户需求的能力,要从软件在内部,外 部和使用过程中的表现来衡量,包含内部质量、外 部质量、和使用质量。
软件测试概论(行情)
国外: A、软件测试在软件公司中占有重要的地位 B、软件测试理论研究蓬勃发展,引领软件测试理 论研究的国际潮流 C、软件测试市场繁荣 国内: 1、我国著名的软件公司都已经或者正在建立独立 的专职软件测试队伍 2、国家开始对软件测试职业高度重视和认可(软 考中级资格中增加软件评测师)
测试用例 测试结果
图1-4 黑盒测试示例图
黑盒测试能更好的从用户角度来考察被测系统的功能性 需求实现情况。
软件测试分类—白盒测试
白盒测试又称结构测试、逻辑驱动测试或基于程 序代码内部构成的测试。 白盒测试需要测试工程师深入考查程序代码的内 部结构、逻辑设计等。 就像前面的例子,我们拆开手机,观察手机电路 板的设计,液晶屏的构成等。 对于白盒测试工程师来说,软件产品的内部结构 是敞开的。如图1-5所示是白盒测试示例图。
需求分析,概要设计,详细设计以及程序编码等各 阶段所得到的文档,包括需求规格说明,概要设计 规格说明,详细设计规格说明以及源程序。
软件测试的对象
为了把握各个环节的正确性,人们需要进行各种验证 和确认工作 : 验证(verification): 是保证软件正确实现特定功能 的一系统活动和过程,目的是保证软件生命周期中的 , 每一个阶段的成果满足上一个阶段所设定的目标。 确认(validation): 是保证软件满足用户需求的一系 列的活动和过程,目的是在软件开发完成后保证软 件,用户需求相符合。
软件测试分类—手动测试
它是测试人员设计测试用例并执行测试用例,然后 根据实际的结果去和预期的结果相比较并记录测试 结果,最终输出测试报告的测试活动。
可充分发挥测试工程师的主观能动性,将其智力体 现在测试工作中,能发现许多的缺陷,但同时又有 一定的局限性和单调枯燥性。
软件测试分类—自动化测试
定义 利用测试工具,模拟用户业务使用流程,让他们 自动运行来查找缺陷。 优点 快、广泛、可重复性工作 缺点 只可检查比较主要的问题,如崩溃、死机,无法 发现一般的日常错误。编写脚本工作量 也很大, 有时会超过手动测试时间。 我们要根据实际情况选择或者不选择测试工具, 选择使用何种测试工具,不能为了实用工具而可 以的去使用工具。
软件测试与质量保证的区别
软件质量保证和软件测试是软件质量工程中两个不 同层面的工作。
质量保证(QA):质量保证的重要工作通过预防,检查 与改进来保证软件质量(所关注的是软件质量的检查 与测量,着眼于软件开发的过程,步骤和产物)。
软件测试:测试过程虽然与开发过程紧密相关但, 关心的不是过程的活动,而是对过程的产物以及开 发出的软件进行剖析。
测试用例
测试结果
图1-6 灰盒测试示例图
软件测试分类—静态测试
定义:静态的、不执行被测对象程序代码而寻找 缺陷的过程。 在进行静态测试时可采用一些代码走查工具,如 QAC++、C++Test等。
软件测试分类—动态测试
实际的执行被测对象的程序代码,输入实现设计好 的测试用例,检查程序代码运行得到的结果与测试 用力中设计的预期结果之间是否有差异,判定实际 结果与预测结果是否一致。 动态测试有四部分组成:设计测试用例、执行测试 用例、分析比较输出结果、输出测试报告。 动态测试有三种主要方法:黑盒测试、白盒测试和 灰盒测试
在单元测试中我们主要采用静态测试与动态测试相结合的 办法。
单元测试要求需要几年的代码编写经验,并且要十 分熟悉当前的被测系统,以及该系统是否与其他系 统的接口关联情况。 单元测试在编码阶段占据非常重要的地位。
可以降低编码的错误率,提高编码质量
集成测试
又称组装测试,是将软件产品各个模块组装起来, 检查接口是否存在问题,以及组装后的整体功能、 性能表现。 一般可采用非增式集成方法、增式集成方法(自底 向上集成、自顶向下集成、组合方式集成)等策略 进行测试,利用一黑盒测试为主,白盒测试为辅的 测试方法进行测试。 主要解决各个组成但源代码是否符合开发规范、接 口是否存在问题,整体功能有无错误、界面是否符 合设计规范、性能是否满足用户需求等。
软件测试概论(概述)
1975年,“测试数据选择的原理”(Toward a theory of Test Data)的文章,软件测试才被确定为 一种研究方向。 1979年,“软件测试时为发现错误而执行一个程序 或者系统的过程” 1983年,“测试是以评价一个程序或者系统属性为 目标的任何一种活动,测试是对软件质量的一种度 量”。 2002年,“测试是为了度量和提高被测试软件的质 量,对测试软件进行工程设计、实施、维护的的整 个生命周期过程”。
软件测试的目的和原则
基于不同的立场,存在着两种完全不同的测试目 的: 用户角度:希望软件测试暴露软件中隐藏的错误 用户角度 和缺陷,已考虑是否接受产品。 软件开发者角度:希望测试成为表明软件产品中 软件开发者角度 不存在错误的过程,验证被测软件已正确的实现 了用户的需求,确立人们对软件质量的信心。
数据库 知识学习
配置管理 知识学习
Linux操作系统 知识学习
LoadRunner性 能测试工具学习
项目实战
岗前培训 面试技巧
工 作
图1-3 软件测试学习路线图
软件测试由来
调试
在已知错误的情况下,对软件程序代码做出 的一系列检查,校正的过程。
测试
在未知错误的情况下,检查程序代码是否有 问题的过程。 区分:软件测试从软件质量保证的角度来检查程 序代码是否有误,而调试是为了解决当前已知的 错误,调试活动无法替代软件测试活动。
测试学习路线
对于软件测试初学者,我们要切合实际、循序渐进 的学习,在学习中可参考图1-3所示的软件测试学习 路线图,从软件测试的理论基础,到项目实战,逐 步学习,掌握技术技能,最终胜任软件测试工作。
初 学 者
QTP功能测试 工具学习 软件测试理论 基础学习 缺陷管理 知识学习 Web测试环境 搭建学习
软件测试定义
定义:软件测试就是为了发现错误而审查软件文档、 定义: 检查软件数据和执行程序代码的过程。
软件测试应该是对软件形成过程的文档,数据以及程 , 序进行的测试,而不仅是对程序进行的测试。 60%以上的软件错误并不是程序错误,而是分析和设 计的错误,提倡软件全生命周期测试的理念。
什么是软件质量
需求测试
单元测试
集成测试
系统测试
性能测试
需求测试、单元测试、集成测试、 系统测试、性能测试、用户测试、 回归测试
用户测试
回归测试
图1-7 软件测试流程图
需求测试
要从以下几个方面考虑需求测试:
完整性 一致性 无二义性 必要性 可修改性
正确性 可行性 健壮性 可测试性
单元测试
又称模块测试,就是对程序代码中最小的涉及模块 单元进行测试。
软件测试的目的和原则
换言之,测试的目的是: 想以最少的时间和人力,系统地找出软件中潜在的 各种错误和缺陷。如果我们成功地实施了测试,我 们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能 与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供 了依据 测试不能表明软件中不存在错误,它只能说明软件 中存在错误
软件测试的对象
软件测试分类
一般的,我们将软件测试活动分为以下几类: 黑盒测试、 白盒测试、 灰盒测试、 静态测试、 动态测试、 手动测试、 自动测试
软件测试分类—黑盒测试
黑盒测试又叫功能测试、数据驱动测试或基于需求规格 说明书的功能测试。该测试类别注重于测试软件的功能 性需求。 测试工程师无需了解程序代码的内部构造,完全模拟软 件产品的最终端用户使用该软件,检查软件产品是否达 到了用户的需求。 如图1-4所示为黑盒测试实例图。