


软件测试培训
达内IT学院
400-996-5531
接到一个测试的任务。其中一个逻辑是要将光标前的前10个字传给内核,内核进行拆词返给客户端联想内容。针对此功能进行了如下操作:长按删除了4个字,然后点击删除6个字,上屏删除的第一个字时通过打代码log发现没有进入正常的redo模式。
通过上述案例我们可以看到对于一些功能测试,如果测试手段仅局限于黑盒,那么情景中的bug就不会发现。但是情景中的测试方法也不是完全了解内层代码结构发现的问题,不属于白盒测试。那这种测试方法是什么呢?这是一种介于黑盒和白盒之间的测试方法——灰盒测试。
一、概念
灰盒测试,是基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。测试工作中除了进行黑盒层面的测试之外,对于复杂的功能模块进行实现层面了解,补充实现层面的可以测试的测试点,尽可能在测试广度上和测试深度上进行覆盖,我们称之为灰盒测试。
二、黑盒测试、灰盒测试、白盒测试区别
1、黑盒和灰盒的区别:
如果某软件包含多个模块,使用黑盒测试时,只要关心整个软件系统的边界,无需关心软件系统内部各个模块之间如何协作。而如果使用灰盒测试,就需要关心模块与模块之间的交互。
2、白盒和灰盒的区别:
在灰盒测试中,还是无需关心模块内部的实现细节。对于软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。而白盒测试则不同,还需要再深入地了解内部模块的实现细节和各个分支。
3、单元测试和灰盒的区别:
首先,在进行单元测试时,需要写一些测试代码(行话叫“桩代码”,叫stub)。一般来说,测试代码与被测试代码采用同种语言(比如Java的单元测试通常也用Java来写),且测试代码和被测试代码之间的耦合很紧密。因此,单元测试通常由开发人员来完成—测试人员的能力未必能胜任。
其次,单元测试的粒度会更细(会细到模块内部的类一级、函数一级),而灰盒测试仅仅到模块一级。
三、灰盒测试的优缺点
优点:
1、相对于黑盒测试,灰盒测试可以及早介入。
2、灰盒测试有助于测试人员理解系统结构,及早发现需求或设计不详细或不完整的问题,避免对测试进度造成影响。
3、能够保证设计的黑盒测试用例完整性,防止遗漏软件的一些不常用的功能或功能组合。
4、测试结果可以对应到程序内部路径,便于bug的定位、分析和解决,有利于提升测试人员能力。
5、相对于白盒能够进行基于需求的覆盖测试和基于程序路径覆盖的测试,但不需要花费大量精力写专用代码,速度比白盒快。
缺点:
1、不适用于简单的系统
2、对测试人员的要求比黑盒测试高
3、不如白盒测试深入
四、测试用例设计
从实际应用中看,灰盒测试就是产品实现层面的测试,需要在编写测试用例前了解到功能的实现逻辑,要知道特定条件下的数据输入输出情况,需要知道特定条件下数据发送和返回情况,从而在这些情况下设计测试用例,并且执行,从较黑盒深入层次发现问题,举例说明:一些接口的测试、与服务端交互请求测试、数据库层面的测试、容错测试等。本文以对服务器返回的json格式数据容错测试为例。
JSON 结构有两种,JSON 简单说就是 javascript 中的字典和数组,所以这两种结构就是字典和数组两种结构,通过这两种结构可以表示各种复杂的结构。
作者:晓梦
免责声明:文章内容来源于网络,版权归原作者所有,如有侵权,请联系我们删除。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有