• 0
  • 0
分享

入门自动化测试必读

自动化测试概念

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

好处

自动化测试可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在更全面的用例设计和新功能的测试上;

自动化测试可以大幅提升回归测试的效率;

自动化测试适合在非工作时间执行测试,工作时间分析失败用例;

自动化测试可以高效地实现某些手工测试无法完成或者代价巨大的测试类型,比如关键业务 7×24 小时持续运行的系统稳定性测试和高并发场景的压力测试等;

自动化测试能够保证每次测试执行的操作以及验证的一致性和可重复性,避免人为想当然的遗漏或疏忽,例如:这个功能之前运行都是OK的,这次我就可以不测试了,结果这次悲剧却发生了。

弊端

自动化测试比较脆弱,无法快速的应对软件的需求变化。

自动化测试初期效率往往不高,开发自动化测试用例的成本比手工测试成本高很多。

优秀的自动化测试工程师薪酬很高,加大了企业的人员成本。

本质

编程测试,即编写一个程序测试另一个程序。所以,编写自动化测试用例属于开发工作,需要测试人员投入大量的时间和精力。当后期产品的页面元素和业务发生变化时,还需要付出维护自动测试脚本的成本。

过程

通常自动化测试的开发过程如下:

录制脚本>修改录制脚本>回放脚本>查看报告

入门自动化测试都是从录制脚本开始的,录制脚本就是在手工操作软件的时候,你的操作过程被自动化测试工具完整的记录了下来,然后工具把这一系列动作转化成与其对应的API。优秀的自动化测试工具都有自己的录制脚本工具,例如,Web

UI自动化测试的代表性工具Selenium就使用Katalon Recorder或者Selenium IDE进行脚本录制工作。

录制的脚本往往都不够稳定,我们在实际工作中要对录制的脚本进行修改,即二次开发。

回放脚本的过程就是运行在录制过程中录制工具生成的测试脚本。

自动化脚本运行完毕后会生成测试报告,以便于我们查看自动化测试脚本运行的实际情况。

自动化测试与手工测试对比投资回报率

从下图中可以看到,从第6次回归测试以后,自动化测试回报率开始显现(第6次是个经验值)。

图片 1副本.png

适合做自动化测试的项目

(1) 软件需求变动不频繁;

自动化测试最怕的就是需求不稳定,需求的频繁变更会导致自动化测试用例的维护成本直线上升。刚刚开发完成的脚本可能因为产品页面的变化和业务的变化,不得不重新开发。因此自动化测试要从需求稳定的功能模块入手。

(2) 项目周期足够长,需要频繁执行回归测试;

开展自动化测试要选择产品生命周期足够长并有多个持续版本发布计划的项目,通常在有6次回归测试以上的项目中自动化测试的优势才会大于手工测试。

(3) 需要在多个平台上重复执行相同测试的场景。

如果你公司的产品符合如下需求,那么投入自动化测试会带来良好的收益。

产品支持多浏览器;

移动端应用需要在近千台手机中运行;

对于一些企业级软件,如果对于不同的客户有不同的定制版本,各个定制版本的主体功能绝大多数是一致的,可能只有个别功能有轻微差别。

(4) 无法通过手工实现或者手工实现成本过高的项目

通常在执行关键业务 7×24 小时持续运行的系统稳定性测试和高并发场景的压力测试时必须使用自动化测试,因为人工测试几乎不可能完成测试任务。

不适合做自动化测试的项目

除了需求变动频繁、项目周期短这种典型的不适合做自动化测试的项目,在以下列举的体验类的项目中也不适合做自动化测试,包括:

视频体验、美观体验、声音体验、易用性体验和多用户交互体验。

 

作者:测试小哥
链接:https://zhuanlan.zhihu.com/p/97476578


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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   对于测试开发这个岗位,大家是怎么理解的?  有的人说是测试中的开发,做测试工具的,懂点开发,但是又不是很行,只好做测试开发。  个人观点:不管是测试还是开发,更高的维度其实是产品,是用户感知,是挖掘用户真正想要的;测试开发做的好的人,一定是一名合格的开发人员,开发做的好的人,却不一定能胜任测试开发的工作。  这也决定了:  目前业界,合格的测试开发人员,薪资应该是高于纯开发人员的。因为测试开发的核心能力是纯开发人员的超集。  其次,有测试开发这个职位的公司多半是大厂,大厂重视技术,更重视业务本身,而测试本质上是离业务更近,更有产品思维,用户思维的人(当然,也有很多测试达不到这个level)...
            1 0 968
            分享
          • 怎样才能放下自己的成见,真正体会到对方的情绪和潜在的内心需求?说起来也怪,最近稍微一闭上眼睛,仿佛可以穿越附体到另一个人身上,能很快地体会到他当下的心情,潜在的内心需求。现在试着分析一下,怎么能屡试不爽。人们的语言,动作,表情,在表达时会被同时调用,语言传递的信息量只在5%左右,动作表情等肢体动作可能占到了80%左右,剩下的一部分可能在内心活动和当时聊天的场景环境中。如果你愿意放下自己的观点,完全复制一套对方的语言,表情,动作,结合对方的背景,舍身处地地体会,定能感同身受的同频共振,定能与他真正在一起。这个能力不是每个人一出手就能练会的。需要多年人生感悟和独到见解。但是这个容易给感同身受的人本...
            1 1 883
            分享
          • 1、一次插入多行数据插入行所需的时间是由以下因素决定的:・连接:30%・向服务器发送查询:20%・解析查询:20%・插入行:10% x 行的大小・插入索引:10% x 索引数・结束:10%这是引用 参考MySQL 5.7参考手册可以发现,大部分时间是消耗在客户端与服务器之间的通信,所以,我们就可以使用insert包含多个值来减少客户端和服务器之间的通信。为了能更直观的看到效果,我们还是老规矩,上例子,在例子中看效果。1.1 准备测试表及数据创建测试表及写入数据。 /* 使用ClassDJ这个database */ use ClassDJ; &n...
            1 0 4374
            分享
          •   最近很多同学问我做游戏测试有前途吗?  如果你真的很喜欢游戏,每天不打游戏你浑身难受,其实做游戏测试也算是一个好的选择!  游戏测试和软件测试的区别是什么?  现在游戏测试的待遇比以前好很多,资深的游戏测试也能达到20k。我们一般的软件测试呢,就是按照正常逻辑去测正常用例和反向用例就好了。那么游戏测试和软件测试会有一个大的区别,就是它的UI会非常的复杂,假设我们打开B站或者打开视频平台,会有一个个页面,但是打开游戏可能从进去开始就会有各种动画和各种加载,所以做游戏测试的话,测试点、UI、美术技术、技能的叠加以及各项内容的加载和流量的消耗,都是和软件测试区别比较大的地方。  除了这些东西以外...
            0 0 444
            分享
          • 1.就目前Selenium只能做Web跟Android App方向的自动化是吗?像IOS App跟 Windows桌面应用的自动化就无法用Selenium实现对吗?selenium的创作团队很明确说了,他们只专注WEB测试.你如果想测试APP,可以看一下这篇文章:http://www.51testing.com/index.php?action-viewnews-itemid-4462121-php-12.Selenium的Web自动化,除了用Fire bug和Fire path 来获取页面元素进行定位,还有其他更好的方式吗?Firebug和Firepath,基本上足够你去...
            1 2 3982
            分享
      • 51testing软件测试圈微信