不知不觉,从事软件测试已有7年时间。从最开始的功能测试人员,逐渐转变成测试兼运维,不肯定还算不算严格的软件测试。前段时间看到过一篇文章,里面讲述了一我的8年的软件测试工程师感悟及对软件测试行业的发展见解,写了十个软件测试工程师发展方向的知识架构体系。感受个人经历跟他这几个体系非常吻合,因此感触颇深,下面结合我本身的经历简单介绍一下。前端
一.Linux必备知识linux
刚刚入行时,基本都是熟悉软件测试的生命周期,及公司内较为成熟和适合的流程规范,即写测试用例,评审用例,执行用例,反馈问题。很庆幸个人第一家公司的流程还算比较正规,为我打下了软件测试最基本的职业要求,也让我接触到了Linux。Linux做为如今最流行的软件环境系统,必定须要掌握如下最最基本的要求:git
1.Linux系统的简介与准备web
2.Linux远程管理工具Xshellsql
3.Linux文件属性与管理 ls -l 文件的rwx所表明的意思,结合用户/组的概念shell
4.Linux用户与组管理 使用不一样用户管理不一样的应用,避免都使用root数据库
5.Linux文件编辑器安全
6.Linux经常使用系统配置 网络设置/环境变量/硬盘设置等网络
7.Linux软件安装 yum/tar/make等架构
二.Shell脚本
在第一家公司时,发布war包都是在weblogic的页面点击上传,涉及到的linux操做也仅限于查看输出日志,启停服务,当时只是熟练使用命令操做,若是当时了解了shell,应该能够作的更简单。在第二家公司时,开发只管提交代码,打包和部署及环境的管理都是测试的职责,此时接触了shell,而且初步了解了持续集成。
掌握shell脚本,包括shell基础与应用,shell逻辑控制,shell逻辑函数等等
三.互联网程序原理
自动化必由之路:前端开发基础知识以及互联网网络必备知识。结合个人工做经验,我只掌握了开发者工具测试应用/HTTP协议/Cookie等
四.Mysql数据库
软件测试工程师必备的Mysql数据库知识,不只仅停留在“增删改查”,还应该掌握Mysql环境的搭建,备份与恢复,Mysql高级查询等
五.抓包工具
此部分我没有使用过,简单提一下几种工具:Fiddler,Wireshark,Sniffer,Tcpdump等
六.接口测试工具
接口测试神器,你绕不开的强大工具:Jmeter。在第三家公司使用到了Jmeter,针对回归接口仍是用很大帮助的,能够结合ant配置在jenkins里或者使用命令来后台执行,并输出报告
七.Web自动化测试Java&Python
目前我正在学习Python selenium + unittest框架 +pageobject设计模型,尚未彻底学完,但愿对之后工做中能够用到并节省人力
八.接口与手机自动化
7年的经验我却没有作过移动端的测试,之后须要了解Appium
九.敏捷测试&TestOps构建
敏捷即快速交付,持续集成Jenkins框架则需烂熟于心。而我使用的是gitliab-ci,gitlab自带的CI框架,原理都是相似的,目的也都是为了持续集成与交付
十.性能测试&安全测试
这两方面我没有太多涉猎,性能偶尔简单测一下并发,并无过完整方案,我以为这两方面做为主攻均可以单独找到不错的工做。
以上即为软件工程师发展方向的知识架构体系,并不建议一上来就作自动化/性能/安全,我我的以为写测试用例,手工执行功能测试是基础,打好基础才能对其余的测试方向有深入理解。以个人经验,若是此片文章有幸被初学者看到(测试大牛请忽略),建议3-4年完成前六个体系,以后再接触后面内容可能更驾轻就熟,不过在这个快节奏的时代,可能并不容许你慢慢消化吸取,那你可能就要付出更多的努力,只要你坚持了,必定会有成效。