一、实验原理
白盒测试和黑盒测试是软件测试的两类不同方法,其各有所长,相互补充,在测试过程
的早期阶段主要使用白盒测试技术,而在测试的后期主要使用黑盒测试技术。
1.白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否
符合设计规格要求,所有内部成分是否以经过检查。
它是把程序堪称装在一个透明的白盒字里,也就是完全了解程序的结构和处理过程。这
种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确
工作。其又称为结构测试。
2.黑盒测试原理:已知产品的功能设计规格,可以进行测试证明每个实现了的功能
是否符合要求。软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试
对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程
序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能
测试。
二、实验内容
(1)将课本 P106 页例子进行白盒测试,使用条件覆盖进行测试。
(2)编写程序将十六进制转十进制,将此程序分别进行黑盒测试。要求写出具体的测
试用例和详细的测试步骤,最大的可能地发现错误。
十六进制数的规格为:①以 0X 或 0x 开头;②不能有空格;③数字不能超过四位。
白盒测试:
(1)保证每个模块中的所有独立路径至少被执行一次
(2)对所有的逻辑值均需要测试真、假两个分支
(3)在上下边界及可操作范围内运行所有循环
(4)检查内部数据结构以确保其有效性。
黑盒测试力图发现下述类型错误:
(1)功能不正确或遗漏了功能
(2)界面错误
(3)数据结构错误或外部数据库访问错误
(4)性能错误
(5) 初始化和终止错误
三、实验仪器
计算机 Microsoft office Visio 2003 软件 Microsoft Visual C++ 6.0 软件
四、 实验流程图
1.白盒测试:
条件覆盖的含义是:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都去
到各种可能的结果。
条件覆盖:
1.执行路径 s-a-c-b-e-d 条件
A=2,B=0,
使用的数据为:A =2,B=0
2.执行路径 s-a-b-d:
A<=1 x<=1
2.黑盒测试
黑盒测试是完全不考虑程序的内部结构和处理过程。它是在程序接口进行的测试,从而检验
程序是否每个功能都能正常使用。因此根据本例数据输入的特点,用黑盒测试时首先可用“等
价分类法”划分输入的等价类,然后用“边界值分析法”和“猜错法”作补充。
十六进制数的规格为:①以 0X 或 0x 开头;②不能有空格;③数字不能超过四位。
(1)输入最大的十六进制正数。
输入:0xffff
预期输出:65535
实际输出:
-1-
(2)输入的是最小的十六进制负数。
输入:-0xffff
预期输出:-65535
实际输出:
(3)太大的正整数
输入:0x1234567
预期输出:数据过大
实际输出:
(4)太小的负数
输入:-0x1234567
预期输出:数据过小
实际输出:
(5)0x 与 1~4 位数字组成的数字串,输出是合法的正整数。
输入:0x1100
预期输出:4532
实际输出:
(6)-0x 与 1~4 位数字组成的数字串,输出时合法的正整数。
输入:-0x1100
预期输出:-4352
实际输出:
(7)0x 与数字串 0 组成的数字串,输出是 0。
输入:0x000
预期输出:0
-2-
实际输出:
(8)负号与 0x 与数字串 0 组成的字符串,输出是 0。
输入:-0x0000
预期输出:0
实际输出:
(9)输入 0x 与空字符串
输入:0x
预期输出:不是十六进制数
实际输出:
(10)输入十六进制标志 0x 之间有空格
输入:0 x0001
预期输出:不是十六进制数
实际输出:
(11)输入十六进制数字串中有空格
输入:0x0 111
预期输出:不是十六进制数
实际输出:
(12)输入十六进制数最低位数字串中有空格
输入:0x0111
预期输出:不是十六进制数
实际输出:
(13)负号之前有空格
输入: -0x1111
-3-
预期输出:不是十六进制数
实际输出:
(14)数据字符串之间含有其他字符
输入:0x2q4
预期输出:不是十六进制数
实际输出:
(15)十六进制标志 0x 之间包含其他字符
输入:-0qx012
预期输出:不是十六进制数
实际输出:
(16)输入的字符串不包含 0x
输入:1234
预期输出:不是十六进制数
实际输出:
(17)十六进制 0x 的前面是+号
输入:+0x1234
预期输出:不是十六进制数
实际输出:
(18)输入可能为八进制数
输入:O123
预期输出:不是十六进制数
实际输出:
PS:以上程序输出不是十六进制数即为不符合实验要求规格的十六进制数。
五、 实验总结
-4-
通过本次黑白盒测试实验,从编代码到一步步的测试中,我才真正体会到了软件测试在
软件过程中的重要性,每一次测试都能发现新的错误,直到实验做完代码才算是比较完
整的程序了。此次实验让我们更好的理解了黑白盒测试的原理以及软件测试的重要性。
-5-
-6-
-7-