软件测试的思路 [转]
软件测试的核心是测试设计,而测试设计的质量很大程度上取决于测试人员的思路是否开阔和到位。今将自己积累的测试设计中常用的一些思维方式陈列出来,与大家一起共享一下。
1、逆向思维方式
· 逆向思维在测试中用的很多,比如将根据结果逆推条件,从而得出输入条件的等价类划分
· 其实逆向思维在调试当中用到的也比较多,当发现缺陷时,进一步定位问题的所在,往往就是逆流而上,进行分析
· 逆向思维是相对的,就是按照与常规思路相反的方向进行思考,测试人员往往能够运用它发现开发人员思维的漏洞
2、组合思维方式
· 很多东西单一的思考都没有问题,当将相关的事物组合在一起却能发现很多问题;如多进程并发,让程序的复杂度上了一个台阶,也让程序的缺陷率随之而增长
· 按照是否排序组合可以分为:排列(有序)和组合(无序);针对不同的应用,可以酌情考虑使用“排列”或者“组合”
· 为了充分利用组合思维而不致于让自己的思维混乱,要注意“分维”,将相关的因素划分到不同的维度上,然后再考虑其相关性
3、全局思维方式
· 事物往往存在多面性,当我们掌握了越多的层面,我们对它的认识就越清楚,越有利于我们掌握其本质,全局思维方式就是让我们从多角度分析待测的系统;试着以不同角色去看系统,分析其是否能够满足需求
· 其实平常我们在软件开发过程中,进行的各种评审,就是借助全局思维的方式,让更多的人参与思考,脑力激荡,尽可能的实现全方位审查某个解决方案的正确性以及其他特性
4、两极思维方式
· 边界值分析是两极思维方式的典范
· 为了看系统的稳定性,我们采用了压力测试
· 两极思维方式,是在极端的情况下,看是否存在缺陷?
· 注意是两极,不是一极
· 测试人员做久了,往往容易走极端——职业病,不利于与人沟通
5、简单思维方式
· 剥离一些非关键特征,追逐事物的本质,让事物简单的只剩下“根本”
· 针对事物本质(解决问题的本质)的测试,让我们不至于偏离方向
6、比较思维方式
· 认识事物时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或者归类,从而将其加入大脑中的知识体系,可能的话,再建立好的搜索方式,以便以后使用
· 应用模式是“比较思维”很常见的例子,现在模式很火,有设计模式、体系结构模式、测试模式、等等,一些专家针对一些相关问题的共性找出来的解决方法,取完名字后,可以让大家方便的复用
· 让经验在这里发挥作用,测试中经验很重要,比较思维是使用经验的方式
7、动起来,更精彩
· 关注程序的运行时状态
· 传统的基于结构的程序可以更多的在代码中反映将来程序的运行方式;而面向对象将代码和运行时显著分离
· 让我们在关注代码静态结构(如类结构)的同时,也要谨慎关注其动态(对象交互网)表现
其实这些思维方式,大家都在有意识或者无意识的使用着,它们各自都有自己的妙处,将我们的思维发散,有意识的将他们用在问题的思考上,有时可以给我们一种“柳暗花明又一村”的感觉。
最后想说,只是知道这些原则意义不是很大,如果真能让它们成为思考的血液,才能发挥它的真正价值。那真的需要很多的历练,其实成为一名出色的测试人员,远没有那么简单,需要(不断的学习+不断的经历+不断的思考)。