发布新日志

  • 灰盒测试

    2009-07-17 09:29:16

    灰盒测试

    字体:        | 上一篇 下一篇 | 打印  | 我要投稿  | 每周一问,答贴有奖

      一直想找一灰盒测试方面的书及在网上找一些灰盒测试的方法及例子来给我部门的人讲讲,但一直没有找到好的资料,想想,还是把自己理解的一些灰盒测试相关的知识整理一下。

      灰盒测试的概念,在网上找了一下,觉得百度百科上写得不错,摘抄如下:

      “灰盒测试,确实是介于白盒测试黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。

      灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。

      灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。

      灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员视野之外的信息设计测试。”

      灰盒测试我的理解,灰盒测试是运用工具及开发知识,寻找软件黑盒的测试点。 灰盒测试属于黑盒测试的一部分,也是对一个黑箱子进行测试,只是灰盒测试点增加黑盒测试路径,也是黑盒测试人员的更高的境界。

     灰盒测试是要运用一些开发知识的,大家都认为要去学习开发知识。网上很多论坛也有人说做测试之前,最好要有一、二年的开发经验就比较好。做为黑盒测试人员,如果会当然好,但是大部分黑盒测试人员是没有开发经验,这里我谈谈黑盒测试人员学习什么,怎么去学习。

      1、多看、多分析、多总结缺陷

      测试人员应该多去看别人的发现的缺陷,特别是一个模块后,你测试完成后,别人再测试,心里一定要多问他为什么可以发现这些缺陷,你没有发现。多分析缺陷发生的原因,是由于开发人员业务不是很了解,还是在设计的问题,还是开发人员态度的问题。可以分类汇总发现的缺陷,也可以总结开发人员常犯的缺陷。

      2、和开发做朋友,充分交流。

      当发现一个缺陷时,我们应该了解缺陷发现的原因及一些原理。这些缺陷发现的原因只有开发人员很清楚,需要他跟你讲解。只有多和开发人员交流,你对缺陷发现的原因慢慢了解,你的水平才会得到提升。

      3、了解数据库结构及学习数据库知识

      在界面上你看不到的一些字段,往往是造成一些非常难发现的缺陷,因为这些字段是用来做控制作用。也可以利用数据库知识进行SQL注入。

      4、学习工具

      可以利用一些工具,方便我们去了解开发相关的知识,比如:Charles能够让我们查看所有网络和机器之间的HTTP流量情况。包括请求、响应、HTTP头信息(包含cookies和缓存)等。

      我觉得从上面四个方法着手,应该可以提高自己的水平。有人会问我要不要学习一门开发语言,如果有时间、有能力学当然好,但是不学习也没有关系。我觉得很多缺陷都是逻辑上、或者设计上没有考虑清楚造成的。 灰盒测试是要运用一些开发知识的,大家都认为要去学习开发知识。网上很多论坛也有人说做测试之前,最好要有一、二年的开发经验就比较好。做为黑盒测试人员,如果会当然好,但是大部分黑盒测试人员是没有开发经验,这里我谈谈黑盒测试人员学习什么,怎么去学习。

      1、多看、多分析、多总结缺陷

      测试人员应该多去看别人的发现的缺陷,特别是一个模块后,你测试完成后,别人再测试,心里一定要多问他为什么可以发现这些缺陷,你没有发现。多分析缺陷发生的原因,是由于开发人员业务不是很了解,还是在设计的问题,还是开发人员态度的问题。可以分类汇总发现的缺陷,也可以总结开发人员常犯的缺陷。

      2、和开发做朋友,充分交流。

      当发现一个缺陷时,我们应该了解缺陷发现的原因及一些原理。这些缺陷发现的原因只有开发人员很清楚,需要他跟你讲解。只有多和开发人员交流,你对缺陷发现的原因慢慢了解,你的水平才会得到提升。

      3、了解数据库结构及学习数据库知识

      在界面上你看不到的一些字段,往往是造成一些非常难发现的缺陷,因为这些字段是用来做控制作用。也可以利用数据库知识进行SQL注入。

      4、学习工具

      可以利用一些工具,方便我们去了解开发相关的知识,比如:Charles能够让我们查看所有网络和机器之间的HTTP流量情况。包括请求、响应、HTTP头信息(包含cookies和缓存)等。

      我觉得从上面四个方法着手,应该可以提高自己的水平。有人会问我要不要学习一门开发语言,如果有时间、有能力学当然好,但是不学习也没有关系。我觉得很多缺陷都是逻辑上、或者设计上没有考虑清楚造成的。

  • [转载]资深软件测试工程师必备知识

    2009-07-09 20:44:45

    做了这么久测试,最近又换了工作,结合以前的工作经验和面试心得,总结了资深测试工程师必备的技能,希望自己能够2年内在这些方面都有提高:
    1.测试理论知识
    有了理论知识做指导,才能对整个测试领域有一个各方面的认识,从而找准方向自己向哪方面努力;否则,连测试需要的技能和方向都不知道,怎么进步呢?
    2.开发经验能够提高很大的竞争力(优先级最高-重要不紧急)

    3.数据库知识和技术能力(优先级最高-重要不紧急)
    最普及使用的是oracle数据库,应多掌握;

    4.pl/sql开发技能,和sql的运用(优先级高-重要不紧急)
    5.网络知识(优先级高-重要不紧急)
    能够给软件环境搭建测试或生产环境;

    6.配置管理知识
    有了上面2,3,4,5的基础,学习这部分应该可以很快入门;
    7.操作系统unix,linux技能
    unix命令,能够写脚本

    8.较强的英语口语也会提升很大的竞争力
    每天中午看英语新闻,听听力.融入生活学习过程.

     

    自己的实际情况:

    最近三个月的精力主要放在java教程,oracle技术上;

    每天抽1小时学习java教程;

    每天抽1小时学习oracle知识;

    发现总是不经意的在网上随便闲逛一下,一晚上甚至一天的时间就过去了.
    自控力很弱的情形下,默认的就把网线拔掉了,需要查资料的时候再上网.

Open Toolbar