白盒测试
一、 实验目的
1、 掌握白盒测试的基础知识;
2、 掌握白盒测试的检查内容及测试目的;
3、 掌握黑盒测试的几种基本测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖。
二、 实验内容
实验题目
l 对实验一1、3题使用逻辑覆盖法进行测试用例设计。
1、设计函数实现输入日期显示星期几
流程图:
(1)语句覆盖
输入 |
测试路径 |
测试结果 |
||
年 |
月 |
日 |
||
1899 |
13 |
32 |
12 |
输入日期无效 |
1822 |
11 |
28 |
12 |
输入日期无效 |
1901 |
13 |
20 |
134 |
输入日期无效 |
1901 |
10 |
55 |
1356 |
输入日期无效 |
(2)判断覆盖
输入 |
测试路径 |
测试结果 |
||
年 |
月 |
日 |
||
1899 |
13 |
32 |
12 |
输入日期无效 |
1822 |
11 |
28 |
12 |
输入日期无效 |
1901 |
13 |
20 |
134 |
输入日期无效 |
1901 |
10 |
55 |
1356 |
输入日期无效 |
2024 |
4 |
18 |
1357 |
星期四 |
(3)条件覆盖
输入 |
测试路径 |
测试结果 |
||
年 |
月 |
日 |
||
2000 |
2 |
31 |
1356 |
输入日期无效 |
2008 |
2 |
16 |
1357 |
星期四 |
1900 |
1 |
31 |
1357 |
星期一 |
1890 |
1 |
31 |
12 |
输入日期无效 |
1900 |
-1 |
31 |
134 |
输入日期无效 |
1900 |
1 |
32 |
1356 |
输入日期无效 |
1900 |
13 |
5 |
134 |
输入日期无效 |
1900 |
5 |
16 |
1357 |
星期三 |
(4)判定条件覆盖
输入 |
测试路径 |
测试结果 |
||
年 |
月 |
日 |
||
2000 |
2 |
31 |
1356 |
输入日期无效 |
2008 |
2 |
16 |
1357 |
星期四 |
1900 |
1 |
31 |
1357 |
星期一 |
1890 |
1 |
31 |
12 |
输入日期无效 |
1900 |
-1 |
31 |
134 |
输入日期无效 |
1900 |
1 |
32 |
1356 |
输入日期无效 |
1900 |
13 |
5 |
134 |
输入日期无效 |
1900 |
5 |
16 |
1357 |
星期三 |
(5)条件组合覆盖
输入 |
测试路径 |
测试结果 |
||
年 |
月 |
日 |
||
2000 |
2 |
-11 |
1356 |
输入日期无效 |
2008 |
2 |
16 |
1357 |
星期四 |
2099 |
1 |
31 |
12 |
输入日期无效 |
1890 |
1 |
31 |
12 |
输入日期无效 |
1900 |
-1 |
31 |
134 |
输入日期无效 |
1900 |
1 |
333 |
1356 |
输入日期无效 |
1900 |
13 |
5 |
134 |
输入日期无效 |
1900 |
5 |
16 |
1357 |
星期三 |
- 自动售货机
流程图
测试用例:
语句覆盖/条件覆盖 |
|||
输入 |
测试路径 |
测试结果 |
|
Button1 |
Button2 |
||
e |
1 |
1-2-3 |
输入无效 |
1 |
e |
1-2-4-5-3 |
输入无效 |
2 |
2 |
1-2-4-5-6-8-9-14 |
取走橙汁 |
1 |
1 |
1-2-4-5-6-8-10-11-14 |
取走啤酒,找零五角 |
1 |
2 |
1-2-4-5-6-8-10-12-13-14 |
取走橙汁,找零五角 |
2 |
1 |
1-2-4-5-6-7-14 |
取走啤酒 |
|
|
|
|
路径覆盖 |
|||
输入 |
测试路径 |
测试结果 |
|
Button1 |
Button2 |
||
e |
1 |
1-2-4-5-3 |
输入无效 |
2 |
1 |
1-2-4-5-6-7-14 |
取走啤酒 |
2 |
2 |
1-2-4-5-6-8-9-14 |
取走橙汁 |
1 |
1 |
1-2-4-5-6-8-10-11-14 |
取走啤酒,找零五角 |
1 |
2 |
1-2-4-5-6-8-10-12-13-14 |
取走橙汁,找零五角 |
1 |
e |
1-2-4-5-3 |
输入无效 |
l 对实验一2、4题使用基本路径法进行测试用例设计。
2、找零钱最佳组合
计算复杂度V(G)
判定节点数(4)+1=5
测试用例
基本路径法(5) |
|||
输入 |
测试路径 |
测试结果 |
|
商品价格 |
支付金额 |
||
e |
99 |
1-4 |
输入无效 |
99 |
a |
1-2-4 |
输入无效 |
32 |
999 |
1-2-3-4 |
输入无效 |
20 |
10 |
1-2-3-4 |
输入无效 |
30 |
64 |
1-2-3-5-6 |
1元4张 5元0张 10元3张 50元0张 |
4.航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。
计算复杂度V(G)
判定节点数(8)+1=9
测试用例
基本路径法(9) |
||||
输入 |
测试路径 |
测试结果 |
||
航线 |
舱位 |
飞行时间 |
||
e |
1 |
2 |
1-4 |
输入无效 |
1 |
e |
2 |
1-2-4 |
输入无效 |
1 |
2 |
e |
1-2-3-4 |
输入无效 |
1 |
2 |
2 |
1-2-3-5-6 |
食物供应,播放电影 |
2 |
1 |
1 |
1-2-3-5-7-8 |
食物供应,播放电影 |
2 |
2 |
1 |
1-2-3-5-7-9-10 |
食物供应 |
3 |
1 |
2 |
1-2-3-5-7-9-11-12 |
食物供应 |
3 |
2 |
2 |
1-2-3-5-7-9-11-13-15 |
食物供应 |
3 |
2 |
1 |
1-2-3-5-7-9-11-13-14 |
无 |
l 5、
判定覆盖
1.输入表格
Employee Table
NAME |
JOB CODE |
DEPT |
Salary |
A |
E |
1 |
10000 |
B |
E |
1 |
9000 |
C |
M |
1 |
16000 |
D |
E |
1 |
15000 |
E |
E |
2 |
15000 |
F |
E |
2 |
15000 |
Department Table
DEPT |
SALES |
1 |
50000 |
2 |
30000 |
输出为0
2.输入表格
Employee Table
NAME |
JOB CODE |
DEPT |
Salary |
|
|
|
|
Department Table
DEPT |
SALES |
|
|
输出为1
3.输入表格
Employee Table
NAME |
JOB CODE |
DEPT |
Salary |
A |
E |
2 |
15000 |
B |
E |
2 |
15000 |
Department Table
DEPT |
SALES |
1 |
50000 |
2 |
30000 |
输出为2
条件覆盖
1.输入表格
Employee Table
NAME |
JOB CODE |
DEPT |
Salary |
A |
E |
1 |
10000 |
B |
E |
1 |
9000 |
C |
M |
1 |
16000 |
D |
E |
1 |
15000 |
E |
E |
2 |
15000 |
F |
E |
2 |
15000 |
Department Table
DEPT |
SALES |
1 |
50000 |
2 |
30000 |
输出为0
2.输入表格
Employee Table
NAME |
JOB CODE |
DEPT |
Salary |
A |
E |
1 |
12000 |
Department Table
DEPT |
SALES |
|
|
输出为1
3.输入表格
Employee Table
NAME |
JOB CODE |
DEPT |
Salary |
A |
E |
2 |
15000 |
B |
E |
2 |
15000 |
Department Table
DEPT |
SALES |
1 |
50000 |
2 |
30000 |
输出为2
三、 实验步骤及结果
- 遇到了哪些问题
整体来说,问题不是很多,大部分在于对测试用例的设计和对一些覆盖的不清楚
- 问题如何解决的
最终网上搜索解决疑问。
- 收获
学会了白盒测试
四、 个人体会
白盒测试的主要目的是验证软件的内部结构和逻辑是否正确、完整和符合规范。白盒测试有六种测试类型:句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖。可以帮助我们进行程序的测试。相比于黑盒测试,白盒测试可以帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署