【落叶320】《测试路上你问我答》(97)数据驱动和关键字驱动有什么区别?

文/秋之川

【目录】

这是《落叶》文集里第 320 片落叶,希望你能喜欢,不为别的,只为这份坚持。

【背景】

在学习 Python 开发接口自动化工具的时候,有同学问过数据驱动和关键字驱动的区别,当时因为这个不属于课程本身的范畴,所以并未详细解答,今天正好放假,拿出来回答一下。

【你问】

数据驱动和关键字驱动有什么区别?

【我答】

数据驱动和关键字驱动都是面向自动化脚本设计而言的,就我的理解,它们的区别并不是两个平行事物的优劣区分,而是自动化脚本设计模式的一种演变,关键字驱动是数据驱动设计模式或思想的升级迭代。

为了更好地了解两者,我们就从最初级的脚本设计模式开始看起吧。

  1. 录制脚本,也可叫线性脚本,顾名思义,这种脚本设计模式就是通过某种自动化测试工具的录制功能,将一组测试用例按照手工执行的顺序,从头到尾一口气录制完成,执行测试时也就是将录制好的脚本回放一下。
    优势:想了半天,不知道适合初学者接触自动化测试脚本算不算一个优势,其它的还真想不到了。
    劣势:
    (1)跟实际录制时操作和数据的耦合性太强,回放时的成功率不高;
    (2)功能模块相对稳定时,才能录制完整的脚本;
    (3)当功能发生改变时,需要重新录制脚本,直接修改难度较大,所以脚本维护成本非常高;
  2. 程序化脚本,也叫结构化脚本,指的就是像写代码一样去设计和编写自动化测试脚本,它具有各种逻辑结构,包括循环、判断、函数方法调用、重用等等。
    优势:
    (1)能实现复杂功能模块的自动化测试场景;
    (2)因为能够重用和函数调用,所以维护起来,成本较低;
    劣势:
    (1)对测试人员的技术要求较高,需要具备编程基础,需要学习自动化脚本开发;
    (2)从开发效率角度,所需时间也比较长;
  3. 数据驱动脚本,将程序化脚本里的测试数据从脚本中剥离出来,存储在独立于脚本之外的数据文件(XML,Excel等)或数据库里,使脚本中的操作指令和数据分离。
    上面是我之前认知和理解的“什么是数据驱动脚本”,现在通过学习,又了解到一种新的关于数据驱动脚本的观点。
    这种观点认为,数据驱动,就意味着数据决定了结果,自动化工具读取设计好的数据,运行脚本,通过设定好的参数读入不同的测试数据,验证数据,再跟设计好的期望测试结果做比对。
    优势:
    (1)操作指令和数据分离,一方面可以降低成本,另一方面也可灵活适应多套测试数据的执行;
    (2)脚本编写可以与功能开发并行,提高效率;
    (3)测试输入数据、验证数据和期望结果的彼此独立,也降低了测试人员维护测试用例的成本;
    劣势:
    (1)对测试人员的技术要求依然较高,仍然很难将测试工程师和自动化工具开发工程师完全分离开来;
    (2)当业务功能发生改变时,维护脚本的工作量依然不小;
  4. 关键字驱动脚本,是基于数据驱动脚本设计模式的一种进化,它其实是采用了面向对象的开发模式,将所有被测的东西都看作一个个对象,并建立一个对象关系表,通常习称之为 Object Map,再将跟每个对象相关的一组操作指令封装成一个关键字(Keyword),这种脚本从表面上看跟手工执行的脚本没有太大区别,就是针对某个对象,执行某个动作,再查看实际的结果和期望结果的比对结果。
    优势:
    (1)大大降低了测试人员编写脚本的门槛,只要是熟悉业务功能手工测试用例编写的测试人员,都可以很轻松的编写关键字驱动脚本,而且可以做到盲写,也就是测试先行;
    (2)自动化测试开发人员可以专注于维护 Keyword 的封装和执行效率的优化;
    (3)当某个业务操作逻辑需要改动时,只需要修改相应的 Keyword 即可,维护成本大大降低;
    劣势:
    (1)如果自动化测试开发人员没有提供一个相对智能化一点的 IDE,那编写脚本的测试人员,需要不断查看 Object Map、关键字关系表;
    (2)测试脚本编写人员和关键字封装的测试开发人员,经常会因为某个 Keyword 的封装颗粒度产生争议,因为从测试开发人员的角度,封装颗粒度越小越便于维护,因为耦合性较低,而测试脚本编写人员一般希望封装颗粒度越大越好,那样会降低脚本的行数,也就是脚本量;

《测试路上你问我答》里的 Q&A 97,如果是你要的,甚好!如果不是,你问,我答!

作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵

【目录】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容