文档章节

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

糖糖豆豆
 糖糖豆豆
发布于 2014/04/30 09:58
字数 2083
阅读 82
收藏 1

                     
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对接案例思考

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

姜汁啤酒
06/29
0
0
STP协议详解

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

裸男子
2017/11/13
0
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
0
LACP和STP

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

Mr_Lee_1986
01/04
0
0
SOA走向开源打破私有软件封闭门槛

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

红薯
2009/06/24
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

关于Jackson默认丢失Bigdecimal精度问题分析

问题描述 最近在使用一个内部的RPC框架时,发现如果使用Object类型,实际类型为BigDecimal的时候,作为传输对象的时候,会出现丢失精度的问题;比如在序列化前为金额1.00,反序列化之后为1.0...

ksfzhaohui
20分钟前
0
0
vue less安装

$ npm install less less-loader --save 安装成功后修改文件:build>webpack.base.conf.js 在model.rules添加对象: { test: /\.less$/, loader: "style-loader!css-loader!less-loade......

shawnDream
25分钟前
0
0
kolla-ansible部署容器ceph

kolla是从openstack孵化出的一个项目,kolla项目可以制作镜像包括openstack、ceph等容器镜像, ansible是自动化部署工具,执行playbook中的任务。 kolla-ansible是容器部署工具,部署opensta...

zrz11
30分钟前
0
0
【三 异步HTTP编程】 1. 处理异步results

异步results 事实上整个Play框架都是异步的。Play非阻塞地处理每个request请求。 默认的配置适配的正是异步的controller。因此开发者应该尽力避免在在controller中阻塞,如在controller方法中...

Landas
32分钟前
0
0
Android Studio 3.1.4 buildApk遇到问题 Connection reset

打开设置,找到Android Studio选项卡,把下图选项打上勾就ok

lanyu96
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部