大话测试数据(三)

本篇是大话测试的第三篇,如果你对测试数据感兴趣,又是第一次看到这篇,请先翻看大话测试数据一  和大话测试数据二

获取细化的测试数据

举个栗子:

接着第二篇的一个小例子“电子对账单”来说吧。

细化的数据就是我们要从逻辑角度识别它的内容规约。所谓内容,就是数据的是什么?所谓规约就是数据必须符合什么样的规定。我们先来看看信用卡账单长什么样子:

从业务上,它可以分为两部分:行用卡账户信息,和交易明细。账户信息部分如下面截图。

我们可以说,信用卡账户信息的内容有下面几项:卡号,本期应还,本期最低还,还款到期日,清算货币,信用额这些项。每一个数据项有它的规约,在这里,我们叫做业务规约。

 

抽取数据的过程:

上边的例子貌似很简单:但是我的问题来了,我这是举了一个现成的栗子,真实情况下呢?如何弄清内容有多少,还有每一项内容的业务规约是什么?

我得说,看你运气了。如果运气好,你可以从需求说明书中拿到完整的规约。但测试人员好像都不是那么运气好的人,我们会遇到各种不靠谱的需求。这时候要弄清规约,你可以做的事情有:

1.需求评审,把干系方叫来,一项一项的过。

2.从需求以外的文档搜寻出一些信息,再评审确认。

3.从原有系统中获取。这里的获取方式有:直接在原有系统上尝试,原有系统用户访谈,阅读原有系统文档,阅读原有系统源码。

4.从公司规范、行业规范、国标、国际标准组织规范中获取信息,如,信用卡号的标注,你可以从数个国际标准委员会,支付联盟(如MasterCard,VISA)得到明确的编码协议,咱们的银联也有编码协议。又如身份证号码就会符合国标 GB 11643-1999 各种大型系统中,这些规范协议文档相当重要,因为涉及到系统集成,大家要遵循相同的标准。

5.惯用规范,如日期,时间,地名,职业等一些通用叫法,当然这些也会有标准委员会去界定。

6.不断的迭代验证上面的信息源,但每一段时间都应该文档化文档化并在合适的时候做专家评审,干系人评审。上周我就收获了一个反向案例:我们做了上述5条,并开始了准备测试数据,但是开发的接口改了(少加了一个数据项),导致我的小伙伴修改了大几百份测试数据,这个变更发生在3天之内,第3个工作日我的小伙伴才发现,幸好发现的早。这也说明了迭代的重要性。

7.能够推动在需求的早期关注数据项及其规约,后续的测试将会省却不少麻烦。《实例化需求》是一种非常好的实践方法,大力推荐你反复阅读这本书。

8.测试数据需求的挖掘同测试需求的挖掘,同需求的挖掘其实可以是一件事情《实例化需求》这本书中也有讲这些方法。

 

一个难点:

下面说一下测试人员感觉比较困难的地方,这也是我经常被问的一些问题,我试着给出一些答案,欢迎大家来讨论。

1.数据项、类型特别多,乱成一团,我怎么去归类这些数据呢?

参考答案:

  • 考虑数据对应的现实世界中的事物,如信用卡电子账单,现实中不是有的银行会记纸质账单么?一张账单里的内容从业务角度上会归到一类。就算现实世界中没有的东西,你以前的经验也会从一定程度上自动帮你做规整。比如你玩网游,你选的角色身上的一堆装备就可以归类,有武器,有防具,有药品等等。
  • 先画一下业务流,使用UML工具里的用例图,或者时序图把业务流程大致画出来,看看交互的实体有哪些。然后可以根据实体对数据进行归类,这算是一种比较行之有效的方法。如果业务流都画不清,说明设计、需求有问题,数据也不可能清晰。什么?这活儿谁做?不错,搞清这些主要应该是产品、需求、设计人员的工作。但我的建议是我的建议是:如果有可能,协作!
  • 其它建模工具也可以,BPMN,数据流图,甚至思维导图,乱乱的草图都会有帮助,逐步细化,总能够分得开。
  • 这里是从业务角度来看数据,先不要太考虑技术层面的一些附加数据,如序列号,索引,数据库外键,时间戳等这些东西。那些信息在制造测试数据的时候(后续会讲)再考虑。

 

我做完上述工作的产出是什么

  • 测试人员对被测物更深层次的了解,梳理测试数据的过程其实是一个学习被测物的非常好的过程。
  • 干系人对于规约的一致认识,高质量的需求文档。(强烈建议整合到需求中,这样所有干系人才能有一份统一的规约)
  • 一些有利于测试工作开展的辅助文档

 

posted @ 2014-09-13 20:58  skytraveler  阅读(890)  评论(1编辑  收藏  举报