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) :不同浏览器,不同应用程序版本在实现功能时的表现情
况。


发布评论