怎么做自动化,手工测试人员从事自动化测试的要领和经验有哪些?
自动化测试人员发展的三个阶段
初级阶段:仅会使用自动化测试工具,不能称之为自动化人员,只能称为脚本小子script kiddie;
中级阶段:能独立写一些脚本,并开发一些工具;
高级阶段:通过编写脚本完全解决实际工作中的问题。
要做到自动化测试,需要很强的编程能力,这也是目前测试人员所欠缺的,精通一门语言,随心所遇的写一些测试脚本,从纯手工到不借助外力写脚本在北京这个地方可以涨薪2~5k不等。目前90%以上测试人员不具备开发能力只能纯手工,编程能提高核心竞争力。
自动化测试分三个层级:
最底层单元测试,中间层接口测试,最上层UI测试。
这三个层级形成一个倒三角,是为了表示不同阶段所投入自动化测试的比例:
最底层是单元测试,最宽最厚,获得收益为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、混合型框架:*,既支持数据驱动,又支持关键字驱动 |