2024年4月16日发(作者:)

定义:

什么是黑盒测试和白盒测试?

任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否

符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合

设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做

一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规

格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱

动测试。黑盒 测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看

做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测

试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否

与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对

程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。

方法:

4.黑盒测试方法是什么?

黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于

软件确认测试。

5、白盒测试的方法?

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆

盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。

6.什么是集成系统单元测试

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设

计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽

然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来

的问题,在全局上很可能暴露出来,影响功能的实现

单元测试:针对程序某一模块功能的具体实现、内部逻辑结构以及数据流向,进行正

确性检验的测试工作

集成测试:针对概要设计所包含的模块以及模块组合进行的测试(通过了单元测试的

各个模块所集成起来的组件)各个单元模块之间的接口,以及各个模块集成后所实现的功

系统测试:属于后期测试,主要是根据需求规格说明书进行的,是从用户角度来进行

的功能测试和性能测试等等,证明系统是否满足用户的需求。将已经集成好的软件系统,

作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其

它系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测

试和确认测试。

详细:

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,通过测试来检

测产品内部动作是否按照规格说明书的规定正常进行,而不顾它的功能,这种测试发现问

题最早,效果也是最好的。这一阶段测试以软件开发人员为主。

软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:

– 对程序模块的所有独立的执行路径至少测试一次;

– 对所有的逻辑判定,取 “ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次;

– 在循环的边界和运行界限内执行循环体;

– 测试内部数据结构的有效性,等。

具体包含的逻辑覆盖有: – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 –

条件组合覆盖 – 路径覆盖。

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试

来检测每个功能是否都能正常使用。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、

针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,不仅要测试所有合法的输

入,还要测试非法的输入

黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测,主要用于软件确

认测试。

因果图导出测试用例需要经过的一般步骤:

1.分析程序规格说明的描述中,哪些是原因,哪些是结果。

2.分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的

因果图

3.在因果图上使用若干个特殊的符号标明特定的约束条件

4.把因果图转换成判定表

5.把判定表中每一列表示的情况写成测试用例

回归测试:软件发生了改变,是发现了错误并做了修改,或在集成或维护阶段加入了

新的模块,这种情况下可能开发者对错误理解的不够透彻,只修正了错误的外在表现,而

没有修复错误本身,从而错误仍然存在,并可能引发新的错误;而新加入的模块代码中有

可能含有错误,还有可能对原有的代码带来影响。当软件发生变化时,必须重新测试现有

的功能,确定修改是否达到了预期的目的,同时还需设计新的测试用例来测试新的或被修

改了的功能。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很

大的工作量比重,软件开发的各个阶段都会进行多次回归测试。

1正确性 (Correctness) :计算结果,命名等方面。

2可用性 (Usability) :是否可以满足软件的需求说明。

3边界条件 (Boundary Condition) :输入部分的边界值,就是使用一般书中说的等

价类划分,试试最大最小和非法数据等等。

4 性能 (Performance) : 正常使用的时间内系统完成一个任务需要的时间,多人同

时使用的时候响应时间在可以接受范围内。一般原则是 3 秒以下接受, 3-5 秒可以接受,

5 秒以上就影响易用性了。

5压力测试 (Stress) :多用户情况可以考虑使用压力测试工具,可将压力和性能测试

结合起来进行。查看服务器 CPU 使用率,内存占用情况,模拟大量数据输入,对硬盘的

影响等等信息。如果有必要的话必须进行性能优化 ( 软硬件都可以 ) 。

6错误恢复 (Error Recovery) :错误处理,页面数据验证(突然间断电,输入脏数据

等)。

7 安全性测试 (Security) :一些商务网站,或者跟钱有关,或者和公司秘密有关的

web 更是需要这方面的测试

8 兼容性 (Compatibility) :不同浏览器,不同应用程序版本在实现功能时的表现情

况。