字节跳动测试工程师总结:多角度考虑的几大思维方式!让你“柳暗花明又一村”!

Posted 程序员小捣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字节跳动测试工程师总结:多角度考虑的几大思维方式!让你“柳暗花明又一村”!相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

作为软件测试工程师,我们不仅仅要积累理论和技能知识,更要培养自己的逻辑思维,遇到问题多角度思考,从局部分析到整体影响,从而更全面更快速的解决测试遇到的问题。

首先,从需求,用户及研发角度考虑,要想为产品贡献最大的力量,就不能只专注于做好测试保证质量这一个方面,而应该是从多个角度全面衡量。
在这里插入图片描述
从图中,体现出我们也应该站在用户的角度,研发的角度来考虑产品的整体规划。

用户思维

在工作中,一部分测试同行特别是初入者在对待需求时都过于被动,不太会把产品各个模块的业务串联起来,成了因为需求来了所以做需求,纯粹看着需求文档就开始做测试用例的设计了,并没有想着先把需求理顺了想明白了再开始着手。其实这个阶段也即是非常重要的需求分析及功能点拆解,即使说这主要是产品经理们的主要工作,但是他们也并非圣贤,对产品设计的细节考虑可能并不周全,甚至严重时会出现较大的需求漏洞,引发较严重的影响。而我们也应该具备该项能力,如果不能站在公司战略层面考虑该需求对业务上能带来哪些促进,也至少能站在用户的角度考虑能给用户带来什么价值,能满足用户哪方面的需求,同时能及时发现对于用户操作过程中的体验问题,在糗事百科创始人著作的《结网》一书中,也提出了用户体验的三大原则:别让我等,别让我想,别让我烦。我觉得作为一名合格的QA是需要具备这方面能力的,但是在实际工作实操中还是需要具备沟通技巧,毕竟能对于用户体验方面的改进需要产品经理拍板,如果的的确确非常明显的体验问题,是有必要坚持真理说服他们优化的,否则还是把话语权留给他们,我们只是提供建议吧,不然工作中的味一定会很浓。

架构思维

要想设计一份有效的测试用例,就必须要对软件开发设计思路有深入的了解,我们也经常有类似的事情,业务需求未做任何改变,而架构做了优化,如果单纯地拿着一份根据业务整理出的用例是无法准确而有效的测试的,架构的调整包括:底层数据结构的调整如分库分表,服务化(SOA),日志的收集处理以及容灾处理等等,另外,为了能有助于测试开展,我们同样需要了解开发技术,毕竟在测试环境的搭建及维护,测试过程中各种场景的模拟特别是异常情况,以及自动化测试,如果不借助于开发技术,自动化工作也是很难开展的。比如被测系统依赖其他系统发的一条MQ消息而做相应的处理,那自动化代码中为了验证该逻辑,就需要MOCK这条消息(即设置桩Stub)并且发送到某个管道中,让被测应用接受并处理它,如果连MQ是什么都不知道,也不知道如何在代码中发送消息,那这个部分的自动化测试是没法开展下去了。

上面只是举了一个例子,总结一下,需要具备的架构思维包括:
1)了解并熟悉开发使用的技术及开发框架,比如用到的Spring MVC,Mybatis,Redis,前端html,JS,相关协议等(视不同项目具体情况而有所不同);
2)理解研发设计的架构及设计思路,并考察开发设计是否满足业务需求;
3)Review技术方案时,考察是否满足易维护性,易扩展以及对性能和安全的要求,并且在关键业务出现异常时是否添加报警等,而这一点也是大多数从事功能测试的同学最易忽略的。

测试思维

如果要特意区分用户思维和架构思维的话,在测试过程中,就要额外关注:以严谨的测试设计方法覆盖需求功能点及代码分支,具有场景思维和对异常情况的考察。对此我们可以细化总结为以下几点:

在这里插入图片描述
1.逆向思维

逆向思维在测试中用的很多,比如根据结果逆推条件,从而得出输入条件的等价类划分。

其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析。

逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞。

2.组合思维

很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长。

按照是否排序组合可以分为:排列(有序)和组合(无序); 针对不同的应用,可以酌情考虑使用“排列”或者“组合”。

为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性。

3.全局思维

事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求。其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性。

4.两极思维

边界值分析是两极思维方式的典范;

为了看系统的稳定性,我们采用了压力测试;

两极思维方式,是在极端的情况下,看是否存在缺陷?​​​​​​​

注意是两极,不是一极;​​​​​​​

测试人员做久了,往往容易走极端——职业病,不利于与人沟通。​​​​​​​

5.简单思维

剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”;

针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向。

6.比较思维

认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用。

应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用。

让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式。

7.静态与动态结合

关注程序的运行时状态。

传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离。

让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现。

其实这些思维方式,测试从业者都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。

最后想说,只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。

如果你已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们1033482984,群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!微信公众号【软件测试小dao

燃烧秀发输出内容,如果有一丢丢收获,点个赞鼓励一下吧!

以上是关于字节跳动测试工程师总结:多角度考虑的几大思维方式!让你“柳暗花明又一村”!的主要内容,如果未能解决你的问题,请参考以下文章

4面字节跳动(抖音)软件测试工程师,我的面试经验和总结

字节跳动测试工程师4面--电话面试经验分享

双11MySQL扛不住?别慌,先搞懂存储架构设计中的几大核心

太棒了!字节跳动工程师在GitHub开源了一份刷题总结,狂揽8.2K星,霸屏GitHub!

字节跳动团队斥巨资打造了最新的 “web测试点”,整整16个G,附零基础入门web思维导图

字节跳动算法工程师总结:腾讯+字节+阿里面经真题汇总,含面试题+答案