简单地说,软件测试可以分为两大类:黑盒测试与白盒测试。
白盒测试:是通过程序的源代码进行测试而不使用用户界面,这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中
的缺点或者错误,进而加以修正。
黑盒测试:又被称为功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查
程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。
其大致原理如下图所示:
黑盒测试与白盒测试的一些简单对比,如下表所示,两者的主要区别显而易见:
黑盒测试注重于测试软件的功能需求,主要试图发现下列几类错误:
1. 功能不正确或遗漏;
2. 界面错误;
3. 输入和输出错误;
4. 数据库访问错误;
5. 性能错误;
6. 初始化和终止错误等。
测试原理:
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们
不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测
试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测
试行为具体量化的方法之一。
具体的黑盒测试用例设计方法包括:
1. 等价类划分法;
2. 边界值分析法;
3. 错误推测法;
4. 因果图法;
5. 判定表驱动法;
6. 正交试验设计法;
7. 功能图法;
8. 场景法等。
黑盒测试的大致流程:
1. 测试计划
首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕
着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
2. 测试设计
将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响到测试结
果的有效性)。
3. 测试开发
建立可重复使用的自动测试过程。
4. 测试执行
执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,
测试人员应本着科学负责的态度,一步一个脚印地进行测试。
5. 测试评估
结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。
黑盒测试的缺陷:
如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。