软件测试人员发展的几类方向

发布于 更新于

技术文章

自动化测试有广义和狭义之分,广义上一切使用工具或代码来代替手工测试都可以认为是自动化测试;不过,在测试圈中,我们一般狭义的来理解自动化测试,基于UI层的自动化测试技术。 如果想做好自动化测试,我觉得...


 自动化测试有广义和狭义之分,广义上一切使用工具或代码来代替手工测试都可以认为是自动化测试;不过,在测试圈中,我们一般狭义的来理解自动化测试,基于UI层的自动化测试技术。


      如果想做好自动化测试,我觉得测试人员应该达到一般开发人员的水平。如果是名普通的Web开发人员,想做好本职工作需要掌握一门编程语言 + Web框架 + 数据库;如果一名普通Web自动化测试人员,想做好本职工作需要掌握一门编程语言 + 单元测试框架 + selenium(注 :Selenium已经成为了做Web自动化的不二之选了)。Web开发人员想进一步提升,可能需要学习代码重构,设计模式,SQL设计与优化。Web自动化测试人员想进一步提升,也需要学习代码重构,设计模式,基于Selenium的二次封装等。


      所以,在我看来一名合格的Web自动化测试基本上等同一名Web开发人员的水平。只不过,后者写的是功能代码,前者写的自动化测试代码。


      除此之外,还有接口自动化、移动自动化等,基本上也等同相关开发人员的水平。


 


性能测试



  性能测试,相信每个测试人员都或多或少的接触过性能测试。表面上看,它的入门非常简单,主流的LoadRunner和Jmeter都提供了录制脚本的功能,录制--> 设置虚拟用户数 --> 运行,然后一个性能测试就完成了。笔者的首份测试工作的第二任务也完成一个性能需求;当时磕磕绊绊的花了三四天时间搞定,性能测试报告也做的有模有样。


      但如果想做好性能测试,我觉得测试人员应该达到一般架构师的水平,至少比一般的开发人员更了解系统的整体架构。


      当然,这个架构也分两说,对于一般的项目,市场上都有成熟的方案,比如LAMP,再加上Nginx和redis,也有很多成熟Web框架,所以,开发人员只需要根据业务需求把功能实现了就好,除非是特别新的开发新手,犯一些低级的错误导致性能问题,一般的性能就是验证当前系统的能力,增加服务器也是最便捷的手段。


      另一类就是对系统的性能有极高的要求,比如证券交易系统,银行系统,网上购票系统这些,这些一般用的架构和方案就不是我们常见的了。那么,对性能测试人员的要求也非常高。


安全测试



   安全测试是主流中的非主流,“主流”指的是它是测试技术的一个主流方向,“非主流”是指在我看来,对这个技术的研究和学习没有什么固定的章法,想要有所成就需要一些天资和悟性。 


白盒测试



  白盒测试给测试人员去做,有利有弊,整体来说,我不太赞同由测试人员完成。


      测试人员做白盒的优势就是具备测试思维,在设计测试用例时考虑更加全面;但难点也很明显,和开发一样熟悉被测代码,这一点有难度,在做接口测试的时候,曾花好几个小时去理解开发写的一个接口的逻辑。而且,你可能需要同时熟悉2~3位开发人员的代码。


      开发人员去写单元测试,抛除“盲目自信”“没时间”“懒”等因素之外,优势非常明显,没有谁比自己更熟悉自己写的代码了,他们只需要掌握单元测试框架的用法和一些常用的测试方法,就可以很快的把单元测试写完并全部运行通过,而且发现bug之后,修改起来也非常快速。


      软件测试人员发展方向非常广泛,找一个适合自己的方向尤为重要。


继续阅读