本文转载自微信公众号:中国软件测试联盟

在进行软件测试时,我们都需要一个出发点,从哪里开始分析?测试设计是基于什么?简单说,就是什么驱动测试工作的进行?

基于对软件工程、产品质量和测试的理解,归纳出以下七类测试驱动模式。

1、业务/需求驱动测试

一个软件总是要解决用户的某类业务问题。业务驱动测试就是从用户的实际业务需求出发,分析业务目标、业务流程、用户角色、业务规则、业务发展等测试对象,

针对这些对象确定测试范围、测试方法和策略。测试是否充分,也是从业务流程和数据来衡量;软件系统能否充分满足业务需求,是业务/需求驱动测试最关切的问题,

基于需求的验证方法、基于用户场景的测试方法,可以归为这类测试。

2、产品质量风险驱动测试

根据产品质量模型:内部质量-->外部质量 --> 使用质量来进行测试,强调全生命周期消除产品质量风险,从代码评审、代码复杂度度量等工作开始,对内部质量进行评估

以暴露质量风险,然后逐步扩展到系统外部质量、用户使用质量的评估,持续揭示、反馈产品质量主要风险。在这类测试中,对产品质量的属性分析会比较透彻,

也强调静态测试,包括人工代码评审和设计评审、使用代码静态分析或检查工具。

3、模型驱动测试

针对现实问题进行抽象构建验证模型,如UML建模、有限状态机、Petri网、Kripke结构等,系统属性可用时序逻辑公式(如CTL,LTL)来描述。

更广泛的理解,决策表、因果图、Pair-wise等也属于测试建模。大规模的复杂应用系统的测试建模会受到很大挑战,随着软件技术和建模技术的发展和融合,这些问题会逐步得到解决。

但基于模型能自动生成测试用例和自动化脚本,能够更彻底地完成测试的自动化过程,而之前人们多数自动化测试局限于测试的执行,

需要开发和维护大量的测试脚本,手工比重不小,最多算半自动化。

4、(系统)功能驱动测试

许多人一谈到软件测试,就是功能测试、性能测试,这或多或少体现了“功能测试驱动”思想。

功能驱动测试,就是从系统功能特性出发,根据软件功能规格设计说明书(可能没有),针对每个功能进行验证,确定功能运行是否正常,是否和设计保持一致。

一般会将功能进行分解,分为子功能、子功能的子功能,形成功能点列表,针对功能点进行测试用例设计和执行。

5、设计驱动测试(DDT)

DDT受TDD启发,为测试事先进行分析与设计,测试是被设计驱动的。DDT具有下列这些特性:测试更灵活、更简单,消除重复工作,测试用例指导测试计划(和传统测试相反),

测试用例可转换成测试代码,包含业务需求测试和场景测试、控制器测试,测试对开发和测试团队都很有用。

关于设计驱动测试,已有专题论述的著作:设计驱动测试——让程序员更轻松地进行测试。

6、(程序/代码)结构驱动测试

基本类似于:结构化测试、白盒测试。从程序结构来驱动测试,进行程序结构分析,逐步覆盖程序的各个部分及其关联关系,如基于组件测试、基于接口测试或基于API进行测试;

从代码结构进行测试,包括代码行覆盖、分支覆盖、基本路径覆盖等。结构驱动测试的充分性度量会更客观性,特别是基于代码覆盖率分析,目前有大量工具支持。

7、统计/经验驱动测试

可以看作“经验软件工程”的组成部分,认可实际度量数据和经验比各种理论模型更有价值。通过软件测试过程中数据和经验的收集,进行统计分析、归纳整理,生成经验模型来开展测试。

上下文驱动测试、探索式测试、缺陷预防、错误猜测法等可归为这类,虽然不是很严谨,但都基本是从统计/经验来驱动测试。

<转>七种测试驱动模式的更多相关文章

  1. Open-Test 测试驱动模式与版本号管理机制

    以测试用例驱动项目开发,coding/case俩条线并走模式.   1.开发人员只负责功能实现:   2.测试人员提供自测用例,研发人员jenkins持续集成项目后自动化执行自测用例,通过后方可转测试 ...

  2. SpringBoot2 集成测试组件,七种测试手段对比

    一.背景描述 在版本开发中,时间段大致的划分为:需求,开发,测试: 需求阶段:理解需求做好接口设计: 开发阶段:完成功能开发和对接: 测试上线:自测,提测,修复,上线: 实际上开发阶段两个核心的工作, ...

  3. (转)深度分析Linux下双网卡绑定七种模式

    现在一般的企业都会 使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在 网卡产商也会出一些针对window ...

  4. 深度分析Linux下双网卡绑定七种模式

    现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在网卡产商也会出一些针对windows操 ...

  5. python+selenium自动化软件测试(第10章):测试驱动TDD

    测试驱动开发模式,要求开发在写业务代码的时候,先写出测试代码,同时单元测试例子决定了如何来写产品的代码,并且不断的成功的执行编写的所有的单元测试例子,不断的完善单元测试例子进而完善产品代码, 这样随着 ...

  6. linux bond配置步骤,七种bond模式说明

    一.网卡绑定: 第一步:创建一个ifcfg-bondX # vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BONDING_OPT ...

  7. 深度分析Linux下双网卡绑定七种模式 多网卡的7种bond模式原理

    http://blog.csdn.net/abc_ii/article/details/9991845多网卡的7种bond模式原理 Linux网卡绑定mode共有七种(~) bond0.bond1.b ...

  8. 七种bond模式说明

    第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略) 特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环 ...

  9. 让 Python 代码更易维护的七种武器——代码风格(pylint、Flake8、Isort、Autopep8、Yapf、Black)测试覆盖率(Coverage)CI(JK)

    让 Python 代码更易维护的七种武器 2018/09/29 · 基础知识 · 武器 原文出处: Jeff Triplett   译文出处:linux中国-Hank Chow    检查你的代码的质 ...

随机推荐

  1. Layui treeGrid

    目前treeGrid的源码不是很完善, 没有开放, 只有社区里面有, 想用的可以看看下面方法: 1.加入treeGrid.js文件 (1)layui 的treeGrid 下载地址:    https: ...

  2. 洛谷P4007 小 Y 和恐怖的奴隶主(期望dp 矩阵乘法)

    题意 题目链接 Sol 首先不难想到一种暴力dp,设\(f[i][a][b][c]\)表示还有\(i\)轮没打,场上有\(a\)个1血,\(b\)个2血,\(c\)个三血 发现状态数只有\(s = 1 ...

  3. Mybatis PageHelper 简单使用

    流程 1,maven 依赖 2,在 mybatis 配置文件启用插件 3,修改 service 层 依赖 <!-- https://mvnrepository.com/artifact/com. ...

  4. loadrunner 场景设计-目标场景设计

    场景设计-目标场景设计 by:授客 QQ:1033553122 A.   概述 Goals Types for Goal-Oriented Scenarios 在以目标为向导的场景中,定义你想实现的测 ...

  5. Flutter 依赖的那些事儿

    Flutter 里面有2种库一样的东西, Package -creating a pure Dart component. like a new Widget. 这种是纯Dart,相当于你自己写的组件 ...

  6. IDEA错误:Failed to start end point associated with ProtocolHandler [http-nio-9999] java.net.BindException: Address already in use: bind

    日志显示进程端口已被占用,首先需要的是查询什么进程占用了当前的9999端口. 1.win+R输入cmd进入命令界面: 2.输入命令  netstat -ano|findstr "端口号&qu ...

  7. Kotlin入门(10)七十二变的输入参数

    上一篇文章介绍了Kotlin对函数的基本用法,包括函数的定义.输入参数的声明.输出参数的声明等等,这些足够对付简单的场合了.当然了,倘若一门新语言仅仅满足于这些雕虫小技,那也实在没什么前途.既然Kot ...

  8. [Android] 设置AlertDialog中按钮的可用(Enable)状态

    弹出一个保存文件的对话框,要控制输入内容限制,同时内容为空时保存按钮不可用. 原文地址请保留http://www.cnblogs.com/rossoneri/p/4140184.html 直接上代码: ...

  9. 洗礼灵魂,修炼python(41)--巩固篇—从游戏《绝地求生-大逃杀》中回顾面向对象编程

    声明:本篇文章仅仅以游戏<绝地求生>作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关. <绝地求生>最近很火,笼络 ...

  10. HTML 5 <input> list 属性

    定义和用法 list 属性引用数据列表,其中包含输入字段的预定义选项. 可以用来做关联搜素