如果你正在学自动化测试,那么请你仔细看完这篇文章

 接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人。 本人从事软件自动化测试已经近5年,从server端到web端,从API到mobile,切身体会到自动化带来的好处与痛楚,在此分享一下个人体会。

想做自动化,首先得了解一下自动化测试的一些常见问题:


自动化测试一些问题 

  1. 什么是自动化测试? 
     自动化测试,顾名思义,自动完成测试工作。通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然.因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。

  2. 为什么要进行自动化测试

    为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
     a. 自动化测试节约成本(根据项目)
           毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动.
    
     b.有些测试项目手工很难实现(手工成本较高)
           比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.
     c.项目质量流程需要
        比如版本管理需要build verify,以保证check in的code不会影响版本库。类似于smoke test
        
    

  3. 自动化测试的优缺点

    优点
      避免测试人员因重复劳动产生厌倦
       提高测试效率
       保证每次测试地一致性和可重复性
       更好的利用无人值守时间
       进行一些手工无法进行的测试
       维护成本相对比较高
    缺点
      系统开发时间不一定能缩短
      没有手工测试发现缺陷多
      UI layout issue 不容易发现
    

  4. 什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)

    有以下几个特点的项目比较适合自动化测试:
    1. 项目变动少
    2. 周期长
    3. 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)
    
    举例说明: 
        互联网项目,一周内要上线,你不上线别人上线人家就不用你的,项目周期短,变动快,你自动化还没做好,项目说不定就下线了。比如某宝双12活动相关项目,一周之内就下线了。
        适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个就比较适合自动化.
    

  5. 什么样的人适合做自动化测试?

    这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储备.
    你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。
    
    扯了这么多,究竟什么什么样的人能做自动化测试?
    我的理解分一下几点:
     a. 拥有代码能力
        掌握一门开发语言,java、Python、ruby、c#
     b. 熟悉被测系统
      比如你是web测试,你就得懂js、css、html、xpath
      你是移动端测试,你就得具备Android 开发基础和iOS开发基础,会debug app
      你是 C/S测试你就要很熟悉TCP、IP协议
     c. 掌握一套自动化测试框架(工具)
        比如 selenium/appium 
                nunit/testng
               robot framework/cucumber
     
     d. 善于学习,达到知其然知其所以然
        IT行业变化太快,每隔一段时间就会出现一些新兴的东西,也会出现原来很火的东西逐渐没落,谁也无法预测。
        曾经诺基亚还是手机霸主,靠塞班一统天下,然而不思进取,落得个卖身求生存.
        曾经qtp很火,曾经selenium也很火,现在appium也很火
        软件行业从桌面软件到web端,又从web端迁移到移动端,谁也不知道下一个是什么。而我们作为软件行业的从业者,不能因为那些很火的东西不火了而让自己没落,一个人最为核     心的能力就是学习能力,如果你善于学习,你就不必担心这些变迁,因为你可以毫无压力的迁移,selenium的原理你掌握了,学习appium简直小菜一碟,因为appium使用的是
        selenium WebDriver protocol .如果你能做到知其然知其所以然,你也可以造轮子,改造appium,毕竟现在很多功能需要完善。
        
        如果你没有达到以上的几点,建议你还是做手工测试吧。

  6. 如果你有代码基础,想要从事自动化测试怎么去学习?
    很多初学者很纠结,学qtp还是学selenium
    我的建议是学selenium,开源的,免费的,你可以下载源码研究,去了解其原理,再者现在selenium的资料不要太多,随便搜搜一大堆,学起来比较轻松。
    不建议学selenium IDE录制,当然你可以通过录制一些然后转换为相应的脚本去学习,等你学好了selenium, 再去学appium你会有一种天然的似曾相识。为什么不建议学QTP/UFT?因为收费/臃肿/现在做桌面软件测试的工作已经不太多了。
    关于买书,不建议买书,很多书已经过时了,并且质量渣渣,你买了那些书中的code已经不能用了,如果你真的想学,就去官网找example,去相应的社区和群交流,或者直接看API/源码.

    最后

我准备了一些自动化测试学习的资

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/326357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kylin集群负载均衡(kylin3,hbaseRIF问题)

hbase历险记 目录 hbase历险记 寻找问题 分析原因 解决方案 方案1(资源问题、失败) 方案2(成功) 寻找问题 不知道你是不是有这样的疑惑。我kylin是个单机,我使用的hbase是个集群,但内存全在某一台机…

高并发缓存问题分析以及分布式锁的实现

一,场景概述: 在高并发的环境下,比如淘宝,京东不定时的促销活动,大量的用户访问会导致数据库的性能下降,进而有可能数据库宕机从而不能产生正常的服务,一般一个系统最大的性能瓶颈,就是数据库的io操作,如果发生大量的io那么他的问题也会随之而来。从数据库入手也是…

Python基础知识:整理13 利用pyecharts生成折线图

首先需要安装第三方包pyecharts 1 基础折线图 # 导包,导入Line功能构建折线图对象 from pyecharts.charts import Line # 折线图 from pyecharts.options import TitleOpts # 标题 from pyecharts.options import LegendOpts # 图例 from pyecharts.options im…

CSAPP阅读笔记-程序的机器级表示

程序的机器级表示 计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列的阶段生成机器…

微信小程序---如何创建分包

1.在项目根目录中,创建分包的根目录,名为subpkg,这个名字可以自己定义 2.在 pages.json 中,和 pages 节点平级的位置声明 subPackages 节点,用来定义分包相关的结构: 3.在分包目录,点击右键新建…

进程切换和是Linux2.6内核中进程调度的算法

正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 进程切换 进程并发就需要做到进程切换,一个CPU一套寄存器但是需要运行的进程有很多…

发票系统对接诺诺平台

诺诺平台判断设备不在线,导致开票失败 代码方面优化:调用接口的时候:是否先调用在线状态检测接口,确认开票设备是在线的状态 ,在调用诺诺平台,不在线直接拦截;例如:这个原理就类似于…

DIYgif表情包怎么做?gif表情包制作方法分享

Gif表情包是我们生活交流中必不可少的一种方式,能够表达自己的心情,也能够调节气氛。平时我们的gif表情包都是从网上下载或是别人发送的,那么我们怎么自己DIYgif表情包呢?这时候,用qq表情在线制作(https://…

在IntelliJ IDEA中集成SSM项目

SSM项目:springMVC为控制器、spring 为事务层、 MyBatis 负责持久 首先看下集成后项目结构: 1、打开IntelliJ IDEA,点击 "File" -> "New" -> "Project"。 点击Finish,此时我们就已经创建了一…

图书信息管理系统

1.程序组成: 源文件:test.cpp,源.cpp 头文件:test.h 2.功能实现: 系统以菜单方式工作,图书信息录入功能,图书信息浏览功能,查询功能删除功能价格排序修改图书信息程序加密 &…

手机更换社保证照片教程来啦,速速查收!

📌线上直接搞定很简单! 没有申领社保卡的姐妹们可以自己申领! 已有社保卡的姐妹可以先挂失然后再申领! 🙌教程 线上更换社保证: 1️⃣打开「掌上12333」,找到电子社保卡 2️⃣点击社保卡申领&am…

关于影视字幕翻译哪个公司比较专业?

现如今,影视剧作为跨文化交流的重要桥梁,正日益受到中国观众的热爱。因此也催生了影视字幕翻译的需求。那么,如何做好影视作品字幕翻译,哪个公司在影视字幕英译中更为专业? 我们知道,字幕翻译是涉外影视作品…

接口测试用例设计 - 实战篇

一.接口测试流程 1.需求讨论 2.需求评审 3.场景设计 4.数据准备 5.执行 二.分析接口文档中哪些元素 1.接口名称 2.接口地址 3.支持格式 4&#xff0…

Spring IOC 源码分析

​ 什么是 IoC IoC (Inversion of control )控制反转。它是一种思想不是一个技术实现。描述的是:Java开发领域对象的创建以及管理的问题。 例如:现有类A依赖于类B。传统的开发方式 :往往是在类A中手动通过new关键字…

C++设计模式

目录 一.概念 1.设计模式概念 2.底层思维与抽象思维 (1)底层思维 (2)抽象思维 3.面向对象 4.软件设计复杂性 (1)软件设计复杂的根本原因 (2)解决复杂性的方法 ① 分解 ②…

C++ Webserver从零开始:基础知识(四)——I/O复用

目录 前言 select系统调用 poll系统调用 epoll系统调用 epoll_create epoll_ctl epoll_wait LT和ET模式 EPOLLONESHOT事件 epoll和select/poll的区别 事件集处理方式 实现原理和效率 其他区别 前言 在第三章中我们大概地讲解了什么是I/O复用,即&#xf…

低聚糖市场分析:预计2029年将达到26亿美元

低聚糖又名寡糖( oligosaccharide)或少糖类,是一种新型功能性糖源,低聚糖集营养、保健、食疗于一体,广泛应用于食品、保健品、饮料、医药、饲料添加剂等领域。 在我国由于低聚糖行业的技术飞速进步,收率和质量明显提高&#xff0…

React关于类组件ts使用

类组件中定义了两个接口的类型, 分别约束自身数据state对象 与父组件通过props传递进来的数据。 在父组件使用子组件 并传递参数;

guns项目 Failed to register @ServerEndpoint class 问题

问题发生所在 socket-business-websocket-7.2.4.jar tomcat发布测试的时候报Failed to register ServerEndpoint class ,查询jar报主要是WebSocketServer 类加载有问题,把jar报中该类注掉,重新实现这个类,删除Component注解问题&…