关于软件测试,有不少同行问我“你认为,做好测试最重要的是要掌握什么技能或方法,或是”?
从事软件测试这行已经5年多了,也有些自己的体会。关于上面这个问题,我会毫不犹豫地回答:是思维,测试的思维。
俗话说:思路决定出路,这一句话一般是用在谈人的发展方面的。可是我觉得,用在软件测试这项工作上,也是一样的。即你有什么样的测试思维,就会有不同的测试策略,正是这些策略引导着你去思考、去分析测试的不同对象。
那么作为一名合格的测试员,应该具备哪些思维呢?
1、正向思维
什么是正向思维呢?你不要纠结了,我们不要管什么定义啊,概念啊什么的,就从字面意思理解,就是说我们正常的思维,正向的,比如说,你上汽车,肯定是先开门在上,这就是正向思维,你不会开天窗然后钻进去吧?这个暂时定为反向思维吧,我们后面说。
好,正向思维对于大多数人来说应该没有难度,我们在测试的时候一般来说都先关注于正向的东西,比如已网上购物而言,你在测试的时候,肯定会先关注于正常的下单、支付流程,这个就是所谓的正向,其实在我们的case中也体现了这种思维。
2、反向思维
这个就是我强调的,做测试也好,做开发也好,做架构也好,只有把正反向思维都考虑到了才会把整体的系统考虑全面,对于我们测试来说,我们应该更加关注于try{}catch{}这样类似代码中的catch部门,而这也是我们要重点测试的,不管你是黑盒、白盒、灰盒,都需要重点关注这个。
3、组合思维方式
很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长,按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合” ,为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性 。
4、全局思维方式
事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求 。其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性。
5、两极思维方式
边界值分析是两极思维方式的典范, 为了看系统的稳定性,我们采用了压力测试, 两极思维方式,是在极端的情况下,看是否存在缺陷?注意是两极,不是一极, 测试人员做久了,往往容易走极端——职业病,不利于与人沟通。
6、简单思维方式
剥离一些非关键特征,追逐事物的本质,让事物简单得只剩下“根本”, 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向。
7、比较思维方式
认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用,应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用, 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式。
8、发散思维
Ok,上面说了正反向,现在还差一个发散,发散思维主要是为了让我们的思维辐射到系统的各个测试点、功能点,用来弥补我们正反向的漏洞。
当然,这里说的发散并不是让大家漫无目的的去瞎想,这里可以给出大家一个思路,如下图:
这个是一个简要的手图,意在告诉大家我们先前要把思路想清楚了,这样才能有目的的发散,不然效率还是大大打折扣的。至于图中是什么意思,我想应该能很快看明白吧?
9、BT思维
终于到这里了,BT,这个必须有,作为一个优秀的测试人员,不对,应该是技术人员,BT的思维应该有,这样能帮你预估出来很多未来的风险,并提前解决掉他。作为我们测试人员来说,BT并不可耻,我曾记得,n久以前我们的case中还包括拔掉网线、限速等BT的操作。在外人看来我们真的很BT,但不可否认的是,我们为提供产品的用户体验与设计提供了非常有价值的参考数据与建议,所以也会渐渐的得到认可。
我想说的是,我并不是提倡这样的做法,只是想说明,其实对于测试而言,我个人觉得重要的不是技能,而是思维,只有你的思维够敏锐、够宽、够广、够发散,才能找出更多的问题,即便你有超高的技能技术,但你的思维永远都在一个小胡同里,你觉得会有用吗?
结束语
Over,用一句结束,我们不要只做有血有肉的人,我们还要加上有思想有灵魂!
下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你
关注微信公众号【程序员二黑】即可领取Python自动化测试超硬核资源啦