1、软件测试的五大职业发展路线
1)功能测试工程师
功能测试也叫黑盒,无需掌握代码能力,只要将以上东西吃透就可以了,如果在金融公司或者业务负责度较高的公司,做久了你你可能对其中的业务逻辑了解的很透彻,未来可以做资深测试工程师。
2)自动化测试工程师
其中UI自动化是投入产出比最低的一个,因为公司都会有大量的功能测试,而且一些体验性功能是无法用UI自动化去简单断言的,所以这个要等到你的团队或者公司规模达到一定时候才可能去做的一个事情。
简单讲,前期做的话无非就是花大量时间去做手动点击下就能解决的问题。涉及到的框架有Robotium、MonkeyRunner、Robotframework+appium以及python直接驱动appium;
其中定位元素是UI自动化的关键,定位元素的工UIAutomator,这个当然得需要你对安卓的布局有所了解以及xpath的定位方法。
初学者建议robotframework+appium这套,易上手。当然了,每个公司可能都会用自己的框架,他们也有对框架自己的理解或者适合哪种框架。
最新最全花1W买的Python+Selenium全栈Web自动化测试
接口自动化是一个投入产出比相对较高的一类,因为可以花费较短的时间集中对大量的接口进行测试,可以大大的节省人力成本,也是很多公司现在主要在去做的一件事情,涉及到的工具有Jmeter、Postman或者Robotframework,各有特点,Jmeter可以适合做接口性能测试。
因为里面会有一些接口传递过程的具体数据如响应时间等;Postman比较轻量级了,简单的断言,就是对接口的是否正确性做判断;
会问了咋又出现了Robotframework,没错,他的原理比较特殊,是借用各种已经封装好的library库,直接用关键字调用库中方法做驱动,因此只要加入了做接口测试用的库,就可以对接口进行自动化测试,当然他也可以做UI自动化,因此是多样性好。
这三种都同时可以借用Jenkins部署自动化,可以集成自动化。
性能自动化也是一个投入产出比相对较高的一类,通过监控测试或者负载测试等等,对app或者程序进行监控数据或者压力测试,通过对数据的收集分析出性能的优劣。
主要会涉及大的工具可能有:LoadRunner,Jmeter,Instruments(ios)以及Emmagee(安卓),后两者基本都是通过对内存、cpu、网路流量、电量以及安装启动跳转的响应时间做实时监控,然后分析数据,给出合理化结论。
3)测试开发工程师
需要比较强的代码能力,会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等。与自动化测试合作优化测试框架,提高框架执行case的效率等。然后具有Review代码的能力,可以做白盒测试。
4)专项测试工程师
对某个领域有自己的专长测试,比如sdk测试,安全测试,兼容性测试等,按照流程进行产品测试,调研需求、编写测试用例、测试计划、执行性能测试、编写测试报告、操作说明等。
5)Leader
走管理,需要做的是你个人的综合实力的提升以及管理经验。
2、软件测试未来发展偏向
1)偏向于需求方面的测试人员
在敏捷开发模式下,当测试向前推进时,测试人员会更多地接触到需求分析,从需求分析阶段就尽可能地发现和预防问题。
在这方面,有一些方法,比如行为驱动开发和需求实例化,可以帮助测试人员深化他们的需求分析,扩大他们的影响力。
同时,测试人员还需要对产品的行业和业务知识有更深入的了解,成为业务专家,这样才能让测试分析更有见地。
2)偏向于开发辅助的测试人员
在敏捷开发模式下,开发人员不仅需要编写单元测试代码,还需要编写自动测试代码。
因此,为开发人员提供更快速、准确、全面地添加和执行测试的好工具,是测试人员的发展方向之一。
3)偏向于自动化测试的测试人员
开发人员可以编写自动化测试,测试人员也可以编写自己的测试。
而且,对于自动化测试,测试人员不仅需要分析项目的架构和技术栈,选择最适合的自动化测试框架和编程语言,还需要从头构建自动化测试框架,完善相关的自动化测试支撑内容,如测试数据管理、测试并发执行、测试方法封装、测试脚本设计等。
4)偏向于运维的测试人员
测试不仅需要转移到需求分析阶段,还要覆盖产品交付和在线监测分析,以便快速发现问题,指导下一阶段的开发。
这就需要我们了解更多与环境和监控相关的技术和工具,比如亚马逊AWS、NewRelic、Splunk和PagerDuty。
我们不仅需要熟练运用这些技术和工具,更重要的是,分析从这些技术和工具中获得的数据,形成有意义、有目的的行动计划,帮助开发团队改进。
5)偏向于专项测试能力的测试人员
测试人员不仅需要开发自己的知识,还需要深入具体的技术,这些技术被称为某项技术的测试专家,如前端测试、数据库测试、性能测试、安全测试和可用性测试。
通过这种方式,测试人员不局限于特定的项目,而是成为具有特定测试技术的技术专家,这些技术可以跨越项目。
6)偏向于测试能力建设的测试人员
在前面开发路径的基础上,测试人员可以进一步升华,成为开发团队拥有或提高测试能力、进行测试转化,甚至转化团队的关键指导人物。
而且通常这个测试人员会同时负责多个团队,人数一般都比较少。