• 0
  • 0
分享
  • 自动化测试——软件测试圈
  • quinn 2022-06-09 13:45:37 字数 3190 阅读 570 收藏 0

提起自动化测试,可谓仁者见人,智者见智,心中五味杂陈啊!你从任何一个招聘渠道来看最近两年对测试岗位的要求,几乎都要求会自动化测试。而不少人一直认为手工测试才是王道,工作中有的时候也用不到程序,干嘛在面试的时候要求写代码呢?明明自己的测试能力不错,做了多年的功能测试,为什么面试的时候四处碰壁呢?很是想不明白,难道业界最近几年有点儿盲目推崇自动化测试了吗?

虽然我不能说完全明白这些问题的产生的根源,不过以我这五六年的从事测试工作的经验来分析一下这些问题的来龙去脉,可能也不是十分准确,希望能给迷茫的同学带来一些思考。

一、 什么是自动化测试

什么是自动化测试呢?关于这个问题,可能没有准确的答案。普遍认为的是接口自动化测试,WebUI自动化测试,App自动化测试等被冠以自动化命名的测试方案。其实不然,自动化测试是相对于手工而言的,用代码或是借助于第三方工具,把繁复的测试工作从手工转化为机器自动执行的测试方案,可以统称为自动化测试。除了上面所说的三个方面的自动化测试,当然还包括日志过滤,日志回放,接口监控,服务监控等等,根据具体业务需求通过代码把人力从中解放出来的代码手段。

二、为什么要做自动化测试

那企业或者是我们测试人员为什么要做自动化测试呢?从工作角度来说,目前互联网行业需求迭代非常快,人员流动也比较快,所以一个需求从提出到上线时间比较紧急,同时对于其影响的范围也可能不太清楚,在上线之前必须对原有功能进行回归测试。不管是接口还是从客户端,都需要大量的测试工作,而且在大数据时代,测试用例量也是非常庞大的,如此繁复单调的工作让人工来测试的话,根本不能保证效率和质量,所以必须要借助于非人工手段来实现。从个人发展方面来讲,时代在发展,对我们的要求也越来越高,所以我们要迎接变化,不断提升自己才行。虽然你可以坚持手工测试是基础,是王道,可是并没有企业愿意为你这个信念买单。除非你生活无忧无虑,可以坚持自己的信念,否则你就要尊重业界发展的规律,不断充电从而使自己更有价值。

三、如何实施自动化测试?

虽然业界比较注重自动化测试,不过永远要记住下面一句话:“不要为了自动化测试而做自动化测试!”不管你在测试工作如会采取什么测试方案,测试手段,这一切都是为了业务服务的,脱离了具体的业务,你的辅助手段再厉害也是无用的。

在实施你的自动化测试工作之前,你必须对要测试的业务非常熟悉,核心业务流程,具体的功能模块的实现,前后端如何交互,以及业务未来的发展与迭代频率等等。然后按以下思路来进行选择与实施你的自动化测试:

(1)根据业务特点,选择自动化测试方案。你的业务是前后端分离的吗?业务比较注重用户交互还是数据完整性?用户量有多大,有没有需要承担的压力等等,通过考虑业务的特点,才能选择比较合适的方案。

(2)根据业务侧重点,确认自动化覆盖范围和粒度。通过业务特点选择了自动化测试方案,然后就需要根据业务侧重点来确认范围和粒度了。比如说,你确定要进行Web UI自动化测试,肯定不能看着页面就去写自动化测试用例嘛,要根据业务重点来确认。哪些业务流程是核心,必须覆盖?哪些功能暂时有技术难点,或是变化比较快,可以放为二期来实现。通过对手工用例的评审,来准确确定自动化测试的范围,实现用例的粒度。

(3)根据自动化测试用例范围,选择实现框架和语言。目前业务自动化测试工具,开源框架可谓多如牛毛,让人有点儿无从选择,但是它们还是各用侧重点的。我们需要根据测试用例的范围和特点,参与人员的水平,用例的使用场景和未来的计划来选择合适的框架。比如说,我们要做接口自动化测试,而参与人员大部分不会代码 ,那选择Python+Unittest+HtmlTestRuner+Jenkins就比选择Java+Httpclient+TestNG+Jenkins实现起来成本更低。

(4)根据用例用途,选择执行策略。根据我们自动化测试的用途,是做上线前回归,还是触发式回归?需不需要做监控?执行环境是什么?来去确认是否做持续化集成,是否发执行结果与错误预警,用例或是用例集管理方案,指定维护人员等等工作! 

四,如何学习自动化测试

既然自动化测试是手工测试提升的一个必经之路,虽然自动化测试没有那么高大上,但也是必不可少的。那作为一个有理想的测试人员,应该如何去学习自动化测试呢?

(1)准确定位自己,明确目标

有不少同学意识到了自动化测试的重要性,就去网上查询资料啊,或是报培训班学习啊,可是到最后越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么原因呢?

这是因为你在学习自动化测试之前没有想明白几个问题:我的真实水平如何?如果学习一项新的技术或是语言,我愿意投入的精力是多少?从现在开始学习,三个月或是半年后应该达到什么目标?我了解现在业界的自动化测试类型或是体系吗?想好这些问题再去入手学习,必定事半功倍。

(2)全面了解,选好切入点

目前自动化测试方向大概有以下几个:

A、辅助测试脚本方向,以Shell,Python为主来简化重复的工作,过滤日志等;

B、接口自动化测试方向,Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;

C、页面自动化方向,主要有Python+Web drver+Html Test Runner+Jenkins Java+Web driver+TestNG+Jenkins以及其他的框架和工具;

D、App自动化测试方向,以Robotium+Java+TestNG+Jenkins Appium+Java+TestNG+Jenkins Appium+Python+Html Test Runner为主。

当然这里介绍的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。

(3)步步为营,不要贪多

我们在提升自己的时候,发现有好多东西需要学习,于是就很着急,想同时学习很多东西,其实这并不好。学的太多容易产生混淆,而且不容易消化,你仔细调研一下就会发现,很多东西都是通着呢。代码架构,用例管理,执行策略,持续化集成思想都可以举一反三,关键是自己要动手真正实施起来,在公司现在的框架上写用例,不管你写多少,不了解整体结构都是没有用的。

(4)抛弃工具,多用开源

业界好像从来不缺少自动化测试工具,QTP,Realobot Framework,LoadRunner等等,知名不知名的数不胜数。先不说这些工具效果如何,目前大公司是从来不用这些工具的,大家都使用开源的框架,工具进行定制化自己的测试方案。所以刚刚学习自动化测试的时候,也不要依赖工具,使用开源的Webdriver, Appium,Robotium等搭建自己的自动化测试工程。掌握一个整体的自动化工程工作原理,为以后搭建自己的自动化工程,工具,平台做准备。

不管你对自动化测试是爱,是恨,它是从手工测试转为测试开发必经的阶段。可能你了解到自动测试没有用,实施起来维护成本高,执行效率低等负面信息,其实这不是自动化测试的问题。要知道,它只是一个工具,一种测试方案,最终的效果还是由实施的人来决定的。在12,13年的时候,用Jenkins做持续化集成比较热门,接下来几年好像没有那么火了,但是近两年docker技术的出现,又使CI,CD变得火热起来。我们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准方法,不断提升自己呢?


作者:潜龙9527

原文链接:https://www.cnblogs.com/eagleking0318/p/8669730.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如jmeter、postman、soapui等等就比较麻烦。我比较偏重脚本化执行测试用例,所以选择了groovy作为主要语言来进行接口测试,但是脚本依赖的库还是基于之前所在的java为主的测试框架,有兴趣的可以翻翻以前的文章。项目的架构思路是以模块为基础把接口分类,然后对于接口的请求单独进行实现。通过一个user作为一个用户,携带各种属性,如:uname,pwd,token,userinfobean等信息。来作为各个模块类之间的信息传递。回到修改密码接口,简单说一下我们接口的...
            1 0 2071
            分享
          •   在第三季度盈利大幅下滑之后,诺基亚周四表示,作为成本削减计划的一部分,该公司将裁员多达 14000 人。这家芬兰电信巨头表示,将降低成本基础,提高运营效率,以"应对充满挑战的市场环境"。  该公司的目标是,从 2023 年起,将总成本基数降低 8 亿欧元(约合 8,425 亿美元),到 2026 年底降低 12 亿欧元。  这将使员工人数从目前的 86,000 人减少到 72,000 至 77,000 人。  此次大幅裁员是在诺基亚公布第三季度净销售额同比下降 20% 至 49.8 亿欧元之后发生的。期内利润同比骤降 69%,降至 1.33 亿欧元。  今年早些时候,诺...
            0 0 296
            分享
          • 注册功能测试:首先要分析需求,web端/APP端?账号的规则?1、账号为手机号:利用等价类边界值划分有效等价类和无效等价类;如图所示:功能测试用例:(1)输入已注册过的手机号获取验证码再次注册;(2)输入不符合手机号规则的号码获取验证码进行注册;(3)输入欠费的手机号获取验证码进行注册;(4)输入10位数字获取验证码进行注册;(5)输入12位数字获取验证码进行注册;(6)输入11位字母获取验证码进行注册;(7)输入半角字符获取验证码进行注册;(8)输入全角字符获取验证码进行注册;(9)不输入任何内容获取验证码点击注册;(10)输入空格获取验证码点击注册;(11)输入表情符号获取验证码点击注册;...
            13 13 2273
            分享
          •   测试用例格式包括十大特点  1)用例编号  2)测试项  3)测试标题  4)用例属性  5)重要级别:高中低  6)预置条件  7)测试输入  8)操作步骤  9)预期结果  10)实际结果  等价类  1,等价类定义  2,等价类划分  3,等价类划分规则  4,进行等价类用例设计  5,案例  边界值  1,边界值的三点  2,边界值应用场景  3,边界值方法应用步骤  判定表  1,定义  2,重要概念  3,判定表应用步骤  4,案例  因果图  1,输入与输入的关系  2,输入与输出的关系  3,案例  正交试验  1,因子和水平的定义  2,特点  3,设计流程  4,注意点...
            0 0 320
            分享
          •   随着将更多资源投入到生成式人工智能领域,Meta 公司已经解散了其负责任人工智能(RAI)团队。The Information 今天援引其看到的一篇内部文本爆料了这一消息。报道称,RAI 的大部分成员将转到公司的生成式人工智能产品团队,其他人则将在 Meta 的人工智能基础设施上工作。  Meta经常对外宣称要以负责任的方式开发人工智能,甚至还专门为此设立了一个页面,列出了其"负责任的人工智能支柱",包括问责制、透明度、安全性、隐私等。  The Information 的报道援引 Meta 公司代表乔恩-卡维尔(Jon Carvill)的话说,公司将"继续优...
            0 0 570
            分享
      • 51testing软件测试圈微信