新手如何做自动化测试

最近接触了一些新手。他们很着急做自动化测试。有的说是领导要求,有的说是想脱离手工重复劳动。

有的说是做自动化可以达到高薪。

也没什么基础,初生牛犊不怕虎,就开始干了。

上班时间,微信上不停的有人ping我:这个问题该怎么解决啊?我这哪里错了?

我稍微回答晚一点,估计就无形把人给得罪了,拉没拉黑我不知道。

同学,我上班很忙的!不是我不愿意帮你,你首先得把问题描述清楚吧!

即便我教你,也只能点到为止,不可能手把手教,无论做什么事,最后你只能靠自己。就算我前面教了你100步,你如果不会自己独立思考,独立行走,后面的路你还是不停的跌倒,还会怨我不尽心尽力。

虽然我做过很多自动化测试,但目前还是专注在业务这块,说白了也就是做手工测试。我也深知做重复劳动的痛苦,有很多时候会思考如何将其自动化,解放双手。

那么我们就来聊一聊自动化测试。

自动化测试不是万金油

目前由于各个因素的局限,自动化测试不能完全替代手工测试。(如果代替了,那我们也就失业了。)

有以下几个方面:

  • 有很多业务测试需要人工校验的。有些公司的业务,是需要很强的行业背景知识的,或者有些项目维护了许久,业务复杂。还有些公司的业务,需要人工干预,自动化实现起来有偏差。
  • 有些项目根本不适合自动化。在敏捷快速迭代下,如果等你实现自动化测试,估计黄花菜都凉了。能实现自动化的部分,基本上都是周期长,比较稳定,而且比较规则有规律,容易实现。
  • 投入大,产出小,要长期维护。有些项目,耗费了大量时间和人力,但是查不出什么bug。如果项目改动,还要要维护。投入居大,但产出小。为什么有些公司还要搞?来KPI快哈。
  • 技术因素。有些部分,现有的技术,实现起来困难。虽然现在很多专家或者讲座,把自动化吹得很神。但很多自动化,实现起来是有难度的。

你需要具备做自动化测试的能力

为什么要实现自动化? 实现自动化的目的,就是将人工从繁琐的重复劳动中解救出来,提升测试效率。

在做自动化之前,你需要了解一些自动化测试类型,以及适合的场景。

接口测试: 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。

性能测试: 模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试主要是找瓶颈,以及可以优化的点。

UI自动化: 模拟手工操作,来达到检验被测试对象和期望结果的比较。由于UI不稳定,实现起来难度比较大。一般用在回归测试,让测试人员花更多的精力去测试新feature.
代码扫描:通过定义一些语法规则,对代码进行静态扫描,以其找出潜在的语法错误及风险。
安全漏洞扫描:通过扫描等手段对指定的被测对象的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。一般的商业行为,数据对安全性要求高。

数据统计及分析:对一些数据,日志等进行归纳总结,以及趋势研判,来达到对可能潜在风险的控制。

工具开发: 辅助提高效率的一些手段。要能推广起来,实现真正的价值。

懂一门及以上的编程语言

编程语言是你手中的利剑,如果你没有利剑,赤手空拳肯定很吃亏。

市面上是有些实现自动化测试的工具,但是大多数都是商业行为。除非你公司财大气粗不在乎,不然还得测试人员自己来实现。

对于测试人员,可以从java,python,javescript中选一种自己喜欢的语言来作为自己的看家本领,不一定要学得很深。但是基本功需要有的,即便出了小问题,也能自行搜索解决。

了解至少一种测试框架

你需要一个框架来组织你的自动化代码。虽然你可以自己写。但是不要花很多精力来重复造轮子。有很多免费开源的,可以直接用。

如果你写case,需要考虑:

  • 如很让组织代码,让代码更容易理解,便于维护?
  • 如何管理执行case?
  • 如何比对实际值与期望值?
  • 如何管理数据?
  • 如何处理异常?重跑机制?
  • 如何生成测试报告?
  • 市面上已经有很多优秀的开源框架,简单熟悉以下就可以用。
  • 如java 有testng等
  • python有 ptest,unittest,nose等
  • javascript 有mocha等。

“我之所以看的远,是因为我站在巨人的肩膀上”

多看别人的代码

快速上手的一个方法是,从模仿到自主设计的过程。

比如全球最大同性交友网站,github上就有很多优秀的代码。

你可以先读懂别人的代码,理会其精髓,为自己所用。

对于自动化测试,我的理解是先把代码敲熟练了。如果一个工具或者代码不能掌握到得心应手的程度,那么做起项目来应该是困难重重的。还有,自己多写代码,多去理解错误提示,很多问题你自己就能顿悟了。

多练,多思考

做自动化测试其实挺难的,会有很多困难,比如没有时间,比如东西总是在变。如果你能力足够强大的话,这些对你来说总会有办法去克服。比如UI老是变,就可以封装一些page object的思想,让UI修改变得容易一些。还有用例老是跑出错,不如在代码里加入自动截图,一眼就能定位问题,代码维护起来自然就容易不少。

没有一个成功的自动化项目是菜鸟做成功的,当你做成功了一个项目以后,你自然就从菜鸟变成了高手。

在日常手工测试中,你要多思考,哪些地方是可以实现自动化的?哪些地方是值得做自动化的?哪些地方,做自动化会带来很多的收益?

然后定个小目标,一步一步去实现它。

培养解决问题的能力

遇到问题不要害怕,去网上搜一下,很多人会遇到同样的问题,大概看一下别人怎么解决的,然后自己举一反三,不仅解决了问题,而且还能有所进步,这才是正道。

提高自己的学习能力与纠错能力,遇事不慌,有一套比较好的解决问题的方法,坚持下去,慢慢的改进,慢慢的提升自己。

当你积累到一定的程度,你会发现有个质的飞跃,一般的问题都难不到你了。

如何下手

自动化用例从哪里来?

从手工用例中来,提取那些稳定功能,反复手工要执行的部分,将其自动化。

自动化用例要测到多细?

这要看你有多少时间和人力。还有要实现的部分的重要程度,据情况而定。

我的项目老是在改UI,是不是不适合自动化?

你要权衡一下值不值得做。如果做,是不是可以先做接口的,毕竟接口稳定一些,收效更大。

啰嗦了这么多,希望对你有一点点帮助!

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们的软件测试交流:313782132,里面有各种软件测试资料和技术交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值