黑盒测试与白盒测试
白盒测试是一种结构测试方法,测试者需要了解软件的内部实现和逻辑结构,直接对代码进行测试。关注程序的控制流、数据流和逻辑执行路径。
一、黑盒测试(Black-Box Testing)
1. 黑盒测试的定义
黑盒测试是一种功能测试方法,测试者无需了解软件的内部实现细节,而是专注于软件的输入、输出和功能行为。
软件被视为一个“黑盒子”,测试者只需要验证其功能是否符合要求。
2. 黑盒测试的特点
不关心代码实现和内部逻辑。
基于软件需求规格说明书或功能描述文档。
主要测试功能性和非功能性需求。
3. 常见测试方法
等价类划分:将输入数据划分为若干等价类,从每个类中选择代表性数据进行测试。
边界值分析:测试输入值的边界情况(如最大值、最小值、临界值)。
决策表测试:用表格形式表示条件与动作的组合,覆盖所有可能的输入组合。
场景测试:模拟用户实际使用场景,验证系统是否按预期工作。
4. 黑盒测试的优缺点
优点:
无需了解代码,测试门槛低。
能够在早期发现需求或设计中的缺陷。
适用于各种规模的软件功能验证。
缺点:
难以覆盖代码的内部逻辑,可能遗漏隐含的缺陷。
测试效率可能较低,尤其在功能复杂时。
5. 黑盒测试例题
例1
电影院订票系统结算过程的其中一个页面,要求输入预订人手机号(11 位数字),以及订票数量(一次最多预订 10 张)。经过此页面的验证程序验证,一次定5张及以上的,票价打9折,页面显示“9折优化购票”;其他符合输入和订票数量限定的,则显示“无优惠购票”;不符合输入要求的情况,页面显示“输入错误”。
要求:现要对该程序进行黑盒测试。
(1)请你先列出划分的全部等价类;
(2)再写出任意一个用于正确性测试的测试用例;
(3)写出任意一个用于健壮性测试的测试用例。
(1)等价类划分
根据题目描述,划分的等价类如下:
(2)正确性测试用例
用于验证程序在有效输入下的正确输出。
手机号有效,订票数量在1到4范围内,符合无优惠购票条件
(3)健壮性测试用例
用于验证程序在无效输入下的处理,注意:在测试健壮性时,一个单独的测试数据对应一个无效等价类。
手机号不足11位,属于无效输入
订票数量大于10,属于无效输入
例2
现有一个在线商城结算页面,其要求如下:
输入用户的会员编号(8位数字)。
输入购买的商品数量(1到50之间)。
如果购买数量 ≥ 20,商品单价享受8折优惠,并显示“8折优惠价”。
其他符合输入要求的,显示“无优惠价格”。
不符合输入要求的,页面显示“输入错误”。
要求:现要对该程序进行黑盒测试。
(1)请你先列出划分的全部等价类,以表格形式给出;
(2)再写出任意一个用于正确性测试的测试用例;
(3)写出任意一个用于健壮性测试的测试用例。
(1)等价类划分
(2)正确性测试用例
(3)健壮性测试用例
二、白盒测试(White-Box Testing)
1. 白盒测试的定义
白盒测试是一种结构测试方法,测试者需要了解软件的内部实现和逻辑结构,直接对代码进行测试。
关注程序的控制流、数据流和逻辑执行路径。
2. 白盒测试的特点
基于源码实现,验证代码的正确性。
需要对代码逻辑和结构有深入理解。
主要测试软件的内部逻辑和执行路径。
3. 常见测试方法
语句覆盖:确保每个代码语句至少被执行一次。
分支覆盖:确保每个分支条件(如 if 或 else)都被执行至少一次。
路径覆盖:确保程序中每条可能的执行路径都被覆盖(复杂度高)。
条件覆盖:测试所有布尔条件的真值组合。
4. 白盒测试的优缺点
优点:
测试代码的细节,能够发现隐藏的逻辑缺陷。
有助于优化代码和提升性能。
能保证测试用例对代码的覆盖率。
缺点:
测试成本较高,需要熟悉代码实现。
难以测试大型系统的所有执行路径。
5. 白盒测试例题
(1)判断覆盖
(2)条件组合覆盖


(3)路径覆盖
(注:箭线上的数字代表路径编号。本题需要说明每组测试用例在测试运行时所经过的路径。)
更多推荐
所有评论(0)