请选择行业
请选择职位
请选择省份
请选择城市

哪些能力是一名优秀的软件测试工程师应该具备的?

时间: 2023-09-25 16:21   作者: 测试凯哥    点击次数: 
 
  我是如何走上测试之路的
  我是统招本,专业是计算机信息系统和信息管理,大四在一家事业单位(就不说名字了)实习做Android开发的,等我快毕业的时候,单位明确告诉我不会转正。当然了,我是很清楚的,没有背景,也没有关系,学历也只是本科,想要进去还是很难得。但是也有一丝丝的沮丧,但也就是一点。
  大学毕业后,我找了一个互联网公司,开始了我的Android应用开发之路,也就是半年的时间,公司业务扩展比较快,APP的用户量变得比较大了,APP的一些问题开始凸显出来,公司就准备招聘测试。而且要求还挺高的,但是还是要有公司内容的老人去带着业务、讲技术什么的,那时候这个活就交给我了:我当时就很纳闷,我自己也不会啊,怎么教别人带别人啊?出于要完成领导交给我带新人的任务,于是乎我自己就开始研究测试方法和理论。新人不会写测试用例、也不会写缺陷报告,会干啥呢?就会操作计算机!
  于是我就从我的做银行测试的朋友哪里取经,问他们工作流程、工作标准。然后再复用到我自己的公司,后来领导验收工作,这个新人倒也没有揽功,就说了是我指导的,然后我们领导就让我专职负责带领测试了,我的开发之路就变成了测试之路。
  熟练使用各种测试工具
  作为测试工程师呢,除了会基本的测试需求分析、测试用例编写、缺陷报告编写等工作之外呢,还得会用很多的测试工具。
  APP测试工具
  因为我就是做APP开发的,所以经常的要使用adb命令和monkey命令对APP进行测试,查看APP运行的日志、运行状态。
  尤其是这个过程中,会在APP的界面上做一个小功能,显示APP运行时的一些基本信息和状态和运行报错的信息,直接用adb命令导出。
  其他的就很少用了,可能有网友要问,不做APP的功能自动化测试么?说实话,当时真没有。现在可能会有用到像appium、airtest等。
  抓包工具
  抓包工具真的是非常重要的测试工具了,像查看APP和服务器之间的数据传输、查看浏览器网页和服务器的数据传输,都得用它。
  一般的常用Fiddler、Charles等专门的抓包工具,有时候不需要特别处理的抓包时,都会用谷歌浏览器、火狐浏览器的F12——开发者模式,也是相当不错的选择呢。
  有小伙伴可能会问,抓包干啥!那肯定是看数据传没传以及传的对不对、传的安全不安全啦。
  接口测试工具
  一般的,接口测试做的不多,因为接口变动并不是很大,多的都是前端调用接口。所以这里面的话呢,像Postman用的会多一些,其他的,JMeter在接口这块儿我以前用的真不多,毕竟人家JMeter是明摆的性能测试工具啊。
  用Postman做接口测试的时候呢,操作起来也是毫无压力的,就那么几个单词,就像操作其他软件一样的,也是很简单的。而且测试一次之后,很久才需要进行再一次测试,因为接口基本不变的。
  性能测试工具
  这个也是领导要求用的,说是要抵御促销活动的大量的数据访问、防止高并发导致系统服务崩溃,虽然我嘴上没说,但是系统有几个人、促销活动能吸引多少人,我还是有数的,可能全公司人都有数,就他没数(也可能是故意的)。
  我就开始研究性能测试工具了。和领导协商用Loadrunner,他说太贵了。
  然后就选了最常用的JMeter了,开源,免费,好用。就是需要配个Java开发环境。剩下的其他的就没那么费劲了。内置的模块也是够用的。
  AI工具用于测试使用
  随着AI内容生成技术(AIGC)的兴起和广泛的应用,现在连测试工程师都要求会用AI进行测试工作了。
  是的,你没看错!是要用AI进行测试工作。
  比如,我们现在正在研究如何使用AI帮忙分析测试需求、和编写测试用例。这也是领导的意思,说是研究一下。但是要怎么用老板也没说,但是我听的是有点心惊胆战的,莫非是想替换我?
  但是不管怎么说,AI作为目前的大主流技术,还是要研究一下的,比如我问一个AI让其给我生成一个python代码。别说,还真挺不错的,居然是对的,可以运行:
  其他工具上的使用要求
  1.虚拟机软件
  做测试的时候,绝大多数的时候是需要不同的设备进行测试的,不管是APP测试,还是Web测试。如果遇到大方的公司还好,能够多申领几台设备;如果遇到小气的公司,那只能自己想办法了,那这个时候就需要使用虚拟机或者模拟器软件。
  像PC端的虚拟机软件,VMware,或者Virtual Box等,可以虚拟化PC端的Linux系统、Windows系统等;
  还有能模拟Android系统运行的雷电、夜神、mumu等移动端模拟器。
  2.数据库操作工具
  做系统的测试的时候呢,有一个事情是必不可免的,那就是查数据,看看添加的数据、修改的数据、删除的数据,在系统里面是不是都是准确的。这往往就需要我们测试人员能够使用工具查看数据库中的数据。
  所以像Navicate、Heidisql等能够连接数据库的软件就是我们必须会的了。
  3.Linux服务器连接工具
  会使用这类型的工具,并不是必备的,只是为了测试人自己的工作效率高一点而已。因为测试工程师有时候必须要查看一些服务器的信息才能够完成测试,或者提交bug,那这个时候如果我们不会这个服务器的操作,拿不到我们想要的内容怎么办?
  可能有人会说测试工程师要会搭建测试环境,说实话,在我做了一年多的测试期间,我只在服务器上操作过2次:
  第一次是导出日志:就用了一下查看日志在哪里的命令,然后把日志下载到Windows系统本地去看的。
  哪些闲的没事儿干的,才会在系统直接看。因为Windows操作多方便啊,很快就能找到。我不是专业的运维,所以有些命令真心记不住,有查命令的时间,我想找的数据都找到了。如果面试要问的话,那还是得会的。
  第二次就是在了Linux上运行JMeter脚本。因为Windows系统能力有限,所以直接申请了一个高性能的服务器做性能测试。
  剩下的什么搭环境,开发和运维都不让我碰,怕我给玩儿坏了。
  因为我是测试,玩儿坏了又不会被批评,就是发现了问题!所以搭环境是不存在的。
  4.开发环境和编程工具
  虽然是做测试的,但是一些开发的知识还是要知道的,要不然都没法跟他们交流问题,也可能会说错一些软件的缺陷。
  比如说网页中的弹窗,alert、prompt、confirm就是各自不同的,那我们要知道如何使用专业术语描述这个东西。
  再比如说,Android应用的弹窗和提示,通知消息,页面等也需要有专业的术语表示。
  另外就是前面说的有时候需要安装一些测试工具软件,可能需要配置好开发环境。比如JDK环境配置,Android开发环境等。
  结束
  这一年多的时间中,因为接触最多的就是APP测试了,所以说的比较多的都是APP测试相关的东西,当然不是说Web测试不重要,因为工作涉及的比较少。大家如果有什么技术问题你的,也可以和小编沟通呢。

打印本页 | 加入收藏

上一篇:软件测试面试必问:为什么要选择软件测试?     下一篇:面试银行软件测试,有哪些必问问题嘛~

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: