揭秘白盒与黑盒测试之间的秘密!-干货整理

结合了工作经验,写出了这篇文章,全是干货和经验分享。用您5分钟时间阅读完,希望能对您有帮助!

 

白盒测试

白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C++、Java、Visual J++等。

白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

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

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

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

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


黑盒测试

定义:黑盒测试法把程序看成一个黑盒子,完全不考虑程序内部结构和处理过程; 黑盒测试是在程序外部进行测试,他只是检查程序功能是否按照规格说明书的规定正常使用。黑盒测试又称功能测试。


软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

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

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

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

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

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


乐搏软件测试

白盒与黑盒的区别:任何工程产品都可以使用以下两种方法之一进行测试。

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

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。


白盒与黑盒的用处

初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。

接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上,主要采用黑盒测试方法,辅之以白盒测试方法。

10G海量软件测试相关资料,视频,工具等你来领

百度云链接点他👉链接:提取码: esyd

静态测试

通过运行程序测试软件称为动态测试。通过评审文档、阅读代码等方式测试软件称为静态测试。在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。

静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。

静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。

静态测试结果可用于进一步的查错,并为测试用例选取提供指导。


回归测试

是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法。大白话就是,我们测试人员在对程序进行测试时发现bug,然后返还程序员修改,程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序测试,已保证程序在修正了以前bug的情况下,正常运行,且不会带来新的错误的这样一个过程。 一般情况下是不需要全面测试的,而是根据修改的情况进行有效的测试。

 软件的缺陷等级应如何划分?

1.致命错误,可能导致本模块以及其他相关模块异常,死机等问题;

2.严重错误,问题局限在本模块,导致模块功能失效或异常退出;

3.一般错误,模块功能部分失效;

4.建议问题,由问题提出人对测试对象的改进意见.

软件测试的阶段

一般来说可分为单元测试,集成测试,系统测试,验收测试;


单元测试

是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。

单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。


集成测试

是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。


系统测试

是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。

集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。

10G海量软件测试相关资料,视频,工具等你来领

百度云链接点他👉链接:提取码: esyd

验收测试

是在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试数据的子集。

以上建议仅供参考!【乐搏软件测试】【乐搏学院

如有侵权请联系删除


乐搏学院

推荐阅读更多精彩内容