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

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

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

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

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

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

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

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

时间: 2024-11-05 18:37:07

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

探索Java语言与JVM中的Lambda表达式

Lambda表达式是自Java SE 5引入泛型以来最重大的Java语言新特性,本文是2012年度最后一期Java Magazine中的一篇文章,它介绍了Lamdba的设计初衷,应用场景与基本语法.(2013.01.02最后更新) Lambda表达式,这个名字由该项目的专家组选定,描述了一种新的函数式编程结构,这个即将出现在Java SE 8中的新特性正被大家急切地等待着.有时你也会听到人们使用诸如闭包,函数直接量,匿名函数,及SAM(Single Abstract Method)这样的术语.其

实习感悟——从用户中来,到用户中去

一.念叨,念叨 从上个星期到今天已经是实习的第一个星期了感觉像在学校过了半年一样.学校的时间一天一天过,而公司的时间是一分一分的过.加班那是经常的事情项目要上线,项目要给客户演示,任务说一个星期完成就得一个星期完成,不像学习做系统一样这个月做不完和老师说说又可以拖一周,而是说什么时候完成就什么时候完成.还有就是新的东西要快速上手不能拖拖拉拉不然任务完不成客户看不了就要被客户骂.上个星期不仅要做项目每天还要学习时间管理就非常重要不然每天过完了也没时间学习.还有加班那是必经之路昨天还和向阳师哥一起加

在MyEclipse的web项目/java项目中,使用Hibernate-tools中的hbm2java和hbm2ddl工具,根据hbm文件自动生成pojo和数据库脚本

     首先,我一定要吐槽下,这个Ant管理部署项目的工具,以及hibernate刚刚学习,导入我这一个简单的问题整了一天多,实在效率有点低下.在这两天中,①了解了Ant,知道了在Ant中很灵活的步骤项目的情况,知道了build.xml文件的一些基本写法.②还学习了在MyEclipse这样的集成工具中完成项目部署.③以及在这两种情况中,利用hibernateTools中的hbm2java和hbm2ddl工具,根据对象关系映射文件,自动生成POJO以及SQL文件(就是数据表). 一,在web项目

在MyEclipse的web项目/java项目中,使用Hibernate-tools中的hbm2java和hbm2ddl工具,依据hbm文件自己主动生成pojo和数据库脚本

     首先.我一定要吐槽下,这个Ant管理部署项目的工具.以及hibernate刚刚学习,导入我这一个简单的问题整了一天多.实在效率有点低下. 在这两天中,①了解了Ant.知道了在Ant中非常灵活的步骤项目的情况,知道了build.xml文件的一些基本写法.②还学习了在MyEclipse这种集成工具中完毕项目部署. ③以及在这两种情况中.利用hibernateTools中的hbm2java和hbm2ddl工具,依据对象关系映射文件,自己主动生成POJO以及SQL文件(就是数据表). 一,在w

ActionScript3.0教你在影片剪辑中访问主场景中的变量

在ActionScript2.0中,影片剪辑访问主场景中的变量非常的简单,仅仅需要用一个带有_root的绝对路径即可. 然而在ActionScript3.0影片剪辑中访问主场景中的变量却没有那么容易,使用root将会报错.下面为大家介绍一种非常简单的方法来访问主场景中的变量. 方法如下: 1.在MC(影片剪辑实例名称)里定义一个变量father:Object; 2.在主场景代码中进行赋值 MC.father = this; 3.在影片剪辑里访问的时候就直接 father.变量名 就行.

java程序练习:数组中随机10个数中的最大值

//定义输入:其实是一个可以保存10个整数的数组 //使用循环遍历,生成10个随机数,放入每个元素中//打桩,数组中的内容 //定义输出变量 //将数组中第一个元素取出,保存在max中,当靶子 //遍历数组,从第二个元素[1]开始,都和max比较 //如果任何元素超过max,就取而代之//输出max

jauery加入项目中,但是在页面中显示没有找到这个文件--springMVC框架

遇到一件很不爽的事情,自己明明已经把jquery的文件放在了项目中,但是在页面中总是看不到效果,开发者模式提示没有找到文件,当时都要郁闷疯了,后来无意间看到了Eclipse中报的错,怎么与Spring的配置文件相关,就去看看,看到<mvc:resource="/css/**" />这个配置,是css的配置,然后就照毛画虎的写了个js的标签,然后就可以了.我前台写的是basepath/script/jqurey.mini.js String path = request.ge

java中子类与父类中隐含的this引用的分析

/* 看一下下面的程序,看是否你的答案和运行的答案是否一致! */ class Parent{ public int x; public Parent p; public Parent(){} public Parent(int x){ this.x=x; p=this; } public void f(){ System.out.println("Parent::f()"); } public void g(){ System.out.println("Parent::g(

内存数据库中列转行的应用,h2中列转行,hsqldb中列转行

其实列转行是比较简单的用sum和decode函数就可以了,但是我遇到的项目,不知道数据谁设计的居然字段里面还设计成long类型,此long类型与java中的不同,oracle中的long是指可变长二进制数据,最长2G,哎没办法只好转换了. 以下是hsqldb的转换,用到了转换函数convert,可以将long类型的转换为double类型,其中d.value是long类型,status是int类型,所以value需要转换 SELECT P.NAME,P.ID, SUM(DECODE(D.K_NAM