软件测试人员培训
(A≠B) (18) (B≠C) (19) (C≠A) (20)
设计测试用例
软件缺陷
什么是软件缺陷
符合下面 5 条规则之一的问题称为软件缺陷: 1、软件未达到产品说明书标明的功能。 2、软件出现产品说明书指明不会出现的错误。 (如
果软件含有产品说明中根本没有存在的功能,这是 缺陷) 3、软件功能超出产品说明书指明的范围。 4、软件未达到产品说明书未指出但应达到的目标。 (产品说明书虽然没有提到,但是按照常理应该达 到的功能) 5、软件测试人员或用户认为软件难以理解,不易使 用,运行速度缓慢等问题。
软件测试分类—自动化测试
定义
◦ 利用测试工具,模拟用户业务使用流程,让他们自动运行来 查找缺陷。
优点
◦ 快、广泛、可重复性工作
缺点
◦ 只可检查比较主要的问题,如崩溃、死机,无法发现一般的 日常错误。编写脚本工作量 也很大,有时会超过手动测 试时间。
◦ 我们要根据实际情况选择或者不选择测试工具,选择使用何 种测试工具,不能为了实用工具而可以的去使用工具。
软件测试用例设计方法
什么是测试用例
测试用例( Test Case )是指对一项特定的软件 产品进行测试任务的描述,体现测试方案、方法、 技术和策略。内容包括测试目标、测试环境、输入 数据、测试步骤、预期结果、测试脚本等,并形成 文档。
测试用例包含要素
每个具体测试用例都将包括下列详细信息:编制人、 审定人、编制日期、版本、用例类型、设计说明书 编号、用例编号、用例名称、输入说明、期望结果 (含判断标准)、环境要求、备注等。
测试者的座右铭。 完全测试是不可能的,测试需要终止。 测试无法显示软件潜在的缺陷。也就是说测试只能
证明软件存在错误而不能证明软件没有错误。
软件测试的对象
根据软件定义,软件包括程序,数据和文档,所以 软件测试并不仅仅是程序测试,软件测试应该贯穿 整个软件生命周期中。
需求分析,概要设计,详细设计以及程序编码等 各阶段所得到的文档,包括需求规格说明,概要设 计规格说明,详细设计规格说明以及源程序。
缺陷的生命周期
简单周期:
测试员找到并登记软件缺陷,软件缺陷移交到程 序员=>程序员修复软件缺陷,软件缺陷移交到测试 员=>测试员确定软件缺陷被修复,测试员关闭软件 缺陷。
缺陷的生命周期
复杂周期: 发现缺陷(测试员发现并登记缺陷,软件缺陷转到
程序员)=>软件缺陷移交到项目管理员=>(以不修 复形式解决)项目管理员认为软件缺陷不重要,软 件缺陷移交到测试员=>重新激活缺陷(测试员不同 意,找出通用失败案例,软件缺陷移交到项目管理 员)=>项目管理员同意缺陷需要修复,缺陷转给程 序员=>以修复形式解决(测试员确认软件缺陷得以 修复,测试员关闭软件缺陷)=>缺陷关闭
软件测试的对象
企业需要怎样的测试人才?
了解软件工程,熟悉软件测试过程和标准,熟悉配 置管理技术和工具
能够编制测试计划、设计测试用例、编写Bug报告 和测试总结报告、使用测试工具、开发测试脚本
熟练使用Windows或Unix或Linux操作系统 了解业务领域(ERP、OA、……) 熟练掌握至少一种以上的测试工具,如
(A=B)(13) (B=C) (14) (C=A) (15)
(A=B)and (B=C) and (C=A) (17)
(A≤0) (7) (B≤0) (8) (C≤0) (9) (A+B≤C) (10) (B+C≤A) (11) (A+C≤B) (12)
(A≠B)and (B≠C)and (C≠A) (16)
一般情况下,都由测试工程师手动的执行一千的测 试用例。来检查用例通过情况。
软件测试工作流程
测试部门组织结构
1、人员构成
测试主管、测试组长、环境保障人员、配置管理员、测 试设计人员、测试工程师
测试主管
软件测试部
测试组长
环境保障人员 配置管理员 测试设计人员 测试工程师
图1-9 测试部人员结构图
软件测试的目的
想以最少的时间和人力,系统地找出软件中 潜在的各种错误和缺陷。
测试能够证明软件的功能和性能与需求说明 相符合。
实施测试收集到的测试结果数据为可靠性分 析提供了依据
测试不能表明软件中不存在错误,它只能说 明软件中存在错误
软件测试的原则
所有的软件测试都应追溯到用户需求。 应当把“尽早地和不断地进行软件测试”作为软件
❖白盒测试需要测试工程师深入考查程序代码的内部结构、逻 辑设计等。
❖就像前面的例子,我们拆开手机,观察手机电路板的设计, 液晶屏的构成等。
❖对于白盒测试工程师来说,软件产品的内部结构是敞开的。 如图1-5所示是白盒测试示例图。
测试用例
程序内部结构
测试结果
图1-5 白盒测试示例图
软件测试分类—灰盒测试
测试测试用例的好处
在开始实施测试之前设计好测试用例,可以避免盲 目测试并提高测试效率。
测试用例的使用令软件测试的实施重点突出、目的 明确。
在软件版本更新后只修正少部分的测试用例便可展 开测试工作,降低工作强度,缩短项目周期。
功能测试模块的通用化和复用化使软件易于开发, 而测试用例的通用化和复用化则会使软件测试易于 开展,并随着测试用例的不断精化其效率也不断攀 升。
动态测试有四部分组成:设计测试用例、执行测试 用例、分析比较输出结果、输出测试报告。
动态测试有三种主要方法:黑盒测试、白盒测试和 灰盒测试
软件测试分类—手动测试
它是测试人员设计测试用例并执行测试用例,然后 根据实际的结果去和预期的结果相比较并记录测试 结果,最终输出测试报告的测试活动。
可充分发挥测试工程师的主观能动性,将其智力体 现在测试工作中,能发现许多的缺陷,但同时又有 一定的局限性和单调枯燥性。
❖灰盒测试介于白盒和黑盒测试之间。 ❖灰盒测试一方面考虑程序代码的功能性表现,另一方面,又
需要考虑程序代码的内部结构。 ❖通俗地讲,灰盒测试就是白加黑。 ❖像我们的性能测试,自动化功能测试就是采用了灰盒测试的
方法。 ❖图1-6是灰盒测试的示例图。
测试用例
图1-6 灰盒测试示例图
测试结果
软件测试分类—静态测试
现不完整,但不影响功能 3、非严重性产生错误结果,但不影响一起功能。 4、正确性不受影响,但系统性能和响应时间受到
影响。
缺陷的严重性分类
D 类 —— 轻微错误:
使操作者不方便或遇到麻烦,但它不影响执行工 作功能或重要功能, 或对最终结果影响有限的问 题。
缺陷的严重性分类
E 类 —— 测试建议:
报告缺陷的要点
复杂周期: 发现了软件缺陷,需要记录下来,不但要记录结果,
同时需要详细描述发现的步骤,以备程序员重现问 题,并解决它。 要求报告写的清楚明了和准确。有时利用截屏技术 把当时的情况保存成图片,可以达到一图胜千言的 效果。
缺陷的严重性分类
A类——致命性:
不能完全满足系统要求,基本业务功能未实现系 统崩溃、不稳定或挂起等导致系统不能继续运行、 导致系统出现不可预料的严重错误的问题。
测试部门组织结构
项目管理技术人员
◦ 要求掌握一般的项目管理知识,如配置管理、版本控制、 评审管理、项目实施与进度控制等。
资源构成
软件测试部
硬件资源
软件资源
技术支持
图1-11 测试部资源构成图
测试工作流程
◦ 测试用例编写
分配任务 编写用例
测试组长 测试小组 测试工具
图1-17 部署测试用例编写任务流程图
不影响系统运行,对系统的可用性等提示的建议性 的问题。
具体可以参考建行测试用例模板
黑盒测试案例设计技术
◦ 测试用例设计:将软件测试的行为活动,作为一个科学化 的组织归纳。
◦ 测试用例:设计一个情况,软件程序在这种பைடு நூலகம்况下,必须 能够正常运行并且达到程序所设计的执行结果。
◦ 因为我们不可能进行穷举测试,为了节省时间和资源、提 供测试效率,必须从数量极大的可用测试数据精心挑选出 具有代表性或者特殊性的测试数据来进行测试。
软件测试流程
软件测试流程图
软件测试虽然是软件生存周期的 一个独立阶段,但测试工作却渗 透到从分析、设计直到编程的各 个阶段中(1-7是软件测试所经 阶段的一般流程)。
需求测试 单元测试 集成测试 系统测试
需求测试、单元测试、集成测试、 系统测试、性能测试、用户测试、 回归测试
性能测试 用户测试
主要解决各个组成但源代码是否符合开发规范、接 口是否存在问题,整体功能有无错误、界面是否符 合设计规范、性能是否满足用户需求等。
回归测试
回归测试是经过一段时间以后再回过头来对以前修 复过的Bug重新进行测试,看该Bug是否会重新出现。
有些时候可采用自动化测试工具来进行回归测试, 如利用QTP
可以降低编码的错误率,提高编码质量
集成测试
又称组装测试,是将软件产品各个模块组装起来, 检查接口是否存在问题,以及组装后的整体功能、 性能表现。
一般可采用非增式集成方法、增式集成方法(自底 向上集成、自顶向下集成、组合方式集成)等策略 进行测试,利用一黑盒测试为主,白盒测试为辅的 测试方法进行测试。
❖定义:静态的、不执行被测对象程序代码而寻找缺陷的过程。 ❖在进行静态测试时可采用一些代码走查工具,如QAC++、
C++Test等。
软件测试分类—动态测试
实际的执行被测对象的程序代码,输入实现设计好 的测试用例,检查程序代码运行得到的结果与测试 用力中设计的预期结果之间是否有差异,判定实际 结果与预测结果是否一致。
TestDirector、QTP、LoadRunner、Robot
软件测试分类
一般的,我们将软件测试活动分为以下几类: