高级测试にんじゃ修炼之道

依然被《火影忍者》迷的无法自拔,它带给我不少人生感悟,因此再一次用忍者的成长之路来说说从一名初级手工Tester到高级自动化Tester的修炼之道(我将其称之为高级测试にんじゃ)。

在《火影忍者》中,出色的忍者都必须经过忍者学校 >> 下忍 >> 中忍 >> 上忍的成长过程,按部就班,扎扎实实地修炼忍术。同样,Tester从初级到高级,要经过4个Level的里程:

Level 0:纯手工测试;

Level 1:能够编写初级自动化测试脚本;

Level 2:掌握引入Page Object的中级自动化框架;

Level 3:掌握引入BDD的高级自动化框架。

Level 0:纯手工测试

Level 0:忍者学校,所有忍者们修行最的基础部分环节,通过在忍者学校基础学习后,忍者们就会被分到不同小组去和自己的老师修行,接受适于自己的不同等级的任务。

高级测试にんじゃ修炼之道

随着敏捷开发的日益盛行,大量重复的纯手工测试逐渐被自动化替代,这必然对测试工作者提出了更高的要求,因而手工测试成了Tester技术栈中最基本的技能。

那么,纯手工测试者是如何工作的呢?我们以登录页面作为测试对象来进行分析。

高级测试にんじゃ修炼之道

识别页面元素:

1. Title:EVERNOTE
2. Input text field:Username / Password
3. Show Password checkbox
4. Sign In button

执行动作:

1. 输入 username / Password
2. 点击 Show Password check box
3. 点击 Sign In button

期待结果:

EVERNOTE成功登入

手工测试模型:

根据以上分析,我们可以建立一个手工测试模型(该模型适用于Web,Android / iOS 等所有基于UI的测试):

高级测试にんじゃ修炼之道

可见,在手工测试中,最关键的部分是“”。

Level 1:能够编写初级自动化测试脚本

Level 1:下忍,等级最低,任务最轻,也常随众作战,或参与其他忍者所执行的任务,不过不能单独完成某一项任务,需有人配合,通常执行C级和D级任务。代表人物:小鸣人、木叶三人组。

高级测试にんじゃ修炼之道对于Tester来说,Level 1的标准,就是要能够编写初级自动化脚本

  

我们来继续分析上述手工测试模型。无论是什么平台,来识别页面元素,执行操作的引擎只有人。那么所谓自动化,通俗的讲就是要把人所做的工作交给程序或工具来做。

  

应针对不同平台,选取适当的工具和语言,例如,基于Web UI,我们可以采用Selenium。对于APP,我们可以将一些常用的自动化工具做一个对比。

高级测试にんじゃ修炼之道

Appium作为移动端的自动化框架,可用于测试原生应用(android或ios的sdk编写的应用),移动网页应用和混合型应用。更重要的是,Appium因其支持跨平台,可以针对不同的平台用一套api来编写测试脚本,而备受大家青睐。

高级测试にんじゃ修炼之道

初级自动化测试模型:

我们选择采用Appium来代替人做为APP引擎,用来识别页面元素,执行操作。我们在手工测试模型中加入Appium自动化框架

高级测试にんじゃ修炼之道

高级测试にんじゃ修炼之道

识别页面元素FindElement):

    - id
    - name
    - xpath
    - class name
    … …

执行动作:

find_element(:name, Cancel").click
button().click
textfield().send_keys()
… …

编写初级自动化脚本:

高级测试にんじゃ修炼之道

我猜想,大部分人在选择Tester的职业生涯时,是很大一部分原因是不喜欢写代码。这就造成了,在转型自动化测试时,代码能力有限,编码效率较差,写出来的自动化脚本不易维护。

Level 2:掌握引入Page Object的中级自动化框架

Level 2:中忍,忍者中较为普遍的等级,一般接受B级、C级任务。代表人物:伊鲁卡、日向雏田、山中井野、天天、洛克李等。优秀的中忍同样拥有更多高级技能,比如洛克李,擅长木叶旋风、影舞叶、八门遁甲、表莲花、醉拳等。

高级测试にんじゃ修炼之道

Tester的level 2: 掌握引入Page Object的自动化框架。

折磨一名程序员,只需要多改几次需求。而打到一名初级自动化Tester,只需要多改几次UI。UI的易变使得自动化变得的脆弱且不易维护。Page Object就是要将UI元素从Test cases中抽离,将最易变的部分放到底层,这样,可读性更高,代码更易维护,同时亦可减少代码冗余。

高级测试にんじゃ修炼之道

  

Login Page Object如下:

高级测试にんじゃ修炼之道

测试脚本则变得异常清晰简单:

高级测试にんじゃ修炼之道

引入Page Object模式的自动化测试,Dev在开发UI界面时,更新Page Object中的页面元素定位器,之前的测试脚本就可以不再变化。

中级自动化测试模型:

此时,我们自初级自动化测试模型中引入Page Object新引擎:

高级测试にんじゃ修炼之道

  

Level 3:掌握引入BDD的高级自动化框架

Level 3: 上忍,精英忍者。是一个忍者村的骨干力量,他们能在阵前发挥快速的体术,幻术,以及大气为之震动、鲜血为之战栗的高等忍术。除了领导能力外,还要求在忍术及分析力等各方面均有特出表现。除此之外,上忍们还培育能够继承自己的技术和意志的下忍。上忍常处理S级及A级任务。代表人物:拷贝忍者旗木卡卡西,医疗忍者春野樱、天才忍者日向宁次,天才军师奈良鹿丸,苍蓝猛兽迈特凯、蛤蟆仙人自来也等、第五代目火影千手纲手。

高级测试にんじゃ修炼之道

Tester的level 3: 掌握引入BDD的自动化框架。

 

BDD: Behavior Driven Development, 行为驱动开发,是一种敏捷软件开发技术,它鼓励软件项目中的Dev、QA和BA等非技术人员或商业参与者之间的协作。

高级测试にんじゃ修炼之道

这里推荐BDD(行为驱动开发)工具Cucumber (更多关于Cucumber的内容,请参照七姑娘日记 “Cucumber笔记”)。

高级测试にんじゃ修炼之道

 

引入Cucumber - Feature scenarios:

高级测试にんじゃ修炼之道

Cucumber步骤定义 - Step definitions:

高级测试にんじゃ修炼之道

Page Object:

高级测试にんじゃ修炼之道

高级自动化测试模型:

最后,完善出高级自动化测试框架。

高级测试にんじゃ修炼之道

高级测试にんじゃ的修炼之道,你学会了吗? 

相关文章: