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

 接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作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/testngrobot framework/cucumberd. 善于学习,达到知其然知其所以然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.mzph.cn/news/627406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python面试题

python装饰器 装饰器的本质就是一个函数能为其它函数增加额外功能 装饰器不加参数 #coding:utf-8 from time import time#装饰器函数 def elapsed(target):"统计目标函数执行的耗时"def decorated(*args,**kwargs):start time()r target(*args,**kwargs)end tim…

NXP-RT1176开发(一)——环境搭建(MCUXpressoIDE/VSCode)

目录 1. 安装IDE 1.1 官方开发的IDE软件 1.2 Config工具下载 1.3 说明(需先有SDK) 2. 下载SDK 3. VScode环境下编译 3.1 安装插件 3.2 确保本地有交叉编译工具链和CMAKE 3.3 加载本地SDK 3.4 导入例程编译 1. 安装IDE 该处理器编译规则可以MDK…

FlinkAPI开发之水位线(Watermark)

案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 Flink中的时间语义 哪种时间语义更重要 从《星球大战》说起 数据处理系统中的时间语义 在实际应用中&#xff0c…

vue cli 配置了productionSourceMap: true 开启source-map 没有生成map文件

因为UglifyJsPlugin导致生成map失败,可以将其注释即可 也可以加上 new UglifyJsPlugin({sourceMap:true })

用python实现给出关键字查找并标注pdf文件中关键字

要在Python中标注PDF文件中的关键字,可以使用Python的PDFMiner库和Python的matplotlib库。 首先,需要安装这两个库。可以使用pip命令进行安装: shell 复制代码 pip install pdfminer.six matplotlib 接下来,可以使用以下代码实现…

基于Java+SSM运动会管理系统详细设计和实现【附源码】

基于JavaSSM运动会管理系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 …

java解析json复杂数据的第四种思路

文章目录 一、概述二、数据预览1. 接口json数据 三、代码实现1. 核心代码2. 字符串替换结果3. 运行结果 一、概述 接前两篇 java解析json复杂数据的两种思路 java解析json复杂数据的第三种思路 我们已经有了解析json数据的几种思路,下面介绍的方法是最少依赖情况下…

C++写二进制文件

源文件 #include <iostream> #include <fstream> #include <sstream> #include <cmath>void convert2() {// 打开输入文本文件std::ifstream inputFile("mask.txt");// 打开输出二进制文件std::ofstream outputFile("mask.dat", …

Dubbo分层设计之Serialize层

前言 Dubbo 框架采用 微内核 插件 的基本设计原则&#xff0c;自身功能几乎也都通过 SPI 扩展点实现&#xff0c;可以方便地被用户自由扩展和更换。 Dubbo 框架采用分层设计&#xff0c;自上而下共分为十层&#xff0c;各层均为单向依赖&#xff0c;每一层都可以剥离上层被复…

GO——单元测试(test)

go test用来做什么 做单元测试&#xff0c;测试函数是否符合预期 go test在哪个包 testing 如何使用 参考&#xff1a; https://geektutu.com/post/quick-go-test.html 以my_func.go中的Add方法为例 在同一个文件夹下添加my_func_test.go文件 测试文件以_test.go为结尾里…

远程视频会议卡顿!如何改善企业网络连接质量?

您的企业是否有这样的组网挑战&#xff1f; 要将不同分公司/店铺的监控画面汇总到服务器或者平台系统上&#xff0c;却由于地理位置过于分散&#xff0c;而且监控部署环境复杂多样&#xff0c;不同分公司/店铺部署的网络也不一样&#xff0c;有些甚至还是家用网络&#xff0c;…

现在00后开发人员不晓得加班为何事嘛?

我招了两个做HTML5开端开发的人员&#xff0c;是从培训机构招来的&#xff0c;按理说他们应该很努学很用样才对的。他们上班第一天我就跟他们讲&#xff0c;我们不需要上、下班打卡&#xff1b;你们也不必太过担心迟到或早退。因为我们搞开发的人员首先是按自己的工作任务完成情…

【部署LLaMa到自己的Linux服务器】

部署LLaMa到自己的Linux服务器 1、Llama2 项目获取方法1&#xff1a;有git可以直接克隆到本地方法2&#xff1a;直接下载 2、LLama2 项目部署3、申请Llama2许可4、下载模型权重5、运行 1、Llama2 项目获取 方法1&#xff1a;有git可以直接克隆到本地 创建一个空文件夹然后鼠标…

蓝牙网关G602

一、产品概述 G602是一款支持蓝牙4.2/5.0的蓝牙网关&#xff0c;主处理器采用580MHz的MIPS24KEc处理器&#xff0c;DRAM为DDR2 64MB&#xff0c;16MB FLASH。G602蓝牙网关集成PA和LNA&#xff0c;蓝牙扫描和连接距离可以达到100米以上&#xff0c;极大的增加了覆盖范围&#x…

CORS漏洞学习

CORS漏洞属于一个协议漏洞&#xff0c;具体是由于同源策略的设置问题触发的漏洞&#xff0c;漏洞利用条件较为苛刻&#xff0c;但实战中也常见。 首先要了解同源策略 什么是同源策略&#xff1f; 同源策略是一种Web浏览器安全机制&#xff0c;旨在防止网站相互攻击。 同源策…

LeetCode刷题——394. 字符串解码(HOT100)

✊✊✊&#x1f308;大家好&#xff01;本篇文章将较详细介绍栈的题目394. 字符串解码&#xff0c;提供栈和递归两种解法。代码语言为&#xff1a;C代码&#x1f607;。 &#x1f3a1;导航小助手&#x1f3a1; 394. 字符串解码&#x1f512;1、题目&#xff1a;☀️2、思路&…

数学建模-Matlab R2022a安装步骤

软件介绍 MATLAB是一款商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境&#xff0c;主要包括MATLAB和Simulink两大部分&#xff0c;可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程…

2024年【危险化学品经营单位主要负责人】考试报名及危险化学品经营单位主要负责人考试资料

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品经营单位主要负责人考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新危险化学品经营单位主要负责人考试资料题目及答案&#xff01;多做几遍&#xff0c;其实通过危险化学品经营单位主要负责…

NeRF 其三:Instant-NGP

NeRF 其三&#xff1a;Instant-NGP 1. 球谐函数1.1 NeRF 中球谐函数的作用1.2 球谐函数1.2.1 当阶数 j 0 j0 j0 时&#xff0c; m 0 m0 m0&#xff1a;1.2.2 当阶数 j 1 j1 j1 时&#xff0c; m 0 m0 m0&#xff1a;1.2.3 当阶数 j 1 j1 j1 时&#xff0c; m 1 m1 m1&…

SSL弱加密算法的漏洞研究

文章目录 一、什么是 SSL二、SSL/TLS 协议作用三、SSL/TLS 协议的基本思路四、如何保证公钥不被篡改?五、SSLSCAN工具1、下载和安装2、使用六、免责声明一、什么是 SSL SSL 代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和 Web 服务器之间发送的数据的协议。…