选择和使用测试方法和工具

  • 按照测试需求用途(或测试技巧)选择
  • 在软件开发生命周期和软件测试流程中适当地选择
  • 按照测试人员实际技能选择
  • 选择可提供的和可执行的

测试方法

类别及技巧 目标 使用方法 举例 适合场景
压力测试 模拟出实际用户环境 产生测试数据;测试组模拟用户处理被创建的数据 确定是否分配了足够的磁盘空间;通讯的容量是否足够;测试系统过载的情况 关于容量的信息不确定
性能测试 确定系统达到了希望达到的性能水平 使用软件和硬件的监视器;使用模拟的监控模型,对关心的性能指标进行监控;创建一个小程序; 计算通信的时间;单位时间处理的信息量; 程序开发的早期
恢复测试 当在进行安装或组装操作过程中,文件丢失时或发生意外后系统有能力重新进行操作 程序的安装,运行方式,工具的使用和关键技术经过足够的评估;系统开发完毕后,介绍一下发生失败后的处理过程 人为的使一个系统在安装或者组装过程中产生错误 当操作的连续性是个重点的时候
操作测试 确定操作文档已经完整 作为计算机正常操作的一部分来执行测试 操作的介绍被文档化,操作者被培训 预先将程序进行产品化。操作性是系统的一个重要指标
复合性测试(与过程的复合性) 校验程序的开发是否依照已定义的标准,流程和操作方式进行的。 将文档/程序同标准相比较,比较有效的方法是检查过程 代码互查(一行一行) 依赖于管理的需要
安全性测试 安全性的缺陷很难被发现;大多数的情况下组织能够防止一般性的破坏者。 对安全性的需求进行评审;分析与安全性有关的处理流程;转包给专业的人员; 定义了被保护的资源,权限进行了控制,日志文件和审查追踪是可用的。 当被保护的资源对于组织具有重要的价值
需求测试 用户的需求可以被实现 创建测试用例和功能检查列表 建立测试矩阵去证实系统需求均被文档化 每一个应用程序都要进行需求测试
回归测试 程序修改后,确保功能的正确性 重新测试应用程序中没有改变的部分 重新执行以前的测试用例 当新的程序有可能影响老的功能
错误处理测试 所有可能的错误条件均经过了验证 一组有经验的人员预测在那里会出现问题 建立一个错误处理的列表 贯穿整个开发生命周期
支持手册测试 检验操作过程被完整地文档化了 对过程有足够的介绍;可以协助用户正常使用 系统在一定的条件下产生一个提示,用户被告知如何采取必要的操作。 最佳时机是在安装测试的时候,但是应该在开发全过程中。
系统兼容测试 检验当使用适当的参数和数据时,需要的信息可以在两个系统中正确的交换 文件和数据被用来在多系统之间传递。 典型的由一个系统到另一个系统的数据交换程序。 两个应用程序之间的参数有可能发生变化
控制性测试 验证数据交换时有足够的审计追踪能力 关键数据或者有价值的数据 从负面来看程序,是否确保了会出错的条件都被保护了。 系统测试的一部分
并行测试 新版本和老版本同时运行,用以确保新版本的程序运行正确。 需要对两个系统输入相同的数据来运行 运行新旧两个工资支付系统 不确定新系统的的运行情况

测试工具

阶段 测试工具 备注
需求 检查表、实况调查与验证、流程图、需求模型、错误推测、风险列表、打分表、走查(讲解开发思路)、......
设计 因果图、检查表、实况调查与验证、正确性数据、评审、错误推测、执行规范、流程图、设计模型、风险列表、打分表、测试用例、走查(讲解开发思路)、......
编码 边界值分析、因果图、检查表、实况调查与验证、编译分析、基础复杂度、控制流分析、覆盖测试对照表、数据流分析、错误推测、流程图、映射图、代码互查、完成特征、测试用例、跟踪、走查(讲解开发思路)、......
测试 确认测试标准、边界值分析、检查表、实况调查与验证、基础复杂度、控制流分析、覆盖测试对照表、数据字典、功能性测试、灾难性测试、错误推测、全面测试、测试仪器、并行模拟、代码互查、系统日志、测试用例的产生及执行、程序及工具、容量测试、......
安装 确认测试标准、检查表、实况调查与验证、错误推测、全面测试、测试仪器、并行操作、代码互查、系统日志、程序及工具、......
维护 检查表、代码比较、实况调查与验证、灾难性测试、错误推测、测试仪器、综合测试工具、代码互查、系统控制审计评审、系统日志、测试用例的产生及执行、跟踪、程序及工具、......

UT - IT - ST

测试过程 单元测试(UT) 接口测试(IT) 系统测试(ST)
定义 是对软件基本组成单元(软件设计的最小单位)进行正确性检测,如函数或一个类的方法。 通常所说的接口联调,是单元测试的逻辑扩展。在单元测试的基础上,将所有模块按照HLD要求组装成为子系统或系统,验证模块间的接口是否正确的。 将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
测试依据 源程序本身,包括代码和注释;详细设计(LLD,Low Level Design) 单元测试的模块;概要设计(HLD,High Level Design) 软件需求规格说明(SRS,Software Requirement Specification)
测试目的 与LLD是否符合 与HLD是否符合 与SRS是否符合
测试方法 属于白盒测试范畴 属于灰盒测试范畴 属于黑盒测试范畴
考察范围 主要测试单元内部的数据结构、逻辑控制、异常处理等 主要测试模块之间的接口和接口数据传递关系,以及模块组合后的整体功能 主要测试整个系统相对于需求的符合度
评估基准 逻辑覆盖率 接口覆盖率 测试用例对需求规格的覆盖率
评估基准的方法 TDD,测试驱动开发 每个接口被覆盖的程度;每个接口的等价类、边界值被覆盖的程度 等价类两两组合;边界值分析;业务流程法;状态迁移法;错误猜测法;输出域覆盖
被测对象 一个或一组函数 子系统、模块间接口 完整的软件系统及系统交互的软硬件平台
测试时机 编码之后,代码已经通过编译之后 在单元测试之后 集成测试之后
测试人员 开发人员或白盒测试工程师 函数间/模块内集成是开发人员;模块间集成是白盒测试员;子系统间集成是黑盒测试员; 黑盒测试工程师
测试通过标准 单元测试用例的执行率为100%,通过率为95%;语句的覆盖率达100%;分支的覆盖率达85% 各个单元模块结合到一起能够协同配合,正常运行;测试用例的执行率为100%,通过率为95% 系统功能、性能等满足需求规格说明书中的要求;测试用例的执行率为100%,通过率为95%
测试策略 控制流测试、数据流测试、排错测试、分域测试等 大爆炸、自顶向下测试、自底向上测试、三明治 功能测试、性能测试、随机测试等

Testing - 软件测试知识梳理 - 测试方法的更多相关文章

  1. Testing - 软件测试知识梳理 - 测试分类

    参考信息 软件测试分类 经典软件测试技术分类 软件测试方法汇总 简洁分类 对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 该测试类别注重于测试软件的功能 ...

  2. Testing - 软件测试知识梳理 - 相关词汇

    测试策略 描述测试工程的总体方法和目标:根据测试需求,描述在什么测试阶,依据什么测试要素和目标,进行什么种类的测试,使用什么样的测试方法和工具. 测试策略的制定主要包含如下内容: 确定测试过程要使用的 ...

  3. Testing - 软件测试知识梳理 - 探索性测试

    定义 探索性测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习,测试设计,测试执行和测试结果评估等活动,以持续优化测试工作. 其特征有:即兴发挥,快速 ...

  4. Testing - 软件测试知识梳理 - 理解测试

    理解 目的 测试就是要找到关键信息,有关项目和产品的关键决策都是根据这些信息做出. 对产品质量做出总体评估. 找出并报告团队所有可能会对产品价值产生消极影响的问题(但并不意味着能发现所有问题). 重心 ...

  5. Testing - 软件测试知识梳理 - 测试阶段

    估算 测试对软件工作量的估算的准确性 测试评估软件系统的状况的准确性 关注点: 不准确的估算 不适当的开发过程 不真实的状态报告 如何知道对工作量的估算是正确的 估算工作量的工具很容易出错 对软件工作 ...

  6. Testing - 软件测试知识梳理 - 测试用例

    测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...

  7. Testing - 软件测试知识梳理 - 测试模型

    珠玉在前,不再赘言. 软件测试模型 软件测试模型汇总

  8. Testing - 软件测试知识梳理 - 软件性能测试

    软件性能测试的基本概念 软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是软件在完成该功能时展示出来的及时性. 软件性能的指标 响应时间:是指系统对请求作出响应的时间,并且 ...

  9. Testing - 软件测试知识梳理 - 测试流程

    测试存在于各个阶段: 需求测试--->单元测试--->集成测试--->系统测试--->性能测试--->用户测试--->回归测试 需求测试 完整性&正确性 一 ...

随机推荐

  1. Mark,20180127,技术博客之路开启!

    不怎么会说话,自己本身少说话的撸码loner,少说多做.毕业从事手游一年多,之前主要从事Cocos2dx,刚转投Unity不到一个月,后面主要总结下自己在这两方面开发过程中的一些历程,希望自己能有所积 ...

  2. input只允许输入正整数

    onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=t ...

  3. linux下的音量控制器alsamixer 桌面v7

    转载 http://blog.sina.com.cn/s/blog_0ca103850102vpml.html 耳机 插后边 line out 耳机插前边 模拟耳机 声卡自带工具 linux下的音量控 ...

  4. stark组件开发之列表页面自定义函数扩展

    对于展示页面, 可能需要显示一些. 数据库中,没有的字段. 比如, 删除按钮, 编辑按钮.  这个数据库,是没有的. 所以,可能就需要, 添加一个这个东西.  比如我在渲染的时候, 给他添加两个函数进 ...

  5. 利用redis制作消息队列

    redis在游戏服务器中的使用初探(一) 环境搭建redis在游戏服务器中的使用初探(二) 客户端开源库选择redis在游戏服务器中的使用初探(三) 信息存储redis在游戏服务器中的使用初探(四) ...

  6. 主机性能监控之wmi 获取进程信息

    标 题: 主机性能监控之wmi 获取进程信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990499.html 欢迎转帖 请保持文本完整并注明出处 仅 ...

  7. rpc和http

    rpc,远程过程调用,分布式各服务在不同的节点,因为不在同一进程中,所以节点间的调用需要通过网络进行传输,rpc是基于tcp/ip的,通过长连接进行通信.客户端需要缓存服务端的ip和端口,服务端也要缓 ...

  8. python+selenium—webdriver入门(二)

    本文中主要介绍webdriver常见的对象定位方法: 一.对象定位的目的 二.常见的对象定位方法 一.对象定位的目的: 1.操作对象 2.获得对象的属性,如:对象的class属性.name属性等 3. ...

  9. [MACHINE LEARNING] Can we predict voting outcomes?

    1. CART Tree library(rpart)library(rpart.plot)CTree = rpart(Party ~ . -USER_ID, data = train, method ...

  10. java29

    1.封装小练习--长方形 创建长方形类 使用getset方法 利用返回值方法计算长方形的面积,周长. 保证长方形的长宽为整数 2.继承小练习--猫狗 当父类中有构造器时,子类也要有构造器,并且要求设置 ...