基于测试数据覆盖率的测试数据准备的手法示例(采用正交分析法 就可以满足)

2、生成测试数据的流程分析步骤主要为:

  1)按照等价区分法,将表切分成不同的集合(也就是表设计是的子表),这里最重要的是确定数据集的切分是的最大业务概念分类。

  如本例中的往来单位信息表,应该首先按照顾客/收货人/供应商/运输商切分成4等分数据集。

  以顾客为例,下一个的重要信息就是顾客状态了,失效顾客一般来说就是判断其是否生效,提示出错即完成,因此其他数据对测试用例来说是没有任何意义的,只要准备一条数据即可。

  然后根据项目最大候选输入数,以及相互项目的可能的排列组合,进行数据的细分设计。

  2)作为第2步来说,只用一条数据进行测试是危险的,因此需要准备多条的测试数据。

  3)作为第3步,适当的准备Null/“”/Full-Width等的边界值、特殊值测试数据即可。

  作为总体的数据量,大概20多条顾客数据就可以保证整个系统测试的测试用例使用。

 基于我们假设的测试数据的覆盖率层次,我们可以按照下述图形示例进行测试数据的准备:

  步骤1:通过等价区间法来减少数据复杂度

  主要是要按照数据的大、中、小层次进行分类,减少数据准备的复杂度。

  步骤2:通过识别项目相互间的影响要素提供数据覆盖率

  由于很能做到穷举测试,因此需要使用直交法等手法取得测试质量和投入成本间的平衡。

  步骤3:准备测试数据覆盖率=C1层的测试数

  步骤4:结合边界值法准备多件测试数据

  由于各种类型的测试数据只准备一件在测试上是危险的,因此需要对各种类型的测试数据准备多条测试数据。

  步骤5:对数据下工夫,提高测试数据到数据覆盖率C2层

  对准备的多条数据,可以在数据上下工夫,把空值、Null、最大值、最小值、数据位数等等的边界值和特殊值条件嵌入在数条的测试数据中,在尽可能少的测试数据下提供尽可高覆盖率的测试数据组合。

  步骤6:在各个测试中,有必要时按需添加部分数据

  根据上面提出的测试数据准备步骤,让我们用一个具体的示例来演示测试数据准备的技巧。

  基本思路是按照排列组合、边界值、特殊值的多少,考虑测试数据覆盖率进行测试数据准备。

  1、按照最大可选择的项目候选值进行数据设计的示意图如下:

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-02 03:01:22

基于测试数据覆盖率的测试数据准备的手法示例(采用正交分析法 就可以满足)的相关文章

谁有基于用户的推荐系统或者协同过滤的算法和代码分析啊

问题描述 求个大数据的大神给个基于用户的推荐系统或者协同过滤的算法和代码分析啊我有部分代码但是不知道怎么在Eclipse上实现求解答啊1.publicclassAggregateAndRecommendReducerextendsReducer<VarLongWritable,VectorWritable,VarLongWritable,RecommendedItemsWritable>{...publicviodreduce(VarLongWritablekey,Iterable<Ve

baidu-微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)遇到问题

问题描述 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)遇到问题 微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)采用doget添加代码以下一些步奏就不懂了,请各位大神指教,谢谢!http://blog.csdn.net/bingtianxuelong/article/details/17843111采用这一篇教程的

请问如何把面向对象的程序思想和《基于C++学生社团管理系统》结合起来,请试分析下

问题描述 请问如何把面向对象的程序思想和<基于C++学生社团管理系统>结合起来,请试分析下 请问如何把面向对象的程序思想和<基于C++学生社团管理系统>结合起来,请试分析下 解决方案 以你的水平,结合起来比较困难,你能做的,无非就是胡乱定义几个类,把面向对象的语法用上,也就算结合了.

基于mysql事务、视图、存储过程、触发器的应用分析_Mysql

一 ,mysql事务 MYSQL中只有INNODB类型的数据表才能支持事务处理. 启动事务有两种方法 (1) 用begin,rollback,commit来实现 复制代码 代码如下: begin 开始一个事务rollback   事务回滚commit    事务确认 (2)直接用set来改变mysql的自动提交模式 复制代码 代码如下: set autocommit=0 禁止自动提交set autocommit=1 开启自动提交 demo 复制代码 代码如下: header("Content-t

obj-c编程15[Cocoa实例04]:基于Core Data的多文档程序示例[未完待续]

    上一个例子我们使用的模式数据实际上是基于一个Person数组,现在我们看一下如何使用Cocoa中的Core Data框架支持,几乎不用写一行代码,完成模式数据的建立.     我们这里模式的元素使用的是Car,其属性直接在Xcode中设置: 可以看到Car类型含有6中不同属性.接下来删除窗口中的文本控件,添加Array Controller控件,并将其Managed Object Context与File's Owner的managedObjectContext绑定.如下图: 将控制器的

求助:谁有基于Java Bouncy Castle的PGP加密解密示例

问题描述 谁有基于JavaBouncyCastle的PGP加密解密示例 解决方案 解决方案二:有没有人用过,在线等解决方案三:这里没高手哇解决方案四: 解决方案五:打不开呀...解决方案六:回家打开了,看来公司的网络给屏蔽了,多谢,我试试

jQuery基于toggle实现click触发DIV的显示与隐藏问题分析_jquery

本文实例讲述了jQuery基于toggle实现click触发DIV的显示与隐藏.分享给大家供大家参考,具体如下: 研究了一下toggle之click触发DIV的显示与隐藏,现在把代码发上来. HTML代码: <input type="button" id="btn" title="Click me 你会看到效果" value="点击此处" /> <div id="content" styl

javascript基于原型链的继承及call和apply函数用法分析_javascript技巧

本文实例讲述了javascript基于原型链的继承及call和apply函数用法.分享给大家供大家参考,具体如下: 1. 继承是面向对象编程语言的一个重要特性,比如Java中,通过extend可以实现多继承,但是JavaScript中的继承方式跟JAVA中有很大的区别,JS中通过原型链的方式实现继承. (1)对象的原型:因为JS中,函数也是对象,因此我们先从对象出发.什么是对象的原型,原型的定义为: 所有通过对象直接量创建的对象都具有同一个函数原型,并且可以通过Object.prototype获

基于jQuery的select下拉框选择触发事件实例分析_jquery

本文实例讲述了基于jQuery的select下拉框选择触发事件实现方法.分享给大家供大家参考,具体如下: 我一直以来都认为,select 下拉框选择对选项 options 使用 onclick 注册事件即可,如下: <select> <option value="0" onclick="func(0)">选项一</option> <option value="1" onclick="func(1