160519 如何做自动化测试?

时间:2020-12-30 05:56:01

怎么做自动化,手工测试人员从事自动化测试的要领和经验有哪些?

 

自动化测试人员发展的三个阶段

初级阶段:仅会使用自动化测试工具,不能称之为自动化人员,只能称为脚本小子script kiddie;

中级阶段:能独立写一些脚本,并开发一些工具;

高级阶段:通过编写脚本完全解决实际工作中的问题。

 

要做到自动化测试,需要很强的编程能力,这也是目前测试人员所欠缺的,精通一门语言,随心所遇的写一些测试脚本,从纯手工到不借助外力写脚本在北京这个地方可以涨薪2~5k不等。目前90%以上测试人员不具备开发能力只能纯手工,编程能提高核心竞争力。

 

自动化测试分三个层级:

最底层单元测试,中间层接口测试,最上层UI测试。

160519 如何做自动化测试?

这三个层级形成一个倒三角,是为了表示不同阶段所投入自动化测试的比例:

最底层是单元测试,最宽最厚,获得收益为70%

中间层是接口测试,收益一般为 20%

最上层是UI层,收益是10%

 

对于以上三个层级而言,自动化测试成本是怎样的?

单元测试基于类和方法,代码量少,测试时定位问题快,执行非常快,分析解决问题方便,适合大规模回归。

接口对整体功能进行封装,对外提供服务,不仅单纯基于几个类和方法,封装了更多功能。接口一旦对外提供服务,更改、变更比较少,增加、删除较多,适合自动化。尤其在大公司,接口层变化不大。

自动化适合不发生变化的地方,变化意味着脚本修改。测试脚本的稳定性决定了自动化测试的维护成本。

最后一层,UI层(用户界面)最容易发生变化,给自动化测试带来很大的麻烦,所以做得好的很少。

 

考虑下自己可以做哪一层?

最底层可定义为白盒测试,会增加一些黑盒设计角度,大部分基于代码的实现逻辑测试,由开发人员完成

中间层,接口测试适合自动化

市面上关注UI自动化测试,但工具多难度大。普遍认为界面测试有意义,因为最终呈现给用户的是UI层。而UI层自动化测试不容易, 变化大,脚本维护困难,要求有相对好的测试框架。

大公司中从事接口测试、服务器端测试较多。服务器端可以理解为一种接口,但和接口只测试输入和输出不同,更关注服务器算法实现的细节、分支,称为灰盒比较合适,是自动化很好的一个方向。

 

功能测试转自动化你需要做什么?

首先要有很强的编程能力,其次是对技术、测试开发架构理解,还需要积累很多知识(算法、架构、编程、数据库、Linux、操作系统)

~~~先学好编程 1W代码,再说其他的~~~

 

UI自动化测试框架之Selenium原理及特点:

1.   关键字驱动测试是数据驱动测试的一种改进类型

2.    主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)

3.   将测试逻辑按照这些关键字进行分解,形成数据文件。

4.    用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化

selenium 2.0 = selenium 1.0 + WebDriver

《Selenium WebDriver实战宝典》一书的框架核心思想:

1、分布式:测试用例多时,如何并发执行

2、行为驱动开发框架(BDD- (Behavior-Driven Development)):Qconber把测试用例映射到测试方法,通常用于敏捷测试中

3、关键字驱动:比较强大;三要素,什么操作、操作谁、操作值是什么,

由非测试人员定义操作步骤,适合测试开发人员提供框架给不懂写脚本的人使用

4、数据驱动框架:测试程序不变,数据变化,适合小功能点测试

5、混合型框架:*,既支持数据驱动,又支持关键字驱动