在探索中感悟,在摸索中前进--ET之快递法

飞测说:最近很多朋友问如果没有需求文档,我该怎么测试?我自然想起了探索测试,今天来说说自己在探索测试路上的一点点感悟-------快递测试法,让我们在探索中感悟,在摸索中前进……
快递测试法,是从ET学习中了解到的一种测试方法,顾名思义就是数据类似于那些通过联邦快递系统,在这个星球上被不断移动的包裹一样,在软件中也是不断的流动。数据从被输入后就开始了它的生命周期,先被存储在内部变量和数据结构中,然后再计算中被频繁操作、修改和使用,最后,这个数据作为输出被“递送”给用户或目的地。
在这个测试法中,测试人员必须关注于数据。应该确认那些被存储起来的输入数据并“跟随”它们走遍软件。例如,在购物网站输入一个地址后,它会显示在哪里?哪些特性会用到该地址?如果它被用于账单地址,要确保该特性被测试到了。如果它被用作发货地址,也要确保测试中使用了相应的特性。如果允许更新地址,那就应该修改它的值。该地址是否会被打印出来,是否在内部数据中被删除过,或者需要进一步处理?试着找到每个和数据有接触的软件特性,就像联邦快递处理他们的包裹一样,测试人员也应该参与数据声明周期的每个阶段。
这虽然是一种测试方法,我们的测试不会仅局限与这一种方法,但是我自己感觉在实际中,我们很多时候借助于这种思想,我们的测试会更简单,拿 SCM工具(主要是从需求提交,到开发、测试环境的自动部署、版本管理、发布,客户更新等一些列流程半自动完成的工具,可以理解为持续交付工具)来说说我是怎么做的,我们了解该工具的整体业务如下:
1、输入初始话的数据
2、点击“开始初始化”会先做一些校验,如果不通过,则会弹出提示(我们可以记录下有那些校验,这样方便后面针对每一种校验来验证)
3、校验通过后,会首先到数据库的Task表中插入一条记录(我们可以了解生成记录的规则,然后细化成测试点)
4、记录插入成功后,分发服务会将该记录作为任务分发给Web服务、测试DB服务、开发DB服务 和TFS服务,并且在日志中记录分发的情况(我们可以考虑分发成功,或不成功的情况,是否做日志检查也可以考虑)
5、然后各个服务接到任务后,先在日志中做一个接受成功的记录,然后根据要求开始初始化(我们可以罗列出各个服务初始化的一个清单,作为检查点,比如TFS端先到给定的路径去获取源代码,然后解压后TFS中创建项目和分支,然后给项目赋予权限,添加人员,最后做相关设置,完成后在日志中有记录,并返回一个状态到数据库中)
6、各服务初始化完成后,会返回一个状态到数据库中,并更新数据库记录(我们可以考了是否能成功返回,返回更改那个字段)
7、web界面上可以查看到结果,当然中途初始化中也是可以查看结果的;
按照上面的快递思想,我们能很快获取大部分重要的测试点,也可以分析出一些设计的遗漏或者不合理的地方,并将这些分析的测试点记录下来 ,做成checklist或者写成脑图,都是不错的选择,虽然说ET没有强调测试用例,但是我们能够结合ET的思想,有一份测试cheklist的指引,将是不错的选择,这让我以前一直想根据开发实现的流程图来设计用例,应该是一个道理,我想这种测试应该就是所谓的灰盒测试吧;
好了,本次到此,更多分享下期再会,给你带来更多价值,是我们期待的方向,有更多兴趣的欢迎切磋,加入我们微信订阅号,联系方式如下:

在探索中感悟,在摸索中前进--ET之快递法的更多相关文章
- 排坑·IPhone&IOS中不兼容正则中的断言匹配
阅文时长 | 1.14分钟 字数统计 | 1834.4字符 主要内容 | 1.问题切入 2.什么是断言匹配 3.断言匹配的替换方案 4.声明与参考资料 『排坑·IPhone&IOS中不兼容正则 ...
- Firebug中调试中的js脚本中中文内容显示为乱码
Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...
- JavaScript中让Html页面中循环播放文字
JavaScript中让Html页面中循环播放文字 <html> <head> <meta http-equiv="Content-Type" con ...
- PHP中如何在数组中随机抽取n个数据的值 - array_rand()?
PHP中如何在数组中随机抽取n个数据的值? 最佳答案 array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用.它接受 input 作为输入数组和一个可选的参数 num_req,指明 ...
- 在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案
在eclipse的maven插件中搜寻本地仓库中的jar搜索不到的解决方案 之前,用过maven管理项目的童鞋都知道本地会有一个${User_Home}.m2/repository仓库 是用来存放ja ...
- .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】
1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...
- (原创)VM中的CentOS6.4中安装CloudStack6.3②
接着VM中的CentOS6.4中安装CloudStack6.3①中文章接着,往下面安装 4.更新 yum 仓库 默认情况下,CentOS的软件源中没有收录最新版本CloudStack,为了能顺利安装, ...
- SQL中 将同一个表中的A列更新到B列,B列更新到A列
有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列. 其实这个不是问题,直接写更新语句即可,可以参考下面动画演示: SQL source code: CREATE ...
- 解析sql语句中left_join、inner_join中的on与where的区别
以下是对在sql语句中left_join.inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下 table a(id, type):id type ---- ...
随机推荐
- Neutron分析(1)——简介
Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能.Neutron的功能日益强大,并在Horizon面板中已经 集成该模块.作为Neutron的核心开发者之一,个人觉得Ne ...
- LVS包转发模型和调度算法(转)
LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台 ...
- quotas and disk replace on netapp
==================================================================================================== ...
- VirtualBox 下USB 设备加载的步骤及无法加载的解决办法
1. 将u盘插入电脑,在windows能够识别后,进入VirtualBox的选定要加载的虚拟机,选择设置——>选择usb设备项 2. 选择右边的第一或者是第二个图标,增加一个新的筛选器,第一个图 ...
- PHP解码unicode编码中文字符代码示例
在抓取某网站数据,结果在数据包中发现了一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......", 这其实是中文被unicode编码后了的数据,想 ...
- c++随机数生成
算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535, ...
- 我的Android最佳实践之—— 常用的Intent.Action(转)
1.从google搜索内容 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putEx ...
- Akka(二) - Future
1. future的所有方法都是非阻塞立即返回的 (1)future都要有TimeOut和ExecutionContextExecutor这2个隐士参数 (2)打印future object Hell ...
- [hibernate]基本值类型映射之日期类型
hibernate基本值类型映射中日期类型支持date,time,timestamp这三个选项,其中 date:对应数据库中的date类型,表示只显示日期 time:对应数据库中的time类型,表示只 ...
- OAF_EO系列4 - Create详解和实现(案例)
2014-06-02 Created By BaoXinjian