软件测试方法之黑盒测试与白盒测试
摘要:黑盒测试与白盒测试都是软件测试的重要方法。白盒测试是通过程序的源代码进行测试而不使用用户界面,它主要用于检测软件编码过程中的错误;而黑盒测试是是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的,它主要检测软件的每一个功能是否能够正常使用。他们是相辅相成的。
关键词:黑盒测试;白盒测试;优缺点;软件测试
【1】

2.3黑盒测试的目的
黑盒测试主要是为了发现以下错误:是否有不正确或者遗漏了的功能;在接口上,输入能否正确的接受;能否输出正确的结果;是否有数据结构错误或外部信息(例如数据库文件)访问错误;性能上是否能够满足要求;是否有初始化或终止性错误等。
2.4黑盒测试的优缺点
黑盒测试优点:上手简单,只需关注PRD和业务逻辑,测试者不受任何特定编程语言知识的压力,可以测试应用程序/软件的可靠性和功能性;用户视角,更贴合真实用户使用场景;有助于识别功能规范中矛盾和模糊性。
黑盒测试缺点:测试质量高低受测试工程师经验影响,测试工程师的经验越高,对测试越有利;异常场景比较难覆盖,比较难提供直观的测试覆盖率;用例代码覆盖率低,不能用于测试复杂的代码段;测试所有可能的输入流是不可能的,因为这很耗时,并且最终将使许多程序路径未经测试。
3.白盒测试
3.1白盒测试概念
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部的工作过程,可通过测试产品内部动作是否按照规格说明书说明的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能[5]。其主要用于软件验证。
3.2白盒测试原理
软件的白盒测试是对软件的过程性细节做细致的检查。白盒测试把测试对象看做一个打开的的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对所有逻辑路径进行测试,在程序的不同点检查程序的状态,来判定其实际情况是否和预期的状态相一致。白盒测试的主要方法有代码检查法、静态结构分析法、基本路径分析法、逻辑覆盖法等。
3.3白盒测试的目的
白盒测试主要是想对程序模块进行如下检查:对程序模块的所有独立的执行路径至少测试一遍;对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍;在循环的边界和运行的界限内执行循环体;测试内部数据结构的有效性,等等。
3.4白盒测试的优缺点
白盒测试优点:(白盒测试要求对某些程序的结构特性做到一定程度的覆盖,或者说是“基于覆盖率的测试”)迫使测试人员去仔细思考软件的实现;容易自动;用例覆盖率高,可以检查代码中的每条分支和路径;异常场景易发现;对代码的测试比较彻底,可以揭示隐藏在代码中的错误。
白盒测试缺点:投入成本高,昂贵;更多以开发视角出发,容易脱离业务;无法检测代码中遗漏的路径和数据的敏感性错误;无法坚持程序的外部特征;白盒测试也并不验证规格的正确性;即使每条路径都测试了仍然可能有错误。
5结论
软件测试有一个致命的缺陷,即测试的不完全性、不确定性,这是因为任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试。黑盒测试与白盒测试相辅相成,各有所长,两者并不矛盾。且两者都是保障产品质量的不同手段,软件测试需要两者的结合。黑盒测试对于确保系统按照预期实现很关键,而实现黑盒测试并不需要掌握太多的编码知识,因为它检查的是整个软件或者软件功能,而不需要检查代码。这个时候进行白盒测试所需要掌握的了解系统的逻辑过程和工作原理更加重要。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!