软件测试的起点和源泉——七种测试驱动模式(方法论)

(朱少民版权所有 ?2014:任何引用和转发请注明真实来源)

在进行软件测试时,总要有一个出发点吧?从哪里开始分析?测试设计是基于什么?简单地说,什么驱动测试工作?这是一个基本问题,基于自己多年对软件工程、产品质量和测试等的理解,总结出七类测试驱动模式(按推荐程度高低来排序):朱少民版权所有?2014

1)      业务/需求驱动测试;

2)      产品质量风险驱动测试;

3)      模型驱动测试;

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

5)      设计驱动测试;

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

7)      统计/经验驱动测试

朱少民 版权所有 ?2014

1. 业务/需求驱动测试:比较容易理解,一个软件总是要解决用户的某类业务问题。业务驱动测试就是从用户的实际业务需求出发,分析业务目标、业务流程、用户角色、业务规则、业务数据、业务发展等测试对象,针对这些对象确定测试范围、测试方法和策略。测试是否充分,也是从业务流程和数据来衡量。软件系统能否充分满足业务需求,是业务/需求驱动测试最关切的问题,基于需求的验证方法、基于用户场景的测试方法,可以归为这类测试。

朱少民 版权所有 ?2014

2. 产品质量风险驱动测试:根据产品质量模型:内部质量-->外部质量
--> 使用质量来进行测试,强调全生命周期消除产品质量风险,从代码评审、代码复杂度度量等工作开始,对内部质量进行评估以暴露质量风险,然后逐步扩展到系统外部质量、用户使用质量的评估,持续揭示、反馈产品质量主要风险。在这类测试中,对产品质量的属性分析会比较透彻,也强调静态测试,包括人工代码评审和设计评审、使用代码静态分析或检查工具。

朱少民 版权所有 ?2014

3. 模型驱动测试针对现实问题进行抽象构建验证模型,如UML建模、有限状态机、Petri网、Kripke结构等,系统属性可用时序逻辑公式(如CTL,LTL)来描述。更广泛的理解,决策表、因果图、Pair-wise等也属于测试建模。大规模的复杂应用系统的测试建模会受到很大挑战,随着软件技术和建模技术的发展和融合,这些问题会逐步得到解决。但基于模型能自动生成测试用例和自动化脚本,能够更彻底地完成测试的自动化过程,而之前人们多数自动化测试局限于测试的执行,需要开发和维护大量的测试脚本,手工比重不小,最多算半自动化。

朱少民 版权所有 ?2014

4.(系统)功能驱动测试:许多人一谈到软件测试,就是功能测试、性能测试,这或多或少体现了“功能测试驱动”思想。功能驱动测试,就是从系统功能特性出发,根据软件功能规格设计说明书(可能没有),针对每个功能进行验证,确定功能运行是否正常,是否和设计保持一致。一般会将功能进行分解,分为子功能、子功能的子功能,形成功能点列表,针对功能点进行测试用例设计和执行。

朱少民 版权所有 ?2014

5.设计驱动测试(DDT):DDT受TDD启发,为测试事先进行分析与设计,测试是被设计驱动的。DDT具有下列这些特性:测试更灵活、更简单,消除重复工作,测试用例指导测试计划(和传统测试相反),测试用例可转换成测试代码,包含业务需求测试和场景测试、控制器测试,测试对开发和测试团队都很有用。关于设计驱动测试,已有专题论述的著作:设计驱动测试——让程序员更轻松地进行测试http://product.dangdang.com/23407007.html

朱少民 版权所有 ?2014

6.(程序/代码)结构驱动测试:基本类似于:结构化测试、白盒测试。从程序结构来驱动测试,进行程序结构分析,逐步覆盖程序的各个部分及其关联关系,如基于组件测试、基于接口测试或基于API进行测试;从代码结构进行测试,包括代码行覆盖、分支覆盖、基本路径覆盖等。结构驱动测试的充分性度量会更客观性,特别是基于代码覆盖率分析,目前有大量工具支持。

朱少民 版权所有 ?2014

7.统计/经验驱动测试可以看作“经验软件工程”的组成部分,认可实际度量数据和经验比各种理论模型更有价值。通过软件测试过程中数据和经验的收集,进行统计分析、归纳整理,生成经验模型来开展测试。上下文驱动测试、探索式测试、缺陷预防、错误猜测法等可归为这类,虽然不是很严谨,但都基本是从统计/经验来驱动测试。

朱少民 版权所有 ?2014:任何引用和转发请注明真实来源

时间: 2024-12-22 14:15:06

软件测试的起点和源泉——七种测试驱动模式(方法论)的相关文章

<转>七种测试驱动模式(方法论)

本文转载自微信公众号:中国软件测试联盟 在进行软件测试时,我们都需要一个出发点,从哪里开始分析?测试设计是基于什么?简单说,就是什么驱动测试工作的进行? 基于对软件工程.产品质量和测试的理解,归纳出以下七类测试驱动模式. 1.业务/需求驱动测试 一个软件总是要解决用户的某类业务问题.业务驱动测试就是从用户的实际业务需求出发,分析业务目标.业务流程.用户角色.业务规则.业务发展等测试对象, 针对这些对象确定测试范围.测试方法和策略.测试是否充分,也是从业务流程和数据来衡量:软件系统能否充分满足业务

七种网卡绑定模式详解

概览: 目前网卡绑定mode共有七种(0~6)bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种: mode=0:平衡负载模式,有自动备援,但需要"Switch"支援及设定. mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援. mode=6:平衡负载模式,有自动备援,不必"Switch"支援及设定. 说明: 需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里optionsbond0 miimon

Linux中bond的七种网卡绑定模式详解

概览: 目前网卡绑定mode共有七种(0~6)bond0.bond1.bond2.bond3.bond4.bond5.bond6 常用的有三种: mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定. mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援. mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定. 说明: 需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里optionsbond0 miimon=100 mode=0是不够的

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

现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多.而一般企业都会使用linux操作系统下自带的网卡绑定模式,当然现在网卡产商也会出一些针对windows操作系统网卡管理软件来做网卡绑定(windows操作系统没有网卡绑定功能 需要第三方支持).进入正题,linux有七种网卡绑定模式:0. round robin,1.active-backup,2.load balancing (xor), 3.fault-tolerance (broadcast),

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

测试驱动开发模式,要求开发在写业务代码的时候,先写出测试代码,同时单元测试例子决定了如何来写产品的代码,并且不断的成功的执行编写的所有的单元测试例子,不断的完善单元测试例子进而完善产品代码, 这样随着功能的开发完成,测试代码也会对应的完成, 很显然,这是一个全新的开发模式, 在一定程度上,可以完全的提高软件的质量,以及开发可以对自己写的代码进行一个全面的评估和测试. TDD 模式是一个很大的概念,在这里, 我重点介绍下测试驱动模式与自动化的融合以及精简自动化的测试代码.下面我们来看一个登录的案例

软件测试的16种测试类型

软件测试的16种测试类型 软件测试主要从以下16种类型进行测试: 一:功能测试(10个方面) 菜单.工具栏.快捷键.下拉框.按钮.单选按钮.复选按钮.切换.链接.触发键 二:界面测试 登陆界面.总界面.输入界面(增.删.改.查).处理界面.输出界面.报表界面.提示界面 三:容错测试 数据长度.数据类型.非法此操作 四:接口测试 接口测试也叫业务流程测试(包括功能模块之间.模块与模块之间.子系统之间) 内部接口:例如:导入.导出(通俗的讲是接口就是调用) 外部接口: 五:性能测试(TPS吞吐量.响

菜鸟要做架构师(三)——单元测试的七种境界

软件开发离不开测试,而与开发人员关系最密切的当属单元测试了.别看单元测试只是整个软件测试学科的一部分,但是他里面的学问也不少,今天就跟大家分享一下,单元测试的七种境界. 1,以各种借口拒绝单元测试Unit Test,比较常用的是“你没有足够的时间(进行单元测试)”. 无论是对单元测试的老手还是新手编写单元测试还是有一定得工作量的,而且单元测试也需要掌握大量的测试框架和工具(光一个junit或testng你很难工作地很happy).所以在这个阶段开发人员往往会觉得单元测试很难写.很费时,自然而然会

模板化的七种排序算法,适用于T* vector<T>以及list<T>

最近在写一些数据结构以及算法相关的代码,比如常用排序算法以及具有启发能力的智能算法.为了能够让写下的代码下次还能够被复用,直接将代码编写成类模板成员函数的方式,之所以没有将这种方式改成更方便的函数模板纯属于偷懒,更方便于测试代码的有效性,等代码写完也懒得去改了.下面开始介绍这段代码,有什么不对的地方欢迎前来指正. 一共写了七种排序,插入排序InsertSort.堆排序HeapSort.快速排序QuickSort.合并排序MergeSort,计数排序CountingSort,基数排序RadixSo

JS_七种JAVASCRIPT加密/解密方法

本文一共介绍了七种JAVASCRIPT加密方法. 一:最简单的加密解密 二:转义字符的妙用 三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码) 四:任意添加NUL空字符(十六进制00H) (自创) 五:无用内容混乱以及换行空格TAB大法 六:自写解密函数法 七:错误的利用 在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西