软件测试培训

  • 格式:ppt
  • 大小:642.00 KB
  • 文档页数:25

下载文档原格式

  / 25
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

回归测试
目标
程序修改后,确保功能的正确性
如何使用
重新测试应用程序中没有改变的部分
例子
重新执行以前的测试用例
什么时间使用
当新的程序有可能影响老的功能的时候
错误处理测试
目标
所有可能的错误条件均经过了验证
如何使用
一组有经验的人员预测在那里会出现问题
例子
建立一个错误处理的列表
什么时候使用
贯穿整个开发生命周期
并行测试
目的
新版本和老版本同时运行,用以确保新版本的程 序运行正确。
如何使用
需要对两个系统输入相同的数据来运行
例子
运行新旧两个工资支付系统
测试要素(续……)
一致性:确保最终设计和用户需求完全一致 可靠性:在规定的时间内都可以正常运转。 易于使用:多数人均感觉易于使用。 可维护性:可以很容易的定位问题,并且进行修改。 可移植性:数据或者程序易于移至到其它系统上。 耦合性:系统中的组件可以很容易的联接。 性能:系统资源的占用率,响应时间,并发处理 操作性:易于操作(Operator)
出现了不完整的数据,不正确的数据,过期的数 据
测试效果的好坏是组织级的问题
有效的测试最好由一个独立的团队来实施。
便于确定工作目标 便于人员的培养与升迁 利于团队建设 对质量的忠诚度高 利于新技术,新方法的产生和推广 工作职责明确
测试规划
好的测试不是碰巧发生的,而是规划出来的。
时间上 人员上 环境上 技术上 关系上 组织能力上 资金上
测试策略
在测试策略中必须标明可能存在的风险,这 样在测试后的系统中可以有效的降低被标明 的风险发生的可能性。
测试要素:需要被标明的风险也是我们测试的重 点。 测试阶段:在整个开发生命周期中,测试工作介 入的时期。
测试要素
正确性:数据输入,过程处理和输出的正确性(IPO)。 文件完整性:文件被正确使用,恢复和存储的数据正确。 授权:特殊的授权可以执行一个特殊的操作。 进程追踪:当进程运行中,程序有能力证实进程在正常工作。 系统运行的连续性:当有非致命性问题发生后,系统有能力 继续运行关键的任务。 服务水平:系统有紧急情况发生时,要求程序的输出结果不 经或进行简单的处理后就可以直接使用。 权限控制:防止系统被误用(意外或者有意的)
在现有的系统上开发
只是修正Bug? 重新设计维护? 增加新的功能? 对其它系统有无影响? 为了减小商业上的风险?
识别在战术上的风险
将策略风险分解成战术风险
建立测试计划,定位这些风险 将风险分布于各个阶段的测试计划中
战术风险的种类
结构风险 技术风险 工作量的风险
测试开始时应确定的工作
需求阶段
确定测试策略 确定收集了足够的需求 产生功能性的测试用例
建立系统测试计划 建立单元测试计划 在测试战术上我们要花多长时间?
“如果计划作失败了,那就在计划失败” 时间花在计划上要比花在重复的测试上有效
测试的技巧
测试技巧分类
结构测试相对于功能测试 动态测试相对于静态测试 手工测试相对于自动测试
结构测试技巧
压力测试 执行测试 恢复测试 操作测试 复合性测试(与过程的复合性) 安全测试
什么时间去使用
当操作的连续性是个重点的时候
操作测试
目标
确定计算机的操作文档已经完整
如何使用
作为计算机正常操作的一部分来执行测试
例子
操作的介绍被文档化,操作者被培训
什么时候使用
预先将程序进行产品化。操作性是系统的一个重 要指标的时候。
复合性测试
目标
校验程序的开发是否依照已定义的标准,流程和操作方 式进行的。
设计阶段
确定设计和需求之间的联系 确定进行了足够的设计 产生结构和功能的测试用例
编码阶段
确定和设计之间的联系 确定拥有执行的足够条件 产生结构和功能的测试用例
续……
测试阶段
确定设计了足够的测试用例 测试应用系统已经完成 关键资源已经到位
安装阶段
将测试完成的系统变为产品
维护阶段
修改和重新测试
建立计划
结构化测试方法
传统的软件开发生命周期:
需求,设计,编码,测试,系统维护
经验:
测试不应该被局限在单一的阶段 大量的系统问题产生在软件开发前期 越早进行测试越有效,投入产出比越高
开发生命周期中的验证活动
开发阶段 需求 设计 编码 测试 安装 维护 验证活动
.确定验证步骤 .对需求进行评审 .产生功能测试用例 .确定需求一致性 .确定设计信息是否足够 .准备结构和功能的测试用例 .确定设计的一致性 .为单元测试产生了结构和功能测试的测试用例 .进行了足够的单元测试 .测试应用系统,着重在功能上 .为测试过的系统进行产品化的工作 .修改缺陷并重新测试
什么时间使用
当被保护的资源对于组织具有重要的价值的时候
功能测试技巧
需求测试 回归测试 错误处理测试 支持手册的测试 系统兼容测试 控制性测试 并行测试
需求测试
目标
用户的需求可以被实现
如何使用
创建测试用例和功能检查列表
例子
建立测试矩阵去证实系统需求均被文档化
什么时候使用
每一个应用程序都要进行需求测试
测试目标定义错误 在开发生命周期中,错误的选择了测试介入时期 选择了低效的测试技术 测试人员专业知识培训不够,工作低效 计划不够详细,测试的随意性很大 测试人员同开发人员沟通困难
续……
软件方面
使用了不完全的或者不正确的判定标准来设计软 件。 错误的处理了用户的非法操作 忽略了对关键数据的输出检查
数据问题
压力测试
目标
模拟出实际用户环境
怎么用
产生测试数据 测试组模拟用户处理被创建的数据
例子
确定是否分配了足够的磁盘空间 通讯的容量是否足够 测试系统过载的情况
什么时间使用
当关于容量的信息不确定的时候
性能测试技巧
目标
– 确定系统达到了希望达到的性能水平
如何使用
– 使用软件和硬件的监视器 – 使用模拟的监控模型,对关心的性能指标进行监控 – 创建一个小程序
确定项目开发类型
传统的系统开发 交互式开发/原型法 系统维护 购买/签约/合同软件项目
确定软件系统类型
模拟 数据采集 数据显示 流程控制 决策&辅助协助 图形&图象处理 数据库管理 诊断软件 计算机操作系统 传感器和信号处理 软件开发工具
确定项目范围
新系统的开发
会影响那一个商业领域 与现有系统的接口
确定测试策略
选择并确定测试要素的等级
多数情况下选择3~7个
确定开发阶段 明确商业风险
开发人员,重要用户和测试人员通过评审的方式 对这些风险达成一致的意见。
把风险列表存放在需求矩阵中
矩阵中可以将风险同测试用例对应起来。
测试方法学
测试方法
测试策略
测试要素 测试阶段
测试战略
简要描述如何在以后的测试活动中实现测试策略
如何去使用
将文档/程序同标准相比较 比较有效的方法是检查过程
例子
代码互查(一行一行)
什么时候使用
依赖于管理的需要
安全性测试
目标
安全性的缺陷很难被发现。 大多数的情况下组织能够防止一般性的破坏者。
如何使用
对安全性的需求进行评审 分析与安全性有关的处理流程 转包给专业的人员
例子
定义了被保护的资源,权限进行了控制,日志文件和审查追踪是可 用的。
软件测试培训
贺炘 hcat@163.net
培训列表
软件测试的目的和策略 测试方法学 测试的技巧 测试工具的选择 软件开发中的测试过程 实例讲解测试活动在软件工程中的应用
软件测试的目的和策略
典型测试步骤
1.计划: 定义目标 确定策略 确定方法 建立环境 执行计划 一步步验证 执行完毕? 没有改正 继续执行
缺陷
与需求规格说明书不一致的地方。
静态检查
确保系统按照组织的标准和过程运行,主要依赖 于评审和非运行的手段来检查。
动态检查
在生命周期中进行测试(运行)
续……
静态测试
在不运行程序的情况下检查程序的运行情况。
动态测试
运行程序代码
测试分类
单元测试 集成测试(组装测试) 系统测试 验收测试 回归测试
续……
2. 2.执行: 3.检查: 4.循环:
谁参与测试?
用户方代表 软件最终使用者 软件开发人员 软件测试人员 高层经理的支持 过程保证人员(SQA)
ຫໍສະໝຸດ Baidu
什么试缺陷?
缺陷:最终产品同用户的期望不一致 缺陷的分类
错误 遗漏 超出需求的部分
缺陷(未触发)VS.错误(应首先解决)
测试的商业意义
降低风险(风险:就是不希望发生的事情的 可能性) 测试计划中必须标明商业上的风险。 测试人员职责:
例子
– 计算通信的时间 – 单位时间处理的信息量
什么时候使用
- 在程序开发的早期进行
恢复测试
目标
当在进行安装或组装操作过程中,文件丢失时或发生意 外后系统有能力重新进行操作
如何使用
程序的安装,运行方式,工具的使用和关键技术经过足 够的评估 系统开发完毕后,介绍一下发生失败后的处理过程
例子
人为的使一个系统在安装或者组装过程中产生错误
对待可能产生的风险的策略
我们无法消除风险,但是我们可以降低在风 险发生时的损失。 降低系统风险的最有效的办法就是对其进行 有针对性的测试。
系统风险列举
如果某部分产生了错误会导致的结果? 未被验证的数据交换如果被接受 如果文件的完整性被破坏 系统是否能被安全恢复(完全恢复成备份时的状态) 是否能暂停系统的运行 进行维护工作时,系统性能是否会下降到不能接受 的水平。 系统的安全性是否有保证
评估商业上的风险 如实的向管理层汇报项目情况
目前公司内测试组织的等级
测试是一件艺术品,很难掌握。 测试是一门手艺,精通很困难。 测试使用的是已定义好的测试流程,有规则 可寻。 测试有较高级的组织形式。 世界级的测试组织。
测试的职责
验证在整个软件开发周期中,各个阶段的软件质 量是否合格。 验证最终交付给用户的系统是否满足用户的需要, 是否符合需求。 通过样本测试数据,检查系统在运行过程中的情 况。
静态校验 √ √ √
动态校验
√ √ √ √
确定测试战术的八个步骤
确定并且学习测试策略 确定项目开发类型 确定软件系统类型 确定项目范围 鉴别战术风险 确定开始测试时会遇到的问题 建立系统测试计划 建立单元测试计划
确定并学习测试策略
在众多的测试策略中那些是重要的 那些风险是最重要的 如果软件不能正常运行时,商业上会有什么 损失 如果软件不能及时完成,商业上会有什么损 失 谁是最清楚风险影响的人
静态测试
需求评审 设计评审 代码走查 代码检查
动态测试
单元测试 集成测试 系统测试 用户的验收测试 回归测试
使用静态和动态测试来进行结构和功能测 试
测试阶段
可行性评审 需求评审 设计评审 单元测试 集成测试 系统测试 验收测试
执行人
开发人员,用户 开发人员,用户 开发人员 开发人员 开发人员,用户 开发人员在用户 的协助下完成 用户
功能测试
测试功能需求
结构测试
验证系统架构
黑盒测试
在不了解系统结构的情况下以说明书作为基础进 行测试。
白盒测试
以系统内部结构和相关知识为基础进行测试。
为什么缺陷很难被找出?
看不到 看到但是抓不到 典型的缺陷类型
需求解释有错误 用户定义错了需求 需求记录错误 设计说明有误 编码说明有误 程序代码有误 数据输入有误 测试错误 问题修改不正确 正确的结果是由于其它的缺陷产生的
确定测试战略
流水线的概念
输入:标准的入口或者是个可执行的程序 执行过程:按照工作分配执行 检查过程:确定输出符合预定义的标准 输出:符合现存的标准或者是认可的可交付的版 本
QC和QA
质量控制
验证产品的正确性,当发现与设计不一致的时候 进行纠正。
质量保证
充当支持执行全面质量管理的角色
测试涉及的定义和概念
支持手册测试
目标
检验操作过程被文档化了,并且完整了。
如何使用
对过程有足够的介绍 可以协助用户正常使用
例子
系统在一定的条件下产生一个提示,用户被告知如何采 取必要的操作。
什么时候使用
最佳时机是在安装测试的时候,但是应该在开发全过程 中。
兼容性测试
目标
检验当使用适当的参数和数据时,需要的信息可以在两 个系统中正确的交换
如何使用
文件和数据被用来在多系统之间传递。
例子
典型的由一个系统到另一个系统的数据交换程序。
什么时候使用
当两个应用程序之间的参数有可能发生变化的时候
管理能力测试
目标
验证数据交换时有足够的审计追踪能力
如何使用
关键数据或者有价值的数据
例子
从负面来看程序,是否确保了会出错的条件都被 保护了。
什么时候使用
系统测试的一部分
系统风险列举(继续……)
系统的操作流程是否符合用户的组织策略和 长远规划 系统是否可靠,稳定 系统是否易于使用 系统是否便于维护 是否易于与其它系统相连
测试工作量
太少的测试是不负责任,过多的测试是一种 犯罪。 100%的测试是不可能的,不同的用户采用的 测试策略是不同的。
缺陷产生的原因
测试原因导致的缺陷: