首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

打铁还需自生硬,谈立体化测试技能提升(二)

在上一篇文章中,介绍了小编总结的组成测试人员能力立体世界的三方面:1)产品业务知识;2)计算机技能;3)测试理论。重点介绍了产品业务知识对测试人员的重要性和学习的方向。本篇重点介绍计算机技能对测试人员发展的作用。

3 计算机技能

还是那句话,测试人员必须要懂代码。不一定会写,但一定要有相关的思维。这点不同公司重视的情况不一样,与产品有些相关性,如果产品用不到的知识、框架没必要太深入了解。下图是小编认为一个软件测试人员需要或多或少了解的计算机技能:

小编认为,优秀测试人员需要有如图6个方面的技能,才能更好的完成任务:

1)计算机基础。这是软件测试人员必须有的能力。

了解常见的桌面操作系统和移动操作系统,相关的操作系统有哪些系列,比如小编曾经进行过一次Windows操作系统兼容测试,32位机器服务无法启动,如果当时缺少32位覆盖就会出现漏测。操作系统的一些硬件知识,CPU、内存、硬盘等部件的基础知识,一方面搭建环境会用上,实际测试也有帮助。比如某次对外测试,一项性能测试就是有问题,实验室测试都是好的,经过深思熟虑发现实验室的硬盘是固态硬盘,数据库的读写瓶颈在硬盘,对症下药解决了。还有一些常用软件的安装、环境搭建、命令使用,这点在Linux系统下更为重要。Windows下CMD熟练些,除了方便外,还可以小装一下。

网络知识必备的TCP/IP,HTTP/HTTPS,Telnet等常见协议,会用各种抓包工具,如Sniff、Wireshark。会抓包首先是会,更重要的是在适当的时候能用上,这点定位问题非常有用。还要会构造报文,Fiddler、科来都有这样的功能。

数据库不用多说,没有一个产品不用数据库的,MySQL、Oracle等各类数据库,会写SQL、存储过程。排查问题、构造假数据必备手段。DataFactory是一款造数据的工具,这里介绍一下。

编程语言建议掌握Java和Python,其他有点了解,用的时候现学也不难。

开发框架的了解建议与所测试产品结合,比如所测试产品是Web应用,对基础的Struts有了解,最好能自己动手做Demo。一方面更好的理解系统,才能更好的验证系统;一方面也体会一下开发同学的辛苦,说实在的,开发同学真的很辛苦,做一个Demo会遇到相当多的困难,而做一个面向最终用户的产品,鬼知道系统会遇到怎么样的折磨,而开发同学要处理任何合理、不合理的操作,真心很难。对于产品不相关的框架,能学就多学吧,技不压身,要把未来掌握在自己手里。

2)测试工具开发。这点单独说明一下,算是计算机基础的实战应用,但也是很迫切很重要的。一方面要满足测试需求开发一些模拟程序,比如模拟大量告警的工具,是要完成工作必须的模拟的环境。还有就是提升效率的工具,不要小看一点点效率的提升,能够带来团队自动化的氛围。仔细观察,工作中有很多值得提升的地方,自动提交bug,自动收集日志,自动进行用例的数据组合……只要感觉不爽的地方,都能想办法自动化

3)性能测试框架和工具。性能测试的重要性无需多言,测试人员能够进行合格的性能测试是非常难得的。首先要掌握工具的使用,这里推荐两个王牌工具:LoadRunner和JMeter。提到这两个工具,很多同学都会录制脚本,能够运行、给出图形结果,这还远远不够。性能测试是很完整的过程。首先是需求分析,要测试哪些场景、哪些操作下的哪些指标,不同配置下的指标会不会有不同,影响系统性能都有哪些可以调节的参数……。之后是工具使用,这点和实际的产品有关系,有些产品就是不按套路出牌,需要有决心搞定。然后是场景设计,把之前的需求分析落实到实际的测试执行中来。最后是结果分析和报告,结果不是单一的,要有论点、论据、数据支撑。报告中最有价值的就是给项目一个负责任的结论。除了工具之外,性能测试的自动化也是需要学习的方向,如何完成环境准备的自动化、脚本数据的自动化、如何和持续集成结合。

4)自动化测试框架和工具。这里主要是一些框架和工具的使用,还是从务实出发,先学习项目上迫切需要的,掌握了再进行其他框架的学习。建议认真研究一个框架,一定要做到面面俱到,不要录制几个脚本,看一下报告就浅尝辄止。自动化的难点和魅力在于与实际项目想结合,真真切切的提高效率。一切无法例行执行的自动化脚本,都是耍流氓!单元测试需要了解JUnit和TestNG,Mock框架如果使用就要学习。接口自动化主要对接口协议了解,HTTP、WebServices等。UI自动化测试是最普及的,Selenium独大,QTP历久弥新,Robot后起之秀,还有Watir、Sahi、RFT等等,具体的对比情况见另一篇文章:(QTP和其他框架对比)https://mp.weixin.qq.com/s/1PlxI9Ktlu9owrLQAXXE6w。移动端的产品越来越多了,相关测试也需要了解了,小编对此还很欠缺,一起学习吧。Robotium和Appium是首先下手的两个,其他的看时间情况。最后是相当关键的,一定要会二次开发。像Selenium、TestNG这些本来就是一组API,需要组合完成项目的需求。如QTP、RobotFramework这些比较现成的框架,建议也进行适应项目的改造工作。

5)持续集成。不同的公司持续集成的主体不同,但测试人员一定要有这个能力。软件开发的宗旨就是快速交付给用户可用的软件,持续集成是完成这个宗旨的正确选择。首先掌握构建工具的使用,Jenkins就够了,了解持续集成流水线的概念。之后对DevOps、TestOps有一定认识。

6)安全测试。安全越来越重要,但小编研究过一段时间,得出的结论是“专业的事情交给专业的人去做”。安全测试不同于性能测试、自动化测试,后两者与业务直接相关,安全问题更多的是开源框架带来的、操作系统带来的,这点与本身的业务开发并无直接联系。而且,以漏洞来说,每天都会有新的漏洞,公司没有实力也没有余力盯着这些。对于非安全圈的产品,测试人员能够进行的就是基本的漏洞扫描,使用基本的工具完成简单的验证就够了。图上给出一些工具,供大家参考。

计算机技能能让测试人员更好的与开发交流,更深入和有目的的测试产品,同时也是完成各种模拟场景必须的能力。同时,也是测试人员职业规划的另一个方向:测试开发工程师。

鉴于篇幅原因,测试理论在后续的文章中分享,敬请期待。

看完本文有收获?请转发分享更多人

关注水滴测试,不知不觉变大牛

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180516G1WONU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券