测试工程师如何“攻城”(上)
欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。
测试工程师的基本功有哪些?
作为一名测试工程师,我们首先要学会并理解测试工程师的基本技能是什么,相信很多入坑的朋友要么是报班学习了一套软件测试技能,要么是自我或在有人帮助下学习了一系列的软件测试技能,学习的技能大都包含以下内容:
- 软件测试理论
- 软件测试环境搭建
- Linux系统的使用命令
- Mysql 数据库常用语句
- 版本或Bug管理工具的使用
- UI/APP自动化如何开展
- 如何针对接口进行测试
- 抓包工具的使用,协议的学习
- 会录制一些脚本进行一些性能测试
- 还会学习一些ADB 命令进行一些app端的测试
其实上面所学习的这些内容真的是技术含量蛮多,也蛮复杂的,尤其是在有限的时间内(一般不会超过四个月)。
我们就举例来说 Mysql 数据库吧,真是要把数据库这一门技术弄懂学通,其实他就可以去就职DBA的岗位,而这一个岗位就有独立的培训课程。
再来说说自动化的测试吧,其实它的背后是有对应开发语言的学习的,而在市面上也是有专门的自动化测试工程师培训课程的,此处不再多举例子。
因此得出的结论是:测试工程师要学完以上列出的十项内容并在四个月内学习掌握同时去找到工作真是十分有挑战性的。
前段时间,我一直在面试,不管是电话面试还是face to face 的面试,十个里面难发现一到二个适合我的招聘要求的,有人会说是你的要求太高了吧,其实也还行啊,主要是由于工作内容决定需要招聘什么样的测试工程师,我比较关注的几点有:
- 以往的业务逻辑能力
- 测试基本功牢靠不牢靠
- 数据库的使用是否掌握
- 常用的Linux命令会不会
- 会做接口测试就更优
首先
我们来谈谈业务逻辑能力,作为一个测试工程师如果对于业务的理解能力不强,那么他很难走远,因为公司的发展是靠业务发展带动的,测试工程师如果不能全面理解掌握业务逻辑,那么你想一下QA这个角色的意义何在?
有人会说质量不是测试出来的,质量是设计出来的。这话真的是一点不假啊,我曾经也说过,与其你说这话,还不如你好好继续测试(这是当下软件测试行业的现状,你改变不了)。
其次
是测试基本功,我这里重点要说的是用例的设计思路,测试用例的设计是测试工程师最底层的最基本的技能,如果你准备深耕于软件测试行业,那么我建议你把测试用例设计得搞得透彻些。
用例设计决定了你对业务场景的考虑程度,业务场景决定了测试是否充分。那么我们测试工程师应该要掌握哪些用例设计的方法了,如:等价类,边界值,因果图,正交实验法,场景法,经验法等。
这里的掌握不是明白它的含义,比如:因果图你知道如何运用?经验法对于才入门的就不用提了,没有实践经验,这个需要不断的积累。
其实场景法是我要重点提一下的,因为它是结合了业务逻辑的,在考虑了业务场景后去设计的用例是其他的方法替代不了的,大家要重点注意一下。
然后
是数据库功底,数据库是承载数据的地方,也是数据落地的地方。我们在测试时不能仅仅是页面上的点点点。
还需要将业务逻辑,业务展示与数据库中存储的数据相结合着来测试,数据库中数据的测试将有助于我们做一些业务场景的测试而且非常的便利。
关注数据库数据的存放及数据的流转也会发现我们在上层测试过程中发现不了的问题,增加对数据库的测试并提出页面难以发现的bug将使开发工程师另眼相看。
再然后
就是Linux 常用命令,为什么要提这个了,因为目前我们接触到的服务基本全是部署到了Linux 系统下面,那么对于测试环境的部署及问题的跟踪定位就需要我们测试工程师掌握在Linux 下使用到的命令。
不要告诉我你会cd,pwd,mkdir,tail,grep, ps,top,ls,rm,find等命令就在简历上面写上熟练使用Linux 系统了,其实这还远远不够,就单一的命令后面的参数就有非常多的参数组合使用场景。
比如:tail -f100 a.log |grep -A/-B/-C5 这样不同的参数各表示什么意义,你得弄明白。再往深的去,比如:在Linux 上面构建一个Nginx 服务,如何安装,如何配置,如何启动,如何监控它是否运行正常,它的工作原理是怎么样的?这就非常考验测试工程师了。可能你会说这不是运维工程师的工作?我告诉你,你有这样的想法就是错的。
最后
是接口的测试技术掌握,测试工程师能够掌握接口的测试原理,理解接口是干什么的,这对后期去做接口的自动化非常有帮助,不要一上来就开展接口自动化测试的工作,你先得理解接口是什么,它长什么样子,它是如何调用处理返回的。
还有就是接口测试一般是功能测试的前置工作,所以接口测试也是有用例要设计的,用例设计要结合着接口文档,数据库,业务场景等来设计,接口处理失败时如何定位问题。
总不能一发现问题就丢给开发工程师吧,能够把问题发现,同时也结合着相关的信息(日志,F12 debug,数据库,配置信息,服务调用链等)把问题进行定位,这样提供给开发工程师的bug他们才会积极主动的去帮你解决,或许在这个过程中你就会发现一些根本就不需要问开发工程师就自己能解决掉的问题。
如:服务报错表结构不对,服务死掉了没有调用日志,服务配置不对,Nginx配置不对等等。
由于测试工程师时间和精力有限,大家要注意把握主次,不要想着一次性把上面提到的十项内容全部吃透,以上五点是我认为应该重点掌握的,其他技能项是应该理解和重视的,因为它将是你下一次华丽转身的筹码。
在后续的工作中你有大把的时间去深入学习,不断的实践,没有项目实践自己找机会加入到项目,项目不适合可以自己搭建环境自己实践,只有实践了才会有真认知。
总结
今天主要是分享了一些关于初入测试工程师岗位的经验之谈,测试工程师需要不断的学习,永远在学习的路上,每天坚持学习,持续输入。学历代表过去,能力代表现在,学习力代表未来。
备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:
添加关注,让我们一起共同成长!