7年测试从业经验,这篇文章将汇集自动化测试所需知识,拒绝标题党,水文。让所有想学习提升技术的能从文中获取有价值的知识。
在这个吃技术的IT行业来说,我之前每天做的是最基础点点点的功能测试工作,但是随着时间的消磨,我产生了对自我和岗位价值和意义的困惑,然后就开始学习python,java,学着搞自动化测试,不过说实话,自学的话很容易陷入迷茫。
在入门阶段,要有很强的自制力,后面学会了一些皮毛,跳槽去了阿里,平常比较好学,加班或者没什么项目做的时候都会自己看书,学敲代码,被领导赏识,派去总部核心技术团队学习了一个礼拜的ui自动化,是有专人带,然后回来就把公司app的自动化交给了我,这才算是真正入门自动化了
这仅仅是一个开始,在后来半年的时间里,我几乎把所有职场新人可能犯的错误都犯了个遍。架构师让我把最新开发出来的软件测试完,我闷头搞了两周,也没有得出任何结论;本来安排好的开发计划,由于我临时要回去写论文,搞得经理措手不及;参加项目座谈会,全程“打酱油”……那段时间,自己也很苦恼,几乎每天晚上11点多才走,很累很辛苦,但依然拿不到想要的结果。
蓦然回首,软件测试风风雨雨的这几年,自己从一个职场小白逐步成长为一名软测专家。我也荣幸在阿里的蚂蚁集团测试开发项目组工作过5年,搭建过platuo测试框架,thrift测试框架,自动化测试平台,这也是让我熟悉了python3,java,vue,陆陆续续也是在上市公司从0到1搭建过自动化测试框架,保障过亿级流量服务的质量工作。我发现测试团队中的很多同学在不停地重复犯着自己当年类似的错误。他们并不是不努力,到底是哪里出了问题?经过一段时间的观察与思考后,我想我找到了答案。那就是:我们大多数同学在工作中缺乏原则的指导。原则,犹如指引行动的“灯塔”,它连接着我们的价值观与行动。
每个人都应该有自己的原则,当我们需要作出选择时,一定要坚持以原则为中心。但是在现实生活中,我们往往缺少对原则的总结,对于很多人来说这是一门“只可意会不可言传”的玄学,是属于测试老司机的秘密,其实不然。“追求极致”是阿里的价值观。作为一名测试技术人员,我们应该如何践行呢?下面希望能够给大家带来一些启发,更好地指导我们的行动。
自动化测试一些问题
在学习自动化之前,大家需要先明确自动化测试是啥?
自动化测试是将人为测试情形转化为机器执行的过程。一般说来,测试用例设计后,由测试员根据测试用例中描述的规则一步步地进行测试,得到测试结果和预期结果的行为。在这里过程中,为了更好地节省人力、时间或硬件资源,提升测试效率,便加入了自动化测试的基本概念。从自动化测试的概念便可以看出学习自动化测试的重点:设计程序,也就是编写代码。
自动化测试的意义?
提升效率,减少重复工作:勿容置疑,最大的意义就是提高测试效率,手工测试的最大问题在于,面对快速迭代,无法快速完整的执行冒烟用例。节省人力成本:执行测试脚本可以实现无人值守,不限时间的测试。从而让测试人员可以做更多有意义事情,比如探索性测试等。保证每次测试的完整性和一致性。发现更多隐藏问题:手工测试无法验证系统的稳定性、可靠性等,需要通过工具等自动化手段,对系统进行压力测试、稳定性测试等。
测试金字塔
测试金字塔自上而下依次是UI测试、接口测试、单元测试。越到高层影响的范围越大,需要的成本越高。
在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。
越底层的自动化测试效率越高,价值越高。
测试金字塔中我们可以了解到,从下到上每个阶段对应的测试内容:
单元测试,就是代码测试阶段。
接口测试,可以进行的测试工作有接口测试、接口性能测试等。
UI阶段,业务功能测试、界面显示等测试。对应上面的测试内容,自动化测试的学习方向或者切入点一般有以下几类:
UI自动化测试接口自动化测试代码测试(单元测试)性能测试其它专项测试综合以上能力进阶为测试开发工程师。
自动化测试的类型分为两种
1)自动化性能测试;2)自动化功能测试。
性能测试主要是使用测试工具,Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试等等,因为这些无法用手工进行代替,所以必须自动化。
自动化功能测试:包括单元测试、接口测试、UI测试。主要是编写代码、脚本,让软件自动运行,发现缺陷,代替部分的手工测试。但一般只有大的项目才需要进行自动化,中小型项目不推荐使用自动化测试。
目前企业对自动化测试需求越来越多。测试人员想要在未来有更好的发展,非常需要通过掌握自动化技术来增加自己有竞争力。
自动化测试方向该如何走(学习路径)?
一、学习一门脚本语言
目前世界排名靠前的语言Java\Python。都是企业的需求语言,而随着python语言的全名普及化,应用在人工智能、大数据等热门领域,更是让python受到公司青睐。
二、掌握一些前端的知识
作为一个自动化测试攻城狮,总是需要做很多的元素定位,那么元素定位,我们急需要学习前端的一些基础知识。
三、数据库的学习
数据库是这个行业每一个从业者都应该学习的,不管是前端、后台、还是测试、项目经理、产品经理、运维人员都需要很明确的熟悉数据库相关操作,作为一名测试,更应该熟悉数据库的增删改查等命令。
四、web自动化测试
这个阶段的学习,大家应该更多的从以下两点去掌握。
1.如何从手工测试转为自动化测试工程师
2.如何通过自动化测试技术为企业的测试工作提高效率,降低成本,增强测试的充分性和完整性。
五、移动端自动化测试
手机端APP自动化测试,在业务基本稳定时,也是势在必行的一件事情。手机端自动化测试的技术还在不断的发展过程中。这个阶段的学习,是分基础、中级、高级的三个阶段的进行深入浅出的学习。
六、接口测试
这个阶段提供了各种不同协议,不同类型的接口项目,大家只有利用学习内容进行接口测试的实战。不光只是完成接口测试,而是要掌握全套的接口测试工作流程:1.接口需求测试分析;2.设计接口测试用例;3.使用工具开展接口测试;4.针对复杂接口编写代码进行接口测试;5.接口测试框架设计及实现;6.完成接口测试的持续集成。
七、性能测试
这个阶段的学习,从性能需求分析开始,到脚本设计实现,业务性能场景设计,性能故障定位以及性能优化都有实际的案例和项目进行实际操练。
上面就是我为大家整理出来的一份软件测试工程师发展方向知识架构体系图。希望大家能照着这个体系,完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。
资源分享
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享