谈自动化测试

先写总结

  • 自动化测试能够将测试用例固化为代码,方便回归测试;

  • 开展自动化测试前,先分析测试项目在开发的哪个阶段,是否适合做自动化测试,适合做哪类自动化测试;

  • 不要盲目以UI自动化测试为入口企图打开自动化测试大门,UI自动化适合前端稳定的产品,否则维护成本高;

  • 接口测试能够在早期介入开发流程,并且维护成本低于UI自动化测试;另外接口自动化测试有机会输入前端限制外的参数,能够发现更多问题;

  • 自动化测试应当在测试理论扎实的基础上进行,与手工测试相比只是实现方式不同,终归要有测试的完整过程,不要只进行“自动化”而不测试;

  • 自动化测试不在于学习多少工具,而在于如何将测试用例代码化,切勿陷入学习各种工具的怪圈,否则大多数情况下遇到的问题都是因为工具不会用、环境没配置对,除了浪费时间就是浪费时间;

  • 自动化测试必须会写代码,不想学代码的请勿尝试,合格的自动化测试工程师不会使用框框去限定自己的输入与业务逻辑!


正文

谈到自动化测试,有很多朋友对自动化测试不够理解,或是存在误解,导致工作方向不对,或是操作流程不够规范,导致陷入死胡同,不知道如何去做好,甚至不知道如何开展自动化测试。

功能测试过程

自动化测试实际上测的也是功能,只是将功能测试从手工转化为代码执行,因此自动化测试必须遵从功能测试的操作过程。

功能测试的基本工作包括:

  1. 分析功能点,创建测试用例;

  2. 执行测试用例;

  3. 输出测试结果/报告。

测试用例应当至少包括:

  • 测试场景

  • 前置条件

  • 执行步骤

  • 预期结果

  • 实际结果

自动化测试

这里所说的自动化测试仅包括两个方面,一个是UI自动化测试,一个是接口自动化测试。二者都是对产品功能上的测试,也非白盒测试。

更有意义的自动化测试在于单元测试,但是单元测试一般需要有开发人员的配合,因此此处不谈。

手工测试即大部分人所说的“点点点”、“功能测试”,而自动化测试则是将这部分工作用代码实现的过程。

那么文章开头提到的误区在哪儿呢?

一是测试对象的选择

这里所说的测试对象,是指测试页面上直观的功能(UI),还是测试请求上的数据交互(接口)。

见到很多朋友,在尝试做自动化测试的时候,完全不对产品分析,直接选择了UI自动化测试,原因是网上大部分自动化测试所提到的,都是selenium/appium等使用。

首先要明白,测试是为产品服务,产品的特性决定了测试执行的方向。 UI测试并不适用于大部分未稳定的产品!

试想,当你所测试的产品正在研发初始阶段,页面仍在摸索阶段,可能今天一个页面是这些元素,明天这些元素名通用都改了名,或者干脆页面删掉重做了。那你作为测试该怎么办,前端开发时候能否顾及到通知测试,而测试是要让开发为你把修改了的元素、功能重写,还是你要付出重写一个新页面的测试脚本的精力?

相比之下,接口测试需要的维护成本是较低的。如果接口需要改动,通常是一些传值或响应内容的改动,在代码中只需要进行部分修改即可,而对UI测试时往往需要更多步骤。

但是接口测试也不是万能的,例如一个后端稳定,问题大部分出自前端的时候,做好页面测试是更有必要的。

通常来说,先做好对后端的测试(接口测试),再对前端测试(UI)是比较好的选择,但是一定要做更符合自己产品的测试。当后端稳定时,前端也会相对稳定,可以继续开展对前端的测试了,此时的维护成本就比过早介入UI自动化测试的成本来得低。

第二个误区是测试过程不够完善

有很大一部分刚开始做自动化测试的朋友都将“自动化测试”做成了“自动执行点击操作”。有什么区别呢?参照功能测试过程一节,测试不仅仅是执行过程,还包括结果判定,报告输出等等环节。很多人在做UI自动化测试时候,只考虑如何实现某个拟人过程,实现之后就认为这个功能点写完了,然后继续写下一个功能点。在执行过程需要人盯着,看看执行时候是否出错,试问这是“自动化”吗?

自动化测试一定要有断言,并且输出测试结果/报告,才能解放“人眼”,让测试脚本自己运行,运行完成后告诉你结果,并且能够让你快速准确地定位到问题所在。

不够完善还体现在测试用例设计上。测试用例是基本,否则手工测试都做不好谈何“自动化”?

有心的话,看懂开发代码,特别是判定条件,保证对每一个条件的覆盖,才能发现更多问题。测试用例设计得好,即使不开展自动化测试也能发现很多问题。自动化测试可以作为协助手段,帮助覆盖一些在前端无法或难实现的一些用例(例如一些条件需要遍历,用代码很容易实现,而手工可能需要操作很久)。

总结

自动化测试与手工测试相比有两个好处:

  • 将测试用例固化成代码,方便回归

  • 能够执行人工不易覆盖的测试用例

说到底,自动化测试是用于提升测试效率,并不是用于标榜自动化测试比手工测试优秀。如果你的自动化测试用例覆盖率低,说实话,如何编写测试用例更适合你学习,而非“如何完成某个点击操作”,“如何为某个输入框赋值”。

当你解决了“测试对象的选择”(怎么做自动化测试)和“测试过程不够完善”(怎么做好自动化测试)这两个问题,自动化测试的优势才能提现出来。

更重要的是要因地制宜,针对不同的测试产品采用不同的测试方法,用努力提高效率的心态去分析测试对象,选择测试工具,才能保证你在测试工作中的付出与收获能成正比。

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