扫地大妈都可以做软件测试?软件测试真的很简单吗?

发布于:2023-01-21 ⋅ 阅读:(512) ⋅ 点赞:(0)

有个不是很好笑的笑话,说的是某某公司扫地的大妈都可以做软件测试,某某公司看门的大爷都可以做软件测试。导致现在还有很多人对测试的认知都停留在这个层面上。想当初,个人也靠着惠普的三大件(估计很多人都不知道,LR、QTP、QC),混了份不错的工作。伴随着对测试工作的不断深入(在这个行业混迹了10多年),越发感觉自己不懂的越来越多,测试,真的不简单。

外人眼中的测试

主要有两类观点,1种是测试不就是点点么,没什么技术含量。还有1种是测试为什么要懂代码?如果代码能力很好,为什么不去做开发,还“赖”在测试圈?

先说说第一种:测试初期,确实大部分的工作都是在测试执行中度过的,这个时候点点点是我们工作的大部分内容。但是再往后呢,为什么要这么点,哪些可以点,哪些可以不点?有些人思考了,有些人没有,于是就产生了分层,测试思维的差距就出来了。然后有人会去想,为什么要手动点?多累啊,能不能自动点?能不能快速点?自动化就自然而然的出现了,然后带来更多地思考,带来更多的专项,也给测试带来了更多的可能。所以,作为测试人,不要看轻自己,外行人的评价并不能说明什么。很多人还觉得造车简单呢,不就一个发动机+4个轮子的事么。

再说说第二点:测试人员的代码能力强了,就一定要转开发么?本人菜炒得还不错,那我就要放弃测试去做厨师么?测试多个能力伴身不香么?开发也不见得比测试好混啊。从薪资上来说,同等能力的测试不会比开发差太多。如果你用中等开发能力的人,来和基础测试的人做对比,那你不是在比较,是在耍流氓。

真正的测试

1、初级测试工程师

这里说的测试工程师,是主攻软件的“测试”领域。也就是专业对接和负责软件的BUG查找、测试业务的执行、测试用例设计、测试计划的编写、测试报告生成等等。

这类测试工程师需要掌握的技能如下:

① 软件测试的整理测试流程和概念,熟练软件测试的用例设计和编写;

② 熟练掌握几种常见的去缺陷管理工具(禅道、SVN、Testhub、Jira等),熟悉缺陷的定义标准和系统化的测试计划编写等;

③ 掌握Web自动化测试、app自动化测试的测试环境搭建和测试方法;

④ 掌握接口自动化测试的Postman、Jmeter工具的使用,同时深度了解HTTP/HTTPS协议的原理和作用。

薪资水平:6-12K 左右

这个阶段的测试员,一般是刚学习软测到可以就业的程度。大部分都是掌握了软件测试理论概念、常见的测试流程和测试类型;熟练测试用例的设计和编写;对软件的生命周期、工作流程有大致的了解。知道如何分析软件的用户需求点;掌握一些常见的缺陷定义和缺陷报告的生成。有一些实战项目经验的可能对禅道、SVN、git等测试相关的工具有一定的了解和使用经验。

再稍微优秀一些的自动化测试工程师,还掌握了Linux、Sql数据库、前端HTML等基本的计算机技能。并且了解接口测试的概念和WEB+selenium的测试环境搭建和初步测试,app移动端测试同样也需要掌握一些。

2、中级测试工程师

对于现在大多数的互联网公司而言,中级自动化测试工程需要是他们非常渴求的人才。这类人才大多都掌握了一门或者多门编程开发语言(Python、Java、C++等)。中级测试工程师能支撑起整个企业测试部门的完整测试体系搭建,包括针对企业产品研发的自动化测试脚本,对于软件的性能、压测、UI、接口、前后端业务等等做全方位测试设计和管理。

中级测试工程师需要掌握的技能如下:

① 至少掌握一门编程语言,Python、Java、C++都可以。没有编程基础的我们建议选择Python,因为Python入门难度和学习周期相对其他开发语言更加容易一些,对新手比较友好,而且Python在测试领域的应用极为广泛;

② 熟练掌握常见的自动化测试框架的环境搭建(testNG+selenium+appium+requests等);

③ 熟练掌握app移动自动化测试的完整流程和测试方法,尤其要熟练掌握Monkey的使用;

④ 熟练掌握Python+requests的测试框架的开发;

⑤ 能够独立完成基于selenium的完整web自动化测试的框架开发;

⑥ 深度掌握性能测试中Jmeter和Loadrunner的拓展用法,能独立完成app/WEB的性能测试。

薪资水平:15-25K 左右

这个阶段的测试员,一般是刚学习软测到可以就业的程度。大部分都是掌握了软件测试理论概念、常见的测试流程和测试类型;熟练测试用例的设计和编写;对软件的生命周期、工作流程有大致的了解。知道如何分析软件的用户需求点;掌握一些常见的缺陷定义和缺陷报告的生成。有一些实战项目经验的可能对禅道、SVN、git等测试相关的工具有一定的了解和使用经验。

再稍微优秀一些的自动化测试工程师,还掌握了Linux、Sql数据库、前端HTML等基本的计算机技能。并且了解接口测试的概念和WEB+selenium的测试环境搭建和初步测试,app移动端测试同样也需要掌握一些。

3、高级测试开发工程师+架构师

高级测试开发工程师基本上可以称得上整个企业产品+测试部门的一把手。这类岗位一般都是以管理者居多。本身负责团队的运作、软件整体的测试流程把控、白盒测试的体系搭建,企业大型自动化测试平台的开发和管理,以及整个测试体系的质量管理和监控。

① 对软件测试的整体流程和细节做到烂熟于心的地步,这类经验一定是经过无数的测试实战方能生成的;

② 熟练各类型的软件测试(app、小程序、前后端、WEB、sever等等)方法和扎实的经验,并且对各类型市面上的测试工具运用自如;

③ 对CD/CI有比较熟练的实战经验,能熟练的使用DevOps,具有完善的测试架构能力;

④ 有熟练的编程开发能力,深谙软件的底层代码逻辑和结构,能够独立开发、管理和完善自动化测试框架;

⑤ 拥有优秀的团队领导能力,合理安排测试团队的人员组织和安排。

薪资水平:30-50W 左右年薪

测试工程师因其工作的特殊性,需要掌握产品的用户需求、设计需求以及产品的底层结构等各方面,测试人员会从用户的角度出发,去看待软件产品各方面可能存在的不利体验和准确诉求。

所以经验比较足的测试人员,对产品的各个维度都能做整体化的把控。比如分析产品的用户需求和体验,以用户的角度来把握产品的定位和功能的迭代等等。可以说从测试转为产品经理的人,一定是一名非常有全局性、前瞻性的优秀产品经理或者测试经理。

我的入门

我在刚入公司的时候被人称小陈,作为刚入行的测试新人,每天除了执行老员工给的测试用例外,还会主动地去以下几件事,来帮助自己成长:

写测试用例:先看别人写的用例,然后通过自己的思考,也尝试去写测试用例,从用户的角度,从可用性的角度,从体验的角度去补充和完善更多的用例,同时培养独立思考的能力,慢慢培养自己测试思维。

记录BUG:认真记录自己发现的BUG,尽可能地去还原步骤,探查原因,多问问开发为什么会这样,是什么原因引起的。同时多看看同事记录的BUG,想想他们是通过什么路径发现的这些BUG。

做测试总结:定期做测试总结,看看自己学到了些什么新技能,还是对业务有了更深的了解,画画业务流程图、数据流向图、系统架构图等等。

学习测试技术:多混论坛,看看别人在玩什么,看看又出了哪些工具。哪些能帮助到自己。反正还年轻,最不缺的就是时间,折腾呗。得益于国内的各种破解氛围,基本上都主流的软件都能下,一步步跟着别人学习,并在自己测试的系统上去尝试,去验证,公司的项目就是好就地试验对象。

看看代码:有机会,就去看看开发写的代码,看不懂也没什么关系,多看,多问。现在系统性地学习某种开发语言的视频和博客不要太多。就这样,慢慢地我变成了陈工。

不断升级

经过几年的磨练,我逐渐变成别人眼中的陈工,有了自己的测试思维,能够更准确的定位BUG根因,和开发逐步变成了朋友。于是,我又开始了思考。

测试充分性:测试的时间总是被压缩,延期是不可能延期的,怎么办呢?有没有什么更好的测试策略,可以用更少的用例,覆盖更多的场景?能不能在测试前期做更多的准备,以便在测试执行的过程中能够更顺利些。

测试有效性:当下团队写的测试用例是否全是有效的呢?如何给臃肿的回归测试用例瘦身呢?没有发现BUG的用例,是无效用例?那些需要很复杂的步骤才能复现BUG是否是优质BUG?测试是否覆盖全了呢?哪些没有测试到,依据是什么?

关于BUG:都到测试阶段了,BUG的修复成本太高,能不能早点发现BUG呢?经过这么长时间的测试积累了,BUG一般会聚集在哪些功能点上?能不能提供一些典型的BUG给到开发,让他们多注意下,提升一下提测质量?BUG的根因是什么,如何更好的避免这些BUG的出现?

关于自动化:测试金字塔提到的测试分层,应该如何落地到团队中去呢?每一层应该关注什么?重点测试什么?哪些可以让开发去执行验证。在什么场景下开展对应的自动化测试才是合理有效的?如何自动化产生真实的效益,而不是沦为PPT工程?

关于测试改进:当下团队的测试瓶颈点在哪里?如何去改善?业内有什么更流行的测试方法论或者测试技能,能够解决当下团队的问题?

放宽眼界

人类一思考,上帝就会发笑。个人不思考,就无法进步,别用行动上的勤奋,来掩盖思维上的懒惰。“Hello word”你用不同的语言写了多少遍了?我通过自己的思考加上不断行动,逐步变成了对业务有一定认知的小高手。我的能力也不仅仅停留在测试的范围,我已经可以拉通好几个部门一起做事了,这叫“整合有限的资源,投入到无限的可能中去”。

质量内建:如果仅靠测试人员来保证产品质量,那一定会疲于奔命,发现BUG速度远跟不上写BUG的速度,有必要通过一定的手段来培养全员质量意识,让大家感知到质量不单单是测试人员的事,还是整个团队的事。质量需要端到端的去管理。

改进研发过程:有思想了,还要有工具,否则就是空想了。于是整个DevOps的研发过程就逐步去推进,需求实例化,代码分支管理、代码扫描、CICD、质量门禁、制品管理、生产监控等等一系列的内容,都需要老陈参与进去。

不断尝试新的技术:我穿梭于各种行业大会,观察更新更前沿的技术,看看哪些可以被团队吸收和落地,代码染色不错,可以帮助测试人员更好的确认被测试对象,测试覆盖率也可以,精准测试?混沌工程?契约测试?研发效能?。。。。。。

小结

我还在测试的道路上不断前进,各位看官,还觉得测试简单么,你们觉得我薪资几何?干一行爱一行。许多行业的入门要求都不高,但是要做得好,都不是简单的事。测试人员也不应当把自己局限在测试的职责范围内,不断扩充自己的边界,不好么?测试难不难,取决于你的自我要求,市场会给你真实的答案,没事多看看相关的招聘信息。

绵薄之力

做为一名自动化软件测试,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名高级测试者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

下面分享我整理的这份2022年可能是最全的软件测试工程师发展方向知识架构体系图。

1. 自动化测试必备Python编程内容

2. Web UI 自动化测试基础内容

3. Web UI 自动化测试实战内容

4. APP UI 自动化测试基础内容

5. APP UI 自动化测试实战内容

6. API 接口自动化测试基础内容

7. API 接口自动化测试实战内容

8. CI/CD持续集成专项技术

9. 自动化测试框架实战技术

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

总结:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取    

本文含有隐藏内容,请 开通VIP 后查看