从事软件测试许多年,想必很多人都有感到迷茫不知所措的时候,人生的十字路口有很多,该如何抉择呢?有人成功转型,QA、项目管理、配置管理。当然还有技术型,性能测试、自动化测试、测试开发,而想要延续走技术型路线,不可避免的就是钻研开发技术,说的通俗些就是coding的能力。软件测试所涉及的知识面很广,所以有些开发不要一味的黑测试诋毁测试的能力,当然不否认,现在大部分黑盒测试仍然局限在点点点,但技术需要提升,想要晋升为高级测试或者测试开发,所需要的能力变慢慢有所体现出来,测试所带来的价值也应声而来。
言归正传,高级测试/测试开发技能很广泛,所涉及的知识众多,从业务知识、网络配置、系统架构、开发语言、测试技术等等。有些技术需要在实际项目中积累,有些技术需要自己去钻研。
下面简单列举一些高级测试/测试开发技能:
- 语言类
当下比较流行的Java、python(selenium工具语言)、C和Javascript(LoadRunner工具语言)、Perl,数据库sql,Linux系统shell脚本语言,vbs语言(QTP工具语言),当然如果C基础很好的话,其他语言学起来也比较容易上手,关键依然在于代码,勤学勤用。
2. 工具类
自动化工具,C/S的可以使用QTP,B/S可以使用selenium,SilkTest工具,当然工具只是一种测试方式,根之所源要理解自动化测试的实现以及架构等。
性能测试工具,LoadRunner(HP公司收费软件),Jmeter(开源测试工具),性能测试需要深入了解系统的网络协议以及业务流程,对测试结果的分析也是性能测试至关重要的一个环节,当然最终的目的都归为系统调优。
手机app测试工具,Monkeyrunner、Robotium、appium,主要基于Android和IOS系统。
3. 白盒测试
针对核心模块,核心算法进行代码走查和代码跟踪,从代码内部发现问题,会使用它提供的IDE工具进行代码的跟踪和调试,这部分技能的积累需要长期的工作实践,更需要日后温故知新和勤学多问。
4. 系统配置
配置管理,其实并不是测试的本职工作,但在实际公司组织架构体系中,往往会把配置管理归为测试部门,所以对系统内部架构的了解和系统代码实现的认知能力,尤为重要,这有助于发现系统底层的bug,更便于去分析bug产生的原因。对于有些科技公司,这些是软件测试人员的必备能力(查看error log 定位问题)。扩展下,时下比较流行的分布式架构,大数据时代,分布式系统最大的特点是可扩展性,它能够适应需求变化而扩展。
5. 测试技术
首先,测试基础知识,内容很多度娘资源很多。测试的能力也是慢慢累积,从大纲到测试点,再到与开发、产品需求间周旋,通过一步一步的积累,积硅步至千里。