作为一位从事软件测试行业三年左右的初级测试工程师,下面给大家分享一些日常工作中的一些经验哈,专业大佬勿喷哈~
首先,何为软件测试。软件测试顾名思义,就是测试软件系统的功能、性能,尽可能多的发现其中存在的问题,协助产、研推动解决问题,保障产品上线前尽可能的稳定,上线后给用户带来更好的用户体验,减少线上事故的出现。
软件测试工程师分很多种,大致可分为功能测试、性能测试、以及测试技术相关的。功能测试包括软件的页面功能测试、接口功能测试等;性能测试主要是模拟线上的用户场景,对系统进行压测和稳定性测试,重点关注性能指标和资源占用情况,结合实际的应用场景来初步确认系统性能是否满足线上需求;测试技术包括自动化测试、测试工具开发等,运用一些简单编辑但能有效提高测试效率的测试脚本,例如:python脚本,shell脚本、perl脚本等,来实现复杂测试流程的自动化,提高工作效率。当然,这对测试人员的代码能力有些许要求,要有清晰的思维,来设计实现测试自动化。
其次,不同公司不通部门招聘时,对测试人员都有不同的要求。主要分为初级、中级、高级和架构师级别吧;小公司一般招聘的都是一些偏向于中高级的测试工程师,因为需要一个人顶替很多人来运转项目,这样对应聘者来说,就有比较高的要求。首先你得熟练掌握测试的基本流程、项目管理流程、研发流程等。要能独立完成一个系统的测试工作,还要能编写自动化测试工作来协助自己的测试,提高工作效率。简言之,就是从:需求原型开始,到产品设计、研发设计、测试设计、版本发布、线上维护等等的过程流程,你都得略知一二,才能胜任这样的工作。当然,这样的招聘需求,薪资当然也是很丰厚的。
如果你对自己的薪资没啥要求,对未来是否在这行继续发展也不是清楚,就是想找个公司临时上上班的话,软件测试工程师这个职业基本没有什么门槛,只要你会Word、Excel、Visio以及Xmind或者mindmanager的基本操作,对测试基本理论、测试方法有些许了解,基本上都可以找到一份测试工作,但这种多半是做功能测试。
最后,当你确认未来几年或者几十年会一直从事测试行业的话,建议你规划一下自己的发展方向。测试的主要发展方向也就两个:测试技术和测试管理吧(目前我了解的就这两个);
测试技术的话,要想长远发展下去,就要不断提高自己的编码能力了哦,像主流的测试框架:Pytest、Unitest、TestNG等等,都需要去学习掌握;当然,基础的测试工具当然必须要熟练使用:postman、jmeter、soapui、loadrunner等等。测试技术的发展也离不开业务哈,系统业务需求的了解还是需要的,如果脱离了业务做事的话,就失去了本身的意义哦~
当然,在测试技术层面,又会有很多的测试方向,目前几个比较主流的测试如下:
1)自动化测试
自动化测试有广义和狭义之分,广义上一切使用工具或代码来代替手工测试都可以认为是自动化测试;不过,在测试圈中,我们一般狭义的来理解自动化测试,基于UI层的自动化测试技术。
2)性能测试
性能测试,相信每个测试人员都或多或少的接触过性能测试。表面上看,它的入门非常简单,主流的LoadRunner和Jmeter都提供了录制脚本的功能,录制--> 设置虚拟用户数 --> 运行,然后一个性能测试就完成了。笔者的首份测试工作的第二任务也完成一个性能需求;当时磕磕绊绊的花了三四天时间搞定,性能测试报告也做的有模有样。但如果想做好性能测试,我觉得测试人员应该达到一般架构师的水平,至少比一般的开发人员更了解系统的整体架构。
3)安全测试
关于安全测试,我知道很少,只能简单的谈谈。安全测试是主流中的非主流,“主流”指的是它是测试技术的一个主流方向,“非主流”是指在我看来,对这个技术的研究和学习没有什么固定的章法,想要有所成就需要一些天资和悟性。
4)白盒测试
白盒测试主要就是进行研发代码的单元测试了,需要有一定的代码能力哦。测试人员做白盒的优势就是具备测试思维,在设计测试用例时考虑更加全面;但难点也很明显,和开发一样熟悉被测代码,这一点有难度
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取