文档章节

标准STP中的集成数据验证策略

糖糖豆豆
 糖糖豆豆
发布于 2014/04/30 09:58
字数 2083
阅读 79
收藏 1
点赞 0
评论 0

                     
Ruth Rose是一名数据验证专家。她擅长预测模型领域的数据质量和数据分析。她曾在耶路撒冷的希伯来大学学过数学,并在各种创业公司和微软以色列研发中心工作过。目前,她在PayPal/eBay风险部担任分析验证主管。


  在一个数据不断增长的世界,软件测试涉及不同的数据验证程序,这些程序是传统质量保证方法的一个组成部分。本文旨在为非数据人员提供数据验证工具,同时也为回归测试和功能测试提供更多自动且迅速的工具和测试策略。
   本文中,我将详细介绍数据验证的两种方法:自下而上法和自上而下法。这两种方法在不同的应用程序和测试策略中已实现的数据中所起的作用是不一样的。
   自下而上方法中,应用程序是代理器,而数据是反应器。我们通常使用此方法对新功能进行功能测试或把它与自上而下结合方法以覆盖大量代码。 
   另一方面自上而下法中,数据只在画面里,我们根据外部知识判断关于数据模式内关系的猜想是真还是假。 
   后一种方法使我们能够设计出成本低但功能强大的回归测试集以及根本原因分析法。

  介绍
   数据无所不在。它已不再是某些较高等级的应用程序的附带品,而被视为是有价值的、脆弱的。在信息论中,数据是信息抽象化即知识的最低水平。这意味着我们要有一个专家把行业知识原则又称产品需求和产品规格转化为一个一致的数据模式。
   这实际上解决了这一行中一直以来的一个困境:产品经理和产品架构师对产品规格的见解不一。 
   事实上,数据的既定逻辑结构及评估它的明确结果可以把一个MRD / PRD转化成一个比以往更容易的测试计划。 
   但是,数据质量保证技术通常很昂贵且需要分析、BI工具和专业知识。 
   本文不看数据验证本身,而是建议用一个简单的、可重复的、不怎么需要资源和外部或技术支持的、且基于数据验证的测试策略去替代标准质量保证程序。 
   让我们考虑考虑一个在线购物市场的简单案例研究:实现B2C交易并对测试这样一个应用程序的设计和选项进行检查。

  自下而上的数据验证法
   直接设计包括应用程序和DB。
   此方法中,我们有一个传统的STP ,当自动使用简单的宏命令时,可用作一个自定义的和高度有效的低成本测试工具。 
   为简单起见,我们假设在我们的例子中,基本的 测试用例是:



  需要注意的是,我们还没有对这个流程进行任何验证。
   我们不会把这个简单直接的流程扩展为一个完整的测试过程:“生成用户> 0 $交易”。
   这个程序将使用简单的Web宏命令调整发送给应用程序的涵盖购物车、用户资料等所有可能方案的需求。验证在最后进行以防止断裂或使用昂贵的基础设施。 
   这个例子演示了数据流的另一个强大的优点。数据是事件流的结果。这意味着:例如,如果用户还没有注册账户(根据这个具体的例子),那我们就不指望在DB中找到交易。这可以被用于负面测试以扩大代码覆盖。 
   回到我们的例子中,另一个过程可能是“用户退款”(在这里,例如,我们想用负数金额重复(a))等等。 验证应该在最后用任一电子表格(Excel,Zoho)或是像MySQL Workbench的免费SQL工具通过点击完成。从这个意义上来说Excel非常方便,它不需要专业知识,并具有不受规范限制的比较工具。关于这个我将在下一节做简要探讨。

  总结一下这种方法:
   1. 做小测试用例。
   2. 把它们一起放入10 TC过程。 
   3. 把过程一起放入一个测试集。 
   4. 最后进行验证。

  自上而下的数据验证法
   这种方法与我们所知道的经典的STP设计完全不同。它对功能测试和根本原因分析都有用。它可以被视作是我们所知道的黑盒测试,并在两个重要概念上不同于以往的设计:
   1. 数据只在图像中。因此,我们通常会把这个用作测试周期的第二层,用于bug和问题的根本原因分析。 
   2. 如果先前的方法里我们试图把测试计划打破成一个个小流程,那么在这里,我们依靠产品规格、领域知识和很多常识,创造性地创建系统的不同用例之间的依赖关系。例如,对比之前的设计中的退款模块,让我们回忆一下我们的交易模块,。 
   在那种设计中,我们不得不考虑一个交易,一个我们不得不事先用我们应用于退款和验证的宏命令建立的交易。 
   现在的方法中,我们将使用电子表格/ SQL来获取DB中的所有退款行,将它们连到它们的父事务,并根据产品规格(金额,原因等)验证不同的数据字段。这种方法是很强大的,往往能揭示产品需求和架构中的问题。 
   对于负面测试,我们有一个稳赢策略。例如,发现一笔交易里用户没有注册网站(例如,用户的电子邮件未被记录)。根本原因分析中,我们能够直接从DB生成一个执行流–即什么导致失败,并使用简单的排序、筛选和条件格式作为Excel不受规范限制的分析工具去评估他们的IF-AND-OR-NOT依赖关系。 
   这种方法对于使用Excel数据验证功能来执行简单的验证(如无前/后间隔,减少/增加/恰好n位场/十进制值溢出,日期范围限制等)的简单现场验证来说也是很经典的。

  自动化与回归
   正如前面提到的,数据验证对自动化而言很容易。
   对于迅速回归,我们会选择第二种方法,即根据一个预定义的基线验证DB数据。 
   例如对于我们的购物网站,我们将有一组预定义的会产生一个数据集的一系列操作。 
   我们可以输出DB到电子表格或上传基线到MySQL并点击/查询以便比较两个表格。 
   Excel的VLOOKUP在带来两个表间的差异上表现出色,SQL通过采用两表间简单的左连接点带来差异。

  总结
   如前所述,数据验证在取代传统的功能测试和根本原因分析中非常有效。可以用简单,低成本的方法通过把它的继承逻辑结构扩展到被明确标示为通过/不通过的功能测试用例来进行数据验证。使用数据验证而非传统功能测试可以通过把产品规格转化为明确清晰的数据架构内的逻辑关系使编译出更好的测试用例更容易。

  版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/2014410134916.html
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

© 著作权归作者所有

共有 人打赏支持
糖糖豆豆
粉丝 6
博文 80
码字总数 116914
作品 0
普陀
思路很重要!不同厂商Spanning-tree对接案例思考

朋友们是否经历过客户网络设备替换割接,如果被替换的设备和新设备不是一个厂商,往往在割接准备过程中会暴露出很多棘手的问题。例如,设备厂商往往有大量的私有协议,从而导致了在不同厂商设...

姜汁啤酒 ⋅ 2017/09/22 ⋅ 0

STP协议详解

一.STP: 在谈本主题之前,先简单的对STP(802.1d)做个回顾.STP是用于打破层2环路的协议,但这个协议有个最明显的缺点,就是当层2网络重新收敛的时候,至少要等待50秒的时间(转发延迟+老化时间).5...

裸男子 ⋅ 2017/11/13 ⋅ 0

了解和配置Backbone Fast在Catalyst 交换机

转载自:http://www.51cto.com/art/200606/27788.htm 前言 在一些 Spanning-Tree Protocol (STP)基本以后快速回顾,您将看见 Backbone Fast适用的确切的故障情景和如何为运行CatcOs和集成 Ci...

crazy_qiao ⋅ 2014/05/08 ⋅ 0

LACP和STP

昨天的延续: 1、华为设备上的 “链路捆绑” - 动态 在华为设备,批量配置端口 ->同时进入 gi0/0/1 , gi0/0/2 , gi0/0/3 端口; 在链路上使用 LACP 协议的时候,基于平台和使用的软件有关系...

Mr_Lee_1986 ⋅ 01/04 ⋅ 0

SOA走向开源打破私有软件封闭门槛

OpenSource,开放源代码,和SOA,Service-OrientedArchITecture,服务导向的架构,是目前最为前沿的IT行业趋 势。IT行业分析公司 Gartner认为SOA将成为创建和交付软件的主导框架,同时预测到...

红薯 ⋅ 2009/06/24 ⋅ 0

浅谈STP——生成树协议

STP(spanning-tree protocol)生成树协议,作用在2层网络/交换网络中,实现链路冗余的同时,防止环路的产生。 那么STP是如何让实现防止环路的产生?可以分为三个大方面来一同完成的; 一.确...

凌许冬 ⋅ 2017/11/16 ⋅ 0

ARP HSRP DHCP OSPF STP 协议

2017年11月15日 星期三 不忘初心 方得始终 阿里云-达内-红帽 ------------------------------------------------------------------------------------------------------------------------......

云之眼 ⋅ 2017/11/16 ⋅ 0

利用PVST+实现网络的负载均衡

PVST+ 1 支持ISL和IEEE802.1Q中继 2 支持cisco专有的stp扩展 3 添加BPDU防护和根防护增强功能 4 允许每一个VLAN有自己的根桥 网络负载均衡 通过某种负载分担技术,将外部发送来的请求均匀分配...

cchenyz ⋅ 05/01 ⋅ 0

“零基础圆梦华为R&S HCNP”视频课程规划

“零基础圆梦华为R&S HCNP”视频课程规划 笔者于2014年1月份,在华为公司独家授权并审核下出版了国内第一本权威的华为交换机图书——《华为交换机学习指南》,得到华为公司,华为公司各合作培...

茶乡浪子 ⋅ 2014/03/24 ⋅ 0

STP技术笔记

>网络的可靠性: 所有网络都会有出现故障的时候,对于故障的排除办法,不同网络环境有不同的要求; 网络业务比较少的小企业,对于网络故障也许可以手动排除,而对于金融等对网络实时性要求很...

coolgyj ⋅ 2014/11/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 35分钟前 ⋅ 0

Spring JavaConfig 注解

JavaConfig注解允许开发者将Bean的定义和配置放在Java类中。它是除使用XML文件定义和配置Bean外的另一种方案。 配置: 如一个Bean如果在XML文件可以这样配置: <bean id="helloBean" class="...

霍淇滨 ⋅ 43分钟前 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 44分钟前 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 49分钟前 ⋅ 0

informix的常用SQL语句

1、创建数据库 eg1. 创建不记录日志的库testdb,参考语句如下: CREATE DATABASE testdb; eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解...

wangxuwei ⋅ 今天 ⋅ 0

matplotlib画图

最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数。 from pylab import *from numpy import *x = linspace(0, 5, 10)y = x ** 2figure()plot(x, y, 'r')...

Dr_hu ⋅ 今天 ⋅ 0

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 今天 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 今天 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部