一直想找一灰盒测试方面的书及在网上找一些灰盒测试的方法及例子来给我部门的人讲讲,但一直没有找到好的资料,想想,还是把自己理解的一些灰盒测试相关的知识整理一下。
灰盒测试的概念,在网上找了一下,觉得百度百科上写得不错,摘抄如下:
“灰盒测试,确实是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。
灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。”
灰盒测试我的理解,灰盒测试是运用工具及开发知识,寻找软件黑盒的测试点。 灰盒测试属于黑盒测试的一部分,也是对一个黑箱子进行测试,只是灰盒测试点增加黑盒测试路径,也是黑盒测试人员的更高的境界。
灰盒测试是要运用一些开发知识的,大家都认为要去学习开发知识。网上很多论坛也有人说做测试之前,最好要有一、二年的开发经验就比较好。做为黑盒测试人员,如果会当然好,但是大部分黑盒测试人员是没有开发经验,这里我谈谈黑盒测试人员学习什么,怎么去学习。
1、多看、多分析、多总结缺陷
测试人员应该多去看别人的发现的缺陷,特别是一个模块后,你测试完成后,别人再测试,心里一定要多问他为什么可以发现这些缺陷,你没有发现。多分析缺陷发生的原因,是由于开发人员业务不是很了解,还是在设计的问题,还是开发人员态度的问题。可以分类汇总发现的缺陷,也可以总结开发人员常犯的缺陷。
2、和开发做朋友,充分交流。
当发现一个缺陷时,我们应该了解缺陷发现的原因及一些原理。这些缺陷发现的原因只有开发人员很清楚,需要他跟你讲解。只有多和开发人员交流,你对缺陷发现的原因慢慢了解,你的水平才会得到提升。
3、了解数据库结构及学习数据库知识
在界面上你看不到的一些字段,往往是造成一些非常难发现的缺陷,因为这些字段是用来做控制作用。也可以利用数据库知识进行SQL注入。
4、学习工具
可以利用一些工具,方便我们去了解开发相关的知识,比如:Charles能够让我们查看所有网络和机器之间的HTTP流量情况。包括请求、响应、HTTP头信息(包含cookies和缓存)等。
我觉得从上面四个方法着手,应该可以提高自己的水平。有人会问我要不要学习一门开发语言,如果有时间、有能力学当然好,但是不学习也没有关系。我觉得很多缺陷都是逻辑上、或者设计上没有考虑清楚造成的。 灰盒测试是要运用一些开发知识的,大家都认为要去学习开发知识。网上很多论坛也有人说做测试之前,最好要有一、二年的开发经验就比较好。做为黑盒测试人员,如果会当然好,但是大部分黑盒测试人员是没有开发经验,这里我谈谈黑盒测试人员学习什么,怎么去学习。
1、多看、多分析、多总结缺陷
测试人员应该多去看别人的发现的缺陷,特别是一个模块后,你测试完成后,别人再测试,心里一定要多问他为什么可以发现这些缺陷,你没有发现。多分析缺陷发生的原因,是由于开发人员业务不是很了解,还是在设计的问题,还是开发人员态度的问题。可以分类汇总发现的缺陷,也可以总结开发人员常犯的缺陷。
2、和开发做朋友,充分交流。
当发现一个缺陷时,我们应该了解缺陷发现的原因及一些原理。这些缺陷发现的原因只有开发人员很清楚,需要他跟你讲解。只有多和开发人员交流,你对缺陷发现的原因慢慢了解,你的水平才会得到提升。
3、了解数据库结构及学习数据库知识
在界面上你看不到的一些字段,往往是造成一些非常难发现的缺陷,因为这些字段是用来做控制作用。也可以利用数据库知识进行SQL注入。
4、学习工具
可以利用一些工具,方便我们去了解开发相关的知识,比如:Charles能够让我们查看所有网络和机器之间的HTTP流量情况。包括请求、响应、HTTP头信息(包含cookies和缓存)等。
我觉得从上面四个方法着手,应该可以提高自己的水平。有人会问我要不要学习一门开发语言,如果有时间、有能力学当然好,但是不学习也没有关系。我觉得很多缺陷都是逻辑上、或者设计上没有考虑清楚造成的。