• 1
  • 1
分享
  • 如何从功能测试转自动化测试?这3件事对你一定有帮助!
  • 北极 2021-11-17 15:33:05 字数 2006 阅读 1196 收藏 1

为什么要进行自动化测试?

开始正文前,我们必须先统一认知,充分认识到自动化测试的必要性,随着被测系统越来越大,逻辑越来越复杂,测试的工作量也会倍增,这必然会暴露出测试资源与测试生命周期的冲突,因此为了更快、有效、可靠的对被测系统进行测试,需要引入自动化测试。 加我VX:atstudy-js 回复“测试”,进入 自动化测试学习交流群,内含直播课+实战+面试资料~~

而另一方面,当下测试开发岗位是目前软件测试的主趋势,也是升职加薪的必要手段,因此自动化测试必须要尽快实施。

分层做自动化

选择做自动化,首先要明确目标,自动化是分层的,目前主流认为,自动化测试主要分为UI、SERVICE、JUNIT 三层。

所以我们做自动化的第一步要确认,自己要做针对哪一层的自动化,每一层自动化要做的事情如下:

  1. UI 层:主要是对页面元素进行检验,多用于测试浏览器的兼容性。

  2. SERVICE 层:主要针对的就是接口,而接口关注的就是一个类、或者一个函数的实现。

  3. Junit 层:则关注于底层代码的逻辑,需要精确到每个 if 分支、每个 for 循环的运行。

以主流电商淘宝网为例:

1.png

此时我们想验证下谷歌、火狐、EDGE、Safari 浏览器是不是都可以正常进行搜索,此时我们就可以将这个功能做出 UI 自动化,自动识别搜索框,而后在各个浏览器以验证其兼容性。

那么我们输入”苹果手机”,而后点击搜索,此时服务器会根据用户要求返回查询结果,这时就是接口测试。

2.png

有了接口,后台会判断关键字:收到”苹果手机”就返回其相关内容,如果搜索的为”华为手机”就要返回华为手机相关内容,此时就涉及逻辑判断,最好通过单元测试实现。

明白了每层的自动化的测试标的,接下来再给大家介绍下,为什么是金字塔模型,这代表每层的比重和重要性,因此这个模型告诉我们:

  • 一定要对底层实现做单元(JUNIT)测试,当然这部分大部分都是由开发实现。

  • UI 因为其不稳定性,投入高但是往往效果小,因此比重低,但是这个框架有个好处,适合学习入门,因此如果你第一次尝试自动化,不妨从 UI 开始做起。

  • 接口自动化,对测试人员的编码能力有足够高的要求,但是相对于单元测试,又少了很多细节技术的学习,因此推荐有一定代码基础的人从接口自动化做起。

所以这里我的建议是,先树立目标,从哪一层开始做起,入门级做 UI,有一定的基础直接做接口。

自动化前的技术储备

决定做自动化之后,是需要有一定的技术储备的,结合我个人的经验,给出如下建议:

  1. 第一步:确立学习一门主要的编程语言,这里主推 java,虽然 python 被很多人说适合测试,但是我建议你学习 java,因为自动化核心的框架 selenium、testng 都是 java 语言编写的,最主要的是,用 java 更贴近于目前大部分公司系统,遇到问题可以随时请教公司研发同事,另外一旦实施,很多环境可以开箱即用。

  2. 第二步:学习一门自动化框架,推荐 selenium、testng、allure(这个用来产出报告的)

  3. 第三步:弄清楚主流的应用层通讯协议,这点至关重要,如果你压根不明白什么是 http 接口,什么是微服务接口,什么是 TCP 协议接口,什么是 API 接口,那么你可能很难有自动化的架构思维。

  4. 第四步:了解下自动化的基本组成,一般要进行:自动化用例设计、脚本开发、数据驱动、参数化、生成测试报告 这六大模块,需要了解下每个模块的大致做法,这样方便后面自己定位问题。

  5. 学习下主流的开发技术框架,推荐 springboot,有了这个一站式开发框架,可以快速的帮助你搭建分层的自动化框架,一定要了解下。

  6. 学习下 maven,这个可以更好的帮助你管理自己的自动化工程。

  7. 最后一步,最最关键,边学习边做是最佳实践,不要学完了在用,而是要边学习边应用,边应用边积累,养成写技术博客的习惯。

这里我强调技术储备非一朝一夕之功,只要自己有了学习方向,就可以边做边学!

终极测试的职业规划

如果一旦进入到自动化测试的行业,请明白,也只是测试职业生涯的一小步而已。如果想要在测试行业继续耕耘,有更高的成就,需要为自己制定好严格的职业规划路径。如果把目前的自动化测试分为初级、中级、高级、专家四类,在每一级的要求如下:

3.png

可见从初级成长到专家,要做的事情非常多,每一级别的成长都有其对应的技能标准,我们只有对自己的职业有清晰的认识,才能使我们走的每一步都掷地有声。

总结来看,首先要清晰的认识自己到底要从哪一层的自动化开始做起,这需要对自己目前现状做充分分析才能决定,确定了做自动化,那么技术储备必不可少,要清晰的认识到做自动化是离不开技术编码的,最后入行了自动化,要对其职业发展有明确的规划,这样自己才能朝着目标越来越近,大道至简,多说无益,选择转行自动化,那么从现在开始行动吧! 


原文链接:http://blog.itpub.net/31407649/viewspace-2791521/

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 视觉回归测试视觉测试用于评估Web应用程序跨浏览器的响应能力。通过执行视觉测试,您可以查看前端的UI / UX组件,以决定受测试的应用程序是否可以适配于各种浏览器,设备和屏幕分辨率,因为它们都提供了不同的体验。据《The Selenium Guidebook》的作者Dave Haeffner介绍:视觉测试是一种验证应用GUI是否正确地展示给用户的操作。测试目标是找出应用在可视化上存在的软件缺陷,例如,字体、布局和渲染问题。这使得所发现的软件缺陷可在被最终用户看到前得到修正。此外,视觉测试可用于验证页面的内容,非常适用于一些提供图形功能(例如图表、仪表盘等)的站点。如果使用传...
            0 0 3359
            分享
          •   软件测试的薪资对于女生来说,应该还算可以了吧?反过来你可能要头疼的是怎么去安慰另一半接受薪资不如自己。  再换个角度来说:很多人缺乏的不是机会,而是面对未知领域迈出哪一步的勇气!  任何人都劝不了你,唯独你自己能说服自己!这个答案值得在座的各位深思!  测试岗是不是加班多?  我们来说说测试 VS 开发的加班比较:  关于加班的问题,以IT行业的现状来说,加班还是比较普遍常见的~  ·至于加班的多少,一般要看公司或者是所待的项目组。一般的话都是跟着项目走的。  · 如果是某些加班比较狠的公司,那么不管开发测试加班都是非常多的(具体是那些996大厂,请自行百度~)。  · ...
            0 0 762
            分享
          • 测试环境是QA做好检测运行的前提条件。平稳和可控的测试环境,能够使测试人员在实行测试用例时不用花费额外的时间去维护。有一些企业运维或是研发部会帮忙准备好测试环境,可是QA要是一味依赖别的部门,会局限检测运行的做好。一、什么是测试环境测试环境,指为了更好地做好软件测试运行所必不可少的计算机硬件、软件、网络设备、历史数据的总称,简单点来说,测试环境=硬件+软件+网络+数据准备+测试工具。硬件:指检测必不可少的服务器、客户端、网络连接等辅助设备。软件:指测试软件运行时的操作系统、数据库以及其他应用软件。网络:指被测软件运行时的网络系统、网络结构及其别的网络设备组成的环境等。数据准备:一般指测试数据的...
            0 0 654
            分享
          • 一、软件可靠性测试的概念:1、软件可靠性分析方法有:失效模式影响分析法、严酷度分析法、故障树分析法、事件树分析法、潜在线路分析法等;2、可靠性测试的使用场景:在比较大的业务压力情况下进行的软件可靠性测试;3、可靠性测试过程五个步骤:确定可靠性目标、定义软件运行剖面、设计测试用例、实施可靠性测试、分析测试结果;4、可靠性预测的目的:根据软件在可靠性与测试揭示的故障情况来预测软件在正在运行时的故障和实效情况;5、可靠性测试的目的:通过受控的软件测试过程来预测软件在实际运行中的可靠性;6、可靠性测试要求:测试用例集要完全符合运行剖面的定义;7、可靠性测试条件:使用的测试用例必须满足语句覆盖;8、软件...
            0 0 2744
            分享
          • 什么是 PostgreSQLPostgreSQL 是一个开源系统,被认为是最符合 SQL 的系统。它是作为一个开源项目开发的,可以追溯到 30 多年前。它以其可扩展性和符合不同标准而闻名。它是执行复杂操作的首选。由于其构建的底层技术,它也是大容量数据操作的首选。它还符合ACID属性(A tomicity、Consistency 、Isolation 、 Durability )。PostgreSQL 使用的多版本并发控制方法使其能够高效地执行许多并发写入和读取事务。高效地同时处理多个任务的能力使其成为许多商业巨头的首选,例如 Uber、Netf...
            0 0 4279
            分享
      • 51testing软件测试圈微信