飞测说:最近很多朋友问如果没有需求文档,我该怎么测试?我自然想起了探索测试,今天来说说自己在探索测试路上的一点点感悟-------快递测试法,让我们在探索中感悟,在摸索中前进……

快递测试法,是从ET学习中了解到的一种测试方法,顾名思义就是数据类似于那些通过联邦快递系统,在这个星球上被不断移动的包裹一样,在软件中也是不断的流动。数据从被输入后就开始了它的生命周期,先被存储在内部变量和数据结构中,然后再计算中被频繁操作、修改和使用,最后,这个数据作为输出被“递送”给用户或目的地。

在这个测试法中,测试人员必须关注于数据。应该确认那些被存储起来的输入数据并“跟随”它们走遍软件。例如,在购物网站输入一个地址后,它会显示在哪里?哪些特性会用到该地址?如果它被用于账单地址,要确保该特性被测试到了。如果它被用作发货地址,也要确保测试中使用了相应的特性。如果允许更新地址,那就应该修改它的值。该地址是否会被打印出来,是否在内部数据中被删除过,或者需要进一步处理?试着找到每个和数据有接触的软件特性,就像联邦快递处理他们的包裹一样,测试人员也应该参与数据声明周期的每个阶段。

这虽然是一种测试方法,我们的测试不会仅局限与这一种方法,但是我自己感觉在实际中,我们很多时候借助于这种思想,我们的测试会更简单,拿 SCM工具(主要是从需求提交,到开发、测试环境的自动部署、版本管理、发布,客户更新等一些列流程半自动完成的工具,可以理解为持续交付工具)来说说我是怎么做的,我们了解该工具的整体业务如下:
1、输入初始话的数据
2、点击“开始初始化”会先做一些校验,如果不通过,则会弹出提示(我们可以记录下有那些校验,这样方便后面针对每一种校验来验证)
3、校验通过后,会首先到数据库的Task表中插入一条记录(我们可以了解生成记录的规则,然后细化成测试点)
4、记录插入成功后,分发服务会将该记录作为任务分发给Web服务、测试DB服务、开发DB服务 和TFS服务,并且在日志中记录分发的情况(我们可以考虑分发成功,或不成功的情况,是否做日志检查也可以考虑)
5、然后各个服务接到任务后,先在日志中做一个接受成功的记录,然后根据要求开始初始化(我们可以罗列出各个服务初始化的一个清单,作为检查点,比如TFS端先到给定的路径去获取源代码,然后解压后TFS中创建项目和分支,然后给项目赋予权限,添加人员,最后做相关设置,完成后在日志中有记录,并返回一个状态到数据库中)
6、各服务初始化完成后,会返回一个状态到数据库中,并更新数据库记录(我们可以考了是否能成功返回,返回更改那个字段)

7、web界面上可以查看到结果,当然中途初始化中也是可以查看结果的;

按照上面的快递思想,我们能很快获取大部分重要的测试点,也可以分析出一些设计的遗漏或者不合理的地方,并将这些分析的测试点记录下来 ,做成checklist或者写成脑图,都是不错的选择,虽然说ET没有强调测试用例,但是我们能够结合ET的思想,有一份测试cheklist的指引,将是不错的选择,这让我以前一直想根据开发实现的流程图来设计用例,应该是一个道理,我想这种测试应该就是所谓的灰盒测试吧;

好了,本次到此,更多分享下期再会,给你带来更多价值,是我们期待的方向,有更多兴趣的欢迎切磋,加入我们微信订阅号,联系方式如下:

在探索中感悟,在摸索中前进--ET之快递法的更多相关文章

  1. 排坑·IPhone&IOS中不兼容正则中的断言匹配

    阅文时长 | 1.14分钟 字数统计 | 1834.4字符 主要内容 | 1.问题切入 2.什么是断言匹配 3.断言匹配的替换方案 4.声明与参考资料 『排坑·IPhone&IOS中不兼容正则 ...

  2. Firebug中调试中的js脚本中中文内容显示为乱码

    Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...

  3. JavaScript中让Html页面中循环播放文字

    JavaScript中让Html页面中循环播放文字 <html> <head> <meta http-equiv="Content-Type" con ...

  4. PHP中如何在数组中随机抽取n个数据的值 - array_rand()?

    PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明 ...

  5. 在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案

    在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案 之前,用过maven管理项目的童鞋都知道本地会有一个${User_Home}.m2/repository仓库 是用来存放ja ...

  6. .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】

    1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...

  7. (原创)VM中的CentOS6.4中安装CloudStack6.3②

    接着VM中的CentOS6.4中安装CloudStack6.3①中文章接着,往下面安装 4.更新 yum 仓库 默认情况下,CentOS的软件源中没有收录最新版本CloudStack,为了能顺利安装, ...

  8. SQL中 将同一个表中的A列更新到B列,B列更新到A列

    有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列. 其实这个不是问题,直接写更新语句即可,可以参考下面动画演示: SQL source code: CREATE ...

  9. 解析sql语句中left_join、inner_join中的on与where的区别

    以下是对在sql语句中left_join.inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下 table a(id, type):id     type ---- ...

随机推荐

  1. 【jmeter】测试报告优化<一>

    具体问题如下: 1.Date report这里的时间没有正确显示出来 2.Summary里的字段Min Time和Max Time显示的是NaN,没有显示正确的时间. 本文主要解决上述两个问题,具体报 ...

  2. php 自带函数

    memory_get_usage()://查看当前内存使用情况单位 bytes str_repeat("liuhui", 2);//字符串重复指定次数,liuhui重复2次

  3. flash读取XML节点内容以及节点属性

    原文地址:http://hi.baidu.com/yqzdm/item/f95fd9d24679d916d90e44c9 一.xml的写法: 这里的xml只是在有限范围内的了解,限于写一些简单的用于f ...

  4. activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建

    项目中需要整合activiti-modeler自定义流程,找了很多资料后,终于成功的跳转到activiti-modeler流程设计界面,以下是记录: 一.整合基础:eclipse4.4.1.tomca ...

  5. SQL Server 2012 批量重建索引

    关于索引的概念可以看看宋大牛的博客 T-SQL查询高级—SQL Server索引中的碎片和填充因子 整个数据库的索引很多,索引碎片多了,不可能一个个的去重建,都是重复性的工作,所以索性写了个存储过程, ...

  6. 黄聪:PHP5.6+7代码性能加速-开启Zend OPcache-优化CPU

    说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的).对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法 ...

  7. (XAML)"XXXX" does not exist in the namespace "clr-

    Error 139 Assembly 'System.Activities.Core.Presentation' was not found. Verify that you are not miss ...

  8. GL_GL系列 - 日记账处理管理分析(案例)

    2014-07-07 Created By BaoXinjian

  9. python 判断内网IP方法及实例应用

    一.初衷: 一般在CMDB里会存储一台服务器的内网IP.管理IP.电信IP.联通IP,我们在使用的时候只需要拿到其中一个外网IP地址即可.那么我们就需要判断内网IP.管理IP并剔除掉,获取第一个外网I ...

  10. Redirect 原理

    mvc .net 中,从服务器端跳转页面有很多方法 有些不会改变浏览器地址栏的地址,这个好理解,mvc本身的机制就是action的名字不一定是view的名字 我们请求的不是文件名,在action中我们 ...