想自学软件测试分为哪些方向自动化测试工具,有方向却不知道如何着手,请教专业人士给出合理具体的计划

由于历史原因大部分测试人员,最开始接触都是纯功能界面测试随着工作年限,会接触到一些常用测试工具比如抓包,数据库linux等。

我大学学的计算机专业有一萣的编程基础。我的软件测试分为哪些方向职业开始和大多数测试人员一样一开始在一家电商公司做软件功能测试。

有人留言问到我茬一线城市做功能测试,如果定个小目标想拿到年薪二十万,需要具备哪些技能

首先必须熟练整个产品的业务流程、业务是基础,这樣保证产品在快速迭代时、不仅保证新功能的完整性而且快速回归原有功能不受影响。

然后需要掌握一些常用测试工具来辅助测试:

Web端測试:浏览器开发者工具使用network、console控制台、兼容性测试

移动端app测试:(安卓/IOS/ipad端)测试全流程,兼容性测试、稳定性测试流畅度测试、adb常鼡命令

服务端:掌握接口测试、抓包工具使用、如何校验接口的完整性

Linux:常用shell命令,查看错误日志

数据库测试:熟悉数据库表结构掌握瑺用增删改查sql语句,便于分析测试结果

换句话说,如果你拿到一个新的产品测试功能你如果能通过数据库的表结构,和分析系统日志來快速的熟悉产品业务说明你的测试思维,功能测试能力已经非常优秀了

当时我掌握了以上技能点,在公司将工作效率提高了相对仳较轻松,这就导致我有充足的时间拾起编程语言,最初用的java语言然后学习各种自动化测试技术,当时觉得自动化测试特别有意思洏且挺神奇,激发了我浓厚的兴趣

后来发现Python语言越来越火,而且我发现python来做自动化和对于编程基础比较薄弱的测试工程师来说特别的合適

python还能用来爬虫,用python还能写一些定时脚本数据库脚本,效率非常高

我当时在公司得到了领导的信任,待遇方面工资加上年终奖年薪能达到二十万。

但是在由于当时公司规模和产品的局限性导致自动化测试始终未能应用到公司实战项目中。我觉得外面的世界很大洎动化已经流行而且越来越普及,我想要突破自己的测试技术瓶颈我毅然决然的跳槽一家公司专职做自动化测试工作,

于是我顶住压力不断的系统学习自动化测试技能,而且学以致用

我将公司产品前后端的自动化测试全部落地实现。

那些自动化脚本真正成为公司资产在每次上线回归带来的收益远超出我的预期。

并且定时在公司的技术分享会展示效果那种从0到1的成就感非常难忘。

后面负责自动化测試团队工作核心框架搭建

让我见识到技术的魅力,技术功底的提升能让整个人非常自信

所以自动测试给我带来的收益不仅仅是待遇的提高,包括中间做自动化测试遇到的坑解决问题的思路,以及技术的扩展增长了见识。

最终形成了一套知识框架体系得到一套有效落地的自动化测试方案。

自动化测试没用的误解:

自动化是测试工程师一个永恒的话题,关于有人经常问到我:

至于"自动化测试真的可鉯提高效率吗我觉得不行”,我觉得这是对自动化测试意义的最大的误解

一个知识比如自动化你觉?得?没有?用,是因?为你不?會而你不会的东西,往往是你的雷区

那我们为什么又要做自动化测试我认为最大的意义在于,对测试人员的能力的固化

脚本可以代表测试人员的测试方法,通过脚本就把在原来在人身上的能力固化为组织的资产。

比如:造测试数据跑大量数据库脚本,页面服务监控等

自动化测试脚本能让不同的团队即使不懂这个功能的人,也可以通过测试脚本来分享这种能力这才是自动化的意义。

后来一个机緣巧合朋友推荐我去一家金融公司做测试开发,负责开发公司定制化的测试质量平台

这对于我来说也是一个挑战,新的领域测试开發在一线城市非常吃香。当时的待遇比初、中级开发工程师要高

到岗后顶住压力,不断的系统学习测试开发技能而且学以致用。技术架构采用的是前后端分享包括Python的后端开发框架Flask,前端框架vue,elementUI组件等

坚持做了几年的测试开发真实的体会到测试开发等于测试全周期的工莋,包括产品功能业务熟悉

测试平台的需求设计,平台前后端研发平台的自测,给到测试部门几十号人的推广、培训产品使用、运营

所以测试开发的大前提是功能测试经验丰富,接口自动化UI自动化非常熟练,不然很难以开展测试开发工作

现在测试行业的的趋势,伱去面试任何级别的测试工程师都会问你是否会自动化测试所以自动化测试已经是必备技能,而不是加分项

换句话说,会用开源的测試工具不足以在公司涨薪或者跳槽至一线互联网大厂因为真正企业自动化测试落地肯定是一个团队在做,

当你熟悉使用这些开源框架之後你会发现有些框架之间是相通的,所以基于这些开源框架我们打造一个属于自己的测试框架,

可以根据公司实际测试需求自主封装適合项目的测试框架落地实用。建立自己的技术体系得到一套落地有效的自动化测试方案,从青铜变身王者

这样让我们自动化团队將更多的精力放在测试用例设计本身上面,达到提高产品质量提升效率的目的

在这十年测试经验,我看到了太多想提升测试技术而没有奣确方向的人深刻的体会到测试人员的技术痛点,

以及测试这个角色在互联网公司的待遇和地位远不及其他岗位甚至还是会有很多人會认为测试在公司随时能被取代,可有可无

我的初衷很简单:只为培养一线互联网高级测试工程师而生,愿景是服务好每一位学员帮助测试工程师全方位提升综合技能,提升在企业的待遇和地位

全部以我之前在企业真实项目实战去驱动理论知识点丰富的实战场景演练,全方位提升测试技术建立一套属于自己的技术体系。

目前我一直不断学习和优化技术栈保证是市面最先进和主流的测试技术,我想嘚大家学的就是市场所需将知识和技术变现

由于历史原因,大部分测试人员最开始接触都是纯功能界面测试,随着工作年限会接触箌一些常用测试工具,比如抓包数据库,linux等

但是有个比较常见的问题,由于现在企业大多数都是敏捷开发模式容易陷入版本快速迭玳中,

以至于没有时间精力再去额外学习一些高级和主流的测试技术如某种编程语言、自动化测试工具、测试框架搭建、测试平台研发

即使挤时间强迫自己学习,也不知道从哪里开始入手那些碎片化的东西,只能让你了解很难很难消化,

当你要形成自己的输出用自巳的思路和技术来做项目的时候,你要回到那个知识框架里面去学习

不要碎片化信息学习那不叫学习,要有决策性学习系统的学习,學习解决问题的思路

比如自动化测试,已经是测试工程师的必备技能搭建自动化测试框架也是测试人员能力分水岭的体现。

那么如何來全面的学习自动化测试呢

上面就是我为大家整理出来的一份软件测试分为哪些方向工程师发展方向知识架构体系图。希望大家能照着這个体系在3-4年内完成这样一个体系的构建可以说,这个过程会让你痛不欲生但只要你熬过去了。以后的生活就轻松很多正所谓万事開头难,只要迈出了第一步你就已经成功了一半,等到完成之后再回顾这一段路程的时候你肯定会感慨良多。

如果你不想再体验一次洎学时找不到资料没人解答问题,坚持几天便放弃的感受的话可以关注我一起讨论。

加油吧测试人!路就在脚下,成功就在明天!

未来的你肯定会感谢现在拼命的自己!

}

目前行业内对于自动化测试的还昰存在很多误区的管理层为了自动化而去自动化,学习者学到最后只会用一些工具

关于学习路线,我放在后面讲在此之前必须先聊┅下行业内做自动化测试的现状:

  • 管理层在引入自动化测试之前必须要思考的三个问题
  • 送给自动化测试学习者的6条建议
  • 自动化测试从入门箌精通快速进阶路线(对标大厂)

·········密······封······线······内······禁······止······答······题·········

如果你遇到了一个外行的领导,可能自动化会搞得一塌糊涂

测试经理或者测试总监在引入自动化之前不能简单化和孤立化的去看待自动化测试,不能粗暴的幻想引入自动化一定能够提高效率减少成本,因此一定要思考好3个问题:

  • 不是所有的项目都适合直接引入自動化测试
  • 应该在什么时间介入自动化测试
  • 最终项目的自动化程度和自动化率

什么样的项目适合自动化:回归测试为主的项目长期需要做支持维护;覆盖率测试;压力测试。

自动化测试介入的时间:在项目的初期可能就不太适合因为接口和用户界面没有稳定,代码来频繁妀动维护成本会非常的高;到了项目的后期和维护阶段,自动化介入为回归测试做准备。

自动化程度和自动化率:项目早期可能不太適合用自动化但是可以选用某些环节,比如环境的搭建、稳定的公用接口、软件的部署等这些都是比较稳定的。当然也可以根据具体嘚项目类型进行不同的调整

如果管理层在没有思考过这3个问题就盲目引入自动化测试,说明在领导认知层面是存在一些问题的:

1、盲目幻想认为自动化测试能够省钱,想着搞起来自动化省掉多少多少人力成本;

2、不清楚自动化测试目标是什么,对于达到目标所要进行嘚投入也没有计划;

3、自动化测试如果做的成功的话是可以节省成本和提高产品质量,但是却把节省人力成本当做核心目标这样的对於项目来说是致命的;

4、自动化测试写好一次,能够用很多次没有必要花很多时间去改代码;

如果有这种情况出现,说明你遇到了一个啥也不懂外加异想天开的领导

基于我的经验,送给想要学习自动化测试的同学6条建议

第一条建议:先学习编程语言然后再接触自动化笁具。

语言选择上Java或者Python都是可以的可以先从Python入手,之后再开始Java在学习语言的过程中,一定要忘掉你是做测试的把自己当成开发,系統的去学相关的编程知识因为语言水平的高低,很大程度上就决定了自动化水平的高低

第二条建议:打好基础,而不是本末倒置的学習自动化测试工具

不理解http协议就不会理解loadrunner、fiddler、soapUI这些工具;不理解HTML,就不会理解firebug所以基础打好了,才会事半功倍

第三条建议:清晰的認清自己,明确自己的目标

说白了咱干什么事情之前肯定要先看看自己有几斤几两对吧,先评估一下自己现在的能力水平然后再看下洎己能够投入什么样的资源(精力、时间、资金)去学习,这样才会知道什么样的内容自己能够搞明白哪个阶段要请教大牛,别整到最後越学越迷茫;其次就是认清自己能力之后就要给自己定好合理的目标,多长时间达到什么样的水平

第四条建议:选择好切入点,设計好对自己帮助最大的方案

  • 辅助测试脚本:以ShellPython为主来简化重复的工作,过滤日志等

当然这些都是基本的实现方案别的先不介绍。如果剛开始接触我建议是选择语言之后,然后从接口测试入手然后再学习web和APP自动化。

第五条建议:贪多嚼不烂学会举一反三

新手上路,嫆易着急啥都想学,这样就容易混淆也不好消化。很多地方都是相通的代码架构、用例管理、等都可以举一反三,既可以提升你的學习效率也不会混淆。最重要的是不能纸上谈兵一定要动手去实践。

第六条建议:不要受限于工具多用开源

在测试行业,自动化测試工具有很多但是大公司趋向于用开源的框架和工具,然后定制适合自己的测试方案学着用一些开源的例如Webdriver, Appium等去搭建自己的自动化测試工程,然后掌握整体的自动化工作原理为以后能够搭建自己的工具平台做准备,毕竟搞定自动化可不是会使用几个工具那么简单。

洎动化测试的最高境界:开发测试工具、设计自动化框架让别人用。

自动化测试学习终极路线从语言入手,搞定自动化测试

基本的语訁知识语法、函数、模块、输入与输出、面向对象编程
脚本编写、标准库、多线程、第三方库,外部数据处理

移动端APP自动化测试

appium使用、錄制、元素定位方法
APP控件定位、交互参数化用例
appium问题定位分析、源码分析、二次封装
接口自动化测试框架request
自动化测试从入门到精通

如果伱按照这这个学习路线把自动化测试吃透,那么月薪在15-25K是很轻松的事情同时具备了代码能力,也就可以继续向测试开发去努力了!

无论伱在测试团队中是什么样的身份无论你对于自动化测试是什么样的认知,也无论你对自动化测试是爱还是恨自动化都是你从手工测试轉为测试开发的必经之路。

或许你会听到自动化测试成本高、效果差、效率低等负面的反馈但你要清晰的知道,这都不是自动化测试的問题对于某种工具,某个方案最终的效果还是由实施者来去决定的。

我们能够做到的是正视自动化测试找准方法,不断的提升自己!

文章整理不易欢迎各位朋友点赞!

更多技术干货请关注霍格沃兹测试学院官方机构号:

}

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


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

为什么要进行自动化测试

为什么进行自动化测试,答案要从自动测试的收益和人肉测试的荿本说起:

  • a. 自动化测试节约成本(根据项目)
    毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本)可以让机器没日没夜的執行一些重复劳动.
  • b.有些测试项目手工很难实现(手工成本较高)
    比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模擬.
  • 避免测试人员因重复劳动产生厌倦

  • 保证每次测试地一致性和可重复性

  • 更好的利用无人值守时间

  • 进行一些手工无法进行的测试

  • 系统开发时間不一定能缩短

  • 没有手工测试发现缺陷多

什么样的项目适合做自动化测试?

有以下几个特点的项目比较适合自动化测试:

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

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

  • 这个问题是写给想要做自动化測试的人或许你以为软件测试分为哪些方向的门槛很低,低到任何人都可以做随便点点就可以了,这个行业太low了所以你想做自动化測试,提升自己的逼格我想说手工测试并不low,如果让一个什么都不懂一点业务基础都没有的人去做测试,能测出来问题吗不要忽略伱的业务知识储备.
    你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代

扯叻这么多,究竟什么什么样的人能做自动化测试

  • b. 熟悉被测系统 比如你是web测试,你就得懂js、css、html、xpath 你是移动端测试你就得具备Android
    开发基础和iOS開发基础,会debug app 你是 C/S测试你就要很熟悉TCP、IP协议
  • d. 善于学习达到知其然知其所以然
    IT行业变化太快,每隔一段时间就会出现一些新兴的东西也會出现原来很火的东西逐渐没落,谁也无法预测
    曾经诺基亚还是手机霸主,靠塞班一统天下然而不思进取,落得个卖身求生存.
    软件行業从桌面软件到web端又从web端迁移到移动端,谁也不知道下一个是什么而我们作为软件行业的从业者,不能因为那些很火的东西不火了而讓自己没落一个人最为核
    心的能力就是学习能力,如果你善于学习你就不必担心这些变迁,因为你可以毫无压力的迁移selenium的原理你掌握了,学习appium简直小菜一碟因为appium使用的是
    selenium WebDriver protocol .如果你能做到知其然知其所以然,你也可以造轮子改造appium,毕竟现在很多功能需要完善

如果你沒有达到以上的几点,建议你还是做手工测试吧。

如果你有代码基础想要从事自动化测试怎么去学习?

很多初学者很纠结学qtp还是学selenium

我的建议是学selenium,开源的免费的,你可以下载源码研究去了解其原理,再者现在selenium的资料不要太多随便搜搜一大堆,学起来比较轻松

不建議学selenium IDE录制,当然你可以通过录制一些然后转换为相应的脚本去学习等你学好了selenium, 再去学appium你会有一种天然的似曾相识为什么不建议学QTP/UFT?洇为收费/臃肿/现在做桌面软件测试分为哪些方向的工作已经不太多了

关于买书,不建议买书很多书已经过时了,并且质量渣渣你买叻那些书中的code已经不能用了,如果你真的想学就去官网找example,去相应的社区和群交流或者直接看API/源码.

新人学习自动化测试要:

  • 少买书,哆看测试框架的document多去社区交流

  • 不断学习,提升自己发现问题解决问题的能力(不做伸手党,多动手)


不管你是刚入门的小白、还没入門的群众、已经入门很久的前辈不满足现在的工作情况,你想升值加薪想弯道超车,都可以加我的群:咱们会提供一套专门的测试學习路线规划,带领你实现人生逆袭财富自由。当然咱们也有免费的资料可以提供给喜欢自学的小伙伴,所以欢迎大家踊跃加群~我会┅一为大家通过的(拒绝三天打鱼两天晒网)

合理利用起自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻使劲拼,给未来的自己一个交代

}

我要回帖

更多关于 软件测试分为哪些方向 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信