一、软件自动化测试的学习步骤

1.做好手工测试(了解各种测试的知识)

2. 学习编程语言

3.学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者学习Winform

4. 学习自动化测试工具

5. 学习自动化测试框架

6. 实现自动化测试用例

7. 开发自动化测试工具

8. 开发自动化测试框架

自动化测试的最高境界是:  开发测试工具,设计自动化测试框架, 让别人用。

二、自动化测试的本质

自动化测试的本质是:用程序测试程序。 也就是说学习“编程语言”是学习自动化测试的基础。

应该去学什么自动化工具?回答是,第一步:应该先学习编程语言,以后再去学自动化测试工具

自动化测试是一定要写代码的, 编程语言水平的高低决定了自动化测试水平的高低, 有了扎实的编程技术,干什么都可以。

学习编程语言时, 要把自己当做开发人员, 系统地学习各种编程知识。

三、自动化测试学习的误区

很多新手一开始,就学习复杂的自动化测试工具, 我觉得这样是本末倒置了。

如果不先理解HTTP协议, 就不会理解Jemeter, LoadRunner, Fiddler, SoapUI这些工具的。

如果不先理解HTML,DOM, 就不会理解Firebug 这种工具的

如果不先理解Win32 API,  就不会理解Windows 窗体自动化测试的原理的。

如果自己没有开发过网站,就不会理解网站的各个方面,测试起来难免有遗漏。

总之学习自动化测试,需要循序渐进,把基础打好。

四、自动化测试分类

第一类是:模拟用户真实操作,比如,模拟点击鼠标,键盘输入,等,去操作浏览器上的控件。 (代表框架有selenium-webdriver,   VS Coded UI)

这类的自动化测试的是通过高级语言(C#, JAVA, Python 等)来调用selenium的一些工具来操作浏览器,帮助我们实行Web UI自动化

第二类是:模拟HTTP请求。这类测试一般是通过接口的调用,类似于这种【12306火车票网站自动登录工具】, 这方面的知识,目前市面上资料比较少。

第三类是:App自动化测试,基本上是通过接口调用来测试,类似http请求,当然,现在也有很多是通过事件触发的图形界面测试,有系统自带的,如果monkeyrunner,也有appium,工具比较成熟。

从自动化测试的实施方式来说也可以分为三类:

1、基于代码的自动化测试(Code-Based)

优点:易于实施和控制,容易快速看到效果,结合TDD将代码质量提高一个量级

缺点:要求有较强的编码能力和对被测代码的理解,同事需要流程和团队的配合;需要开发大量的测试驱动程序和测试桩,让研发团队望而却步

解决方案:多从灰盒测试角度实施(基于接口),而非纯北河测试角度(基于代码逻辑)

2、基于界面的自动化测试(GUI-Based)

优点:工具多,有成熟的解决方案,易于学习,短期效果明显

缺点:容易出现无法识别和操作软件产品界面上的元素的情况,从而使测试失效;产品早期变化大,不适合界面自动化测试,否则维护成本较高

解决方案:等待产品稳定后进行,主要用于验收测试和兼容性测试,不要指望找BUG

3、基于协议的自动化测试(Protocol-Based)

优点:适用于功能、性能、安全性、可靠性、可用性等测试类型;介于白盒和黑盒测试之间,是对白盒和黑盒测试的补充和增强

缺点:必须非常熟悉协议规则,特别是非开放式的自定义协议规则或者加密规则

解决方案:根据测试类型和测试目的来决定是否选用此类技术,一定能找到解决方案

基于代码的自动化测试,在方法上可以分为白盒测试和灰盒测试

白盒测试的特点:

1、白盒测试深入被测代码的逻辑细节

2、白盒测试关注代码覆盖率和运行路径

3、白盒测试通过测试桩(Stub,Mock)实现代码隔离

4、白盒测试通过测试驱动(Test Fixture)执行测试用例

灰盒测试的特点:

1、灰盒测试关注接口与参数,不关注代码实现

2、灰盒测试适用白盒测试用例设计方法

3、灰盒测试只关注测试驱动程序开发,不关注测试桩

测试驱动开发(TDD) 的步骤

1、规划接口规范(接口名称及参数)

2、开发测试驱动程序

3、运行测试驱动程序

4、查看测试结果(成功或失败)

5、迭代运行第三步和第四步

6、知道所有测试用例成功

基于界面的自动化测试

利用代码或工具模拟鼠标和键盘的操作

界面级自动化测试的核心是对象识别和操作

工具比较多,如:

1、Sikuli IDE,麻省理工学院研发的一款基于图像识别的自动化测试工具,利用Jython作为脚本语言提供自动化测试脚本的开发和调试,可对任意被测对象实施黑河测试,由于过于依赖图像对比,所以其健壮性相对较差。比如在XP下开发的脚本,在WIN7系统可能无法正常运行。

2、Selenium:一款开源的web系统自动化测试框架,兼容各种当前流行的PC浏览器,利用远程代理控制Javascript实现对象识别,健壮性好,支持Java、C#、Ruby,Python等语言。

3、QTP:全程Quick Test Professional,有Mercury Interactive公司研发,已被HP收购。脚本语言支持VBScript,脚本语言功能较弱,支持测试Windows,.NET,Java,Web等流行应用程序类型

协议级自动化测试

代码级自动化测试更多的用于服务端

界面级自动化测试更多的用于客户端

协议自动化测试用于测试客户端和服务端之间的通信,弥补代码级和界面级的不足

协议级自动化测试更适合于可靠性、安全性、性能等测试

自动化测试工程师要学会什么?看这些就够了相关推荐

  1. 华为十年测试老鸟教您如何写高质量的自动化测试工程师简历--看完必有所获

    一.前言:简历(职场敲门砖) 作为软件测试的垂直领域深耕者,面试或者被面试都是常有的事,可是不管是啥,总和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息.过往经历等,面试者希望通过简历把自 ...

  2. 平均年薪20W,自动化测试工程师这么吃香?

    自动化测试工程师,平均年薪20w绝对不是空穴来凤,甚至我还说少了,加上年终奖和奖金等等年薪可能还不止20w这个水平,让我们看看下方截图,[来自于职友集] 本篇文章将由以下4个部分来展开: 1. 什么是 ...

  3. 阿里p8呕心沥血整理出来的,APP UI自动化测试思路总结,速看

    首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师.高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去.接下来,一 ...

  4. python自动化测试难不难_我从功能测试进阶到自动化测试工程师的经验总结~|Atstudy...

    1 我是谁? 大家好,我是软件测试汪.不知不觉,入行软件测试也有小5个年头.待过创业公司也待过上市公司.做过功能测.自动化测试也做过性能测试.做过测试新人也做过测试组长.如果要是从这5年中说出最宝贵的 ...

  5. 自动化测试工程师_所以你想成为一名测试自动化工程师

    自动化测试工程师 I see many people and personally have several friends and acquaintances that are interested ...

  6. 2021年最全的自动化测试面试题及答案--看完后吊打面试官!自动化测试是什么?自动化测试学什么?

    一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你没看错,不慌,慢慢来. 先从什么是自动化测试开始说起哈! 二.什么是自动化测试? ...

  7. 2020年最全的自动化测试面试题及答案--看完后吊打面试官!自动化测试是什么?自动化测试学什么?

    一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你没看错,不慌,慢慢来. 先从什么是自动化测试开始说起哈! 二.什么是自动化测试? ...

  8. 0基础成功转行Python自动化测试工程师,年薪30W+,经验总结都在这(建议收藏)

    两年前的决定我觉得还是非常正确的,就是自学了python,然后学习了自动化测试.性能测试.框架.持续集成,同时也把前面的软件测试基础知识全部补全了.目前的收入还比较满意,月入2W+(仅代表个人收入), ...

  9. 自动化测试工程师的发展前景怎么样?

    根据各大网络招聘平台的数据显示,越来越多的企业在招聘测试工程师的时候,都开始重视自动化测试这一重要技能.早在四年前,自动化测试的人才需求和薪资待遇就开始一路上涨.如果你问:自动化测试工程师的发展前景怎 ...

最新文章

  1. KVM安装、镜像创建(一)
  2. 你的代码(软件)安全吗?【信息图】
  3. 激战服务器位置,如何选服务器 《激战2》服务器设置讲解
  4. arm linux远程桌面win7卡顿,主编解答win7系统使用远程桌面出现卡顿的恢复方法
  5. -webkit-有意思的属性
  6. 线下社群要如何拉新呢?
  7. Quartz的集群模式和单机模式共存-让一个非集群的Quartz与集群节点并行着运行
  8. 关联规则(Apriori、FP-grpwth)
  9. 压缩下载到浏览器的工具类
  10. linux 反汇编运行时代码段,linux内核学习之一 简单c语言反汇编(示例代码)
  11. vue 时间插件_Vue插件丨vxe-table初体验
  12. element修改图标的大小
  13. 收藏多年的MySQL函数大全笔记,笔记一生一起走,那些日子不再有!
  14. 股市行情图原来是这样实现的
  15. 求解答!iframe在IE浏览器加载页面无反应问题
  16. centos7 mysql libssl_centos7.2安装mysql5.7.13及ssl主从复制
  17. php实现智能音箱播放内容,海尔小优智能音箱有这些功能 用好它更方便
  18. Pthon画皮卡丘源码
  19. 画出漂亮的神经网络图,神经网络可视化工具集锦
  20. 一点小感受:界面和程序的分离

热门文章

  1. 如何快速阅读java源码_如何进行快速阅读代码
  2. VB中的SQL语言——增、删、改、查
  3. 全国学生资助系统-自采集清理方法
  4. linux+取当天日期文件夹,Linux shell脚本:创建一个包含当前日期名称的文件夹
  5. 学术工具-文献引文分析利器之 HistCite
  6. 杨树食叶害虫综合防治技术
  7. HDU 2983 Integer Transmission
  8. 常用非线性模型和线性模型的理解
  9. Python基础精选
  10. [网络流24题][BZOJ1475]方格取数(最小割)