• 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


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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   不久前,一位朋友让帮忙推荐个测试工程师,于是聊到了他们对测试工程师的诉求。  朋友公司是一家做教育软件的公司:Web端、App端产品都有涉及。  最初的诉求就是想找一位有1-2年相关产品测试经验的人即可。  但经过几轮沟通后,他的诉求增加了不少:  ·最好会一点自动化、性能,以后会用到;  · 最好会一点运维,开发测试环境要分开;  · 最好再会一点开发语言,能够写一些脚本或测试工具;  · 最好有过主导产品测试工作的经验,能够推动生产过程改进,持续质量提升。。。  原来公司对面试者的期望是:身怀绝技Or(And)十八般武艺Or(And)七十二变。  我们经常...
            0 0 949
            分享
          • 1.monkey的简单介绍Monkey测试是Android app自动化测试的一种手段,Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入等,看设备是否出异常。当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机事件,所以可以用Monkey用随机重复的方法去测试app。一般情况下单个app monkey 模拟测试10万次足矣。2.以下是app monkey测试的详细步骤先进入cmd界面,输入adb devices,查看是否正常连接;输入adb logcat | findstr START 监控app,打开你要测试...
            13 13 1352
            分享
          •   最近我接触到了一种我之前没有接触过的产品,那就是物联网平台。说物联网平台之前,让咱们先来了解一下什么是物联网。物联网,简单来说,就是把各种各样的设备通过网络连接在一起,通过网络连接去管理和操控设备,获取设备采集的数据等等。  物联网其实在我们的日常生活中已经应用得非常广泛了,包括制造业、智慧城市、智慧医疗、物流、农业、智能家居等行业都有涉及。像咱们平常生活中使用手机扫码骑共享单车、无人快递柜取快递、手机连接空调设置温度等等都属于物联网的实际应用。  我目前所涉及的行业其实就属于智慧城市产业下的一个分支:水环境监测方面。  物联网平台,就是将物联网设备远程连接、管理操控、设备采集数据的获取、...
            0 0 443
            分享
          • Shell不仅是一种命令解释器,还是一种编程语言,非常擅长处理文本类型的数据。由于Linux系统中的所有配置文件都是纯文本的,所以shell编程语言在Linux系统使用中发挥了巨大的作用。使用shell编写的程序类似于DOS下的批处理程序,简单来说,shell编程就是对一系列Linux命令的逻辑化处理。例如,我们在进行自动化测试的时候,需要将代码部署到服务器进行管理和集成,每次都要执行拉取最新的代码、编译打包、上传服务器一系列的步骤,效率不高而且很繁琐。我们将这个过程写成一个shell脚本,每次只需要运行一下这个脚本即可完成上述步骤,简单方便,提高工作效率。一、什么是shell脚本?我们可以在...
            2 2 2320
            分享
          • 导读在自动化测试实践中,测试数据是制造测试场景的必要条件,本文主要讲述了在沟通自动化框架如何分层,数据如何存储,以及基于单元测试 pytest 下如何执行。并通过实践案例分享,提供数据驱动测试的具体落地方案。基本概念数据驱动测试(DDT)是一种方法,其中在数据源的帮助下重复执行相同顺序的测试步骤,以便在验证步骤进行时驱动那些步骤的输入值和 / 或期望值。在数据驱动测试的情况下,环境设置和控制不是硬编码的。换句话说,数据驱动的测试是在框架中构建要与所有相关数据集一起执行的测试脚本,该脚本利用了可重用的测试逻辑。数据驱动的测试提供了可重复性,将测试逻辑与测试数据分离以及减少测试用例数量等优势。设计...
            0 0 884
            分享
      • 51testing软件测试圈微信