每一个高级测试工程师都应该掌握的测试方法

发布于:2022-12-17 ⋅ 阅读:(177) ⋅ 点赞:(0)

对于一些功能测试,如果测试手段仅局限于黑盒,那么情景中的bug就不会发现。但是情景中的测试方法也不是完全了解内层代码结构发现的问题,不属于白盒测试。那这种测试方法是什么呢?这是一种介于黑盒和白盒之间的测试方法—灰盒测试。

一、概念

灰盒测试,是基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。测试工作中除了进行黑盒层面的测试之外,对于复杂的功能模块进行实现层面了解,补充实现层面的可以测试的测试点,尽可能在测试广度上和测试深度上进行覆盖,我们称之为灰盒测试。

二、黑盒测试、灰盒测试、白盒测试区别

1、黑盒和灰盒的区别:

如果某软件包含多个模块,使用黑盒测试时,只要关心整个软件系统的边界,无需关心软件系统内部各个模块之间如何协作。而如果使用灰盒测试,就需要关心模块与模块之间的交互。

2、白盒和灰盒的区别:

在灰盒测试中,还是无需关心模块内部的实现细节。对于软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。而白盒测试则不同,还需要再深入地了解内部模块的实现细节和各个分支。

3、单元测试和灰盒的区别:

首先,在进行单元测试时,需要写一些测试代码(行话叫“桩代码”,叫stub)。一般来说,测试代码与被测试代码采用同种语言(比如Java的单元测试通常也用Java来写),且测试代码和被测试代码之间的耦合很紧密。因此,单元测试通常由开发人员来完成—测试人员的能力未必能胜任。

其次,单元测试的粒度会更细(会细到模块内部的类一级、函数一级),而灰盒测试仅仅到模块一级。

三、灰盒测试的优缺点

优点:

1、相对于黑盒测试,灰盒测试可以及早介入

2、灰盒测试有助于测试人员理解系统结构,及早发现需求或设计不详细或不完整的问题,避免对测试进度造成影响

3、能够保证设计的黑盒测试用例完整性,防止遗漏软件的一些不常用的功能或功能组合

4、测试结果可以对应到程序内部路径,便于bug的定位、分析和解决,有利于提升测试人员能力

5、相对于白盒能够进行基于需求的覆盖测试和基于程序路径覆盖的测试,但不需要花费大量精力写专用代码,速度比白盒快

缺点:

1、不适用于简单的系统

2、对测试人员的要求比黑盒测试高

3、不如白盒测试深入

四、测试用例设计

从小编实际应用中看,灰盒测试就是产品实现层面的测试,需要在编写测试用例前了解到功能的实现逻辑,要知道特定条件下的数据输入输出情况,需要知道特定条件下数据发送和返回情况,从而在这些情况下设计测试用例,并且执行,从较黑盒深入层次发现问题,举例说明:一些接口的测试、与服务端交互请求测试、数据库层面的测试、容错测试等。本文以对服务器返回的json格式数据容错测试为例。

JSON 结构有两种,JSON 简单说就是 java 中的字典和数组,所以这两种结构就是字典和数组两种结构,通过这两种结构可以表示各种复杂的结构。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  


网站公告

今日签到

点亮在社区的每一天
去签到