情景
小A最近接到一个测试联想的任务。其中一个逻辑是要将光标前的前10个字传给内核,内核进行拆词返给客户端联想内容。小A针对此功能进行了如下操作:长按删除了4个字,然后点击删除6个字,上屏删除的第一个字时通过打代码log发现没有进入正常的redo模式。
通过上述案例我们可以看到对于一些功能测试,如果测试手段仅局限于黑盒,那么情景中的bug就不会发现。但是情景中的测试方法也不是完全了解内层代码结构发现的问题,不属于白盒测试。那这种测试方法是什么呢?这是一种介于黑盒和白盒之间的测试方法—灰盒测试。
一、概念
灰盒测试,是基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。测试工作中除了进行黑盒层面的测试之外,对于复杂的功能模块进行实现层面了解,补充实现层面的可以测试的测试点,尽可能在测试广度上和测试深度上进行覆盖,我们称之为灰盒测试。
二、黑盒测试、灰盒测试、白盒测试区别
1、黑盒和灰盒的区别:
如果某软件包含多个模块,使用黑盒测试时,只要关心整个软件系统的边界,无需关心软件系统内部各个模块之间如何协作。而如果使用灰盒测试,就需要关心模块与模块之间的交互。
2、白盒和灰盒的区别:
在灰盒测试中,还是无需关心模块内部的实现细节。对于软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。而白盒测试则不同,还需要再深入地了解内部模块的实现细节和各个分支。
3、单元测试和灰盒的区别: