白盒测试:(结构测试)是一种测试用例设计方法,在这里盒子指的是被测试的软件,把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
白盒测试技术一般可被分为静态分析和动态分析两类技术。
静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。
动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。
白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。
白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。
覆盖标准
逻辑覆盖
语句覆盖
判定覆盖(分支覆盖)
条件覆盖
判定/条件覆盖
条件组合覆盖
控制结构覆盖
基本路径测试
循环测试
条件测试
数据流测试
语句覆盖:是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。它是最弱的逻辑覆盖,效果有限,必须与其它方法交互使用。
判定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每一个分支至少都通过一次。判定覆盖只比语句覆盖稍强一些,但实际效果表明,只是判定覆盖,还不能保证一定能查出在判断的条件中存在的错误。因此,还需要更强的逻辑覆盖准则去检验判断内部条件。
条件覆盖:执行足够的测试用例,使程序中每个判断的每个条件的每个可能取值至少执行一次;条件覆盖深入到判定中的每个条件,但可能不能满足判定覆盖的要求。
判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。判定/条件覆盖有缺陷。从表面上来看,它测试了所有条件的取值。但是事实并非如此。往往某些条件掩盖了另一些条件。会遗漏某些条件取值错误的情况。为彻底地检查所有条件的取值,需要将判定语句中给出的复合条件表达式进行分解,形成由多个基本判定嵌套的流程图。这样就可以有效地检查所有的条件是否正确了。
条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。这是一种相当强的覆盖准则,可以有效地检查各种可能的条件取值的组合是否正确。它不但可覆盖所有条件的可能取值的组合,还可覆盖所有判断的可取分支,但可能有的路径会遗漏掉。测试还不完全。
白盒测试
- 白盒测试一般包括以下几项:
(1)、目的:保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。
(2)、测试项:所要测试的类。
(3)、测试依据:
A、需求规格说明书、用例描述清单;B、设计文档;C、编码规范;D、开发命名标准。
(4)、通过的准则:创建的类、接口、方法、属性应与《设计文档》保持一致;程序的各种命名、注释、代码行的格式等应符合《程序开发命名标准》和《编码规范》;程序模块能独立稳定运行。
(5)、测试环境配置:A、测试工具;B、软件环境。
- 测试步骤:
(1)、配置好测试环境;
(2)、编写测试用例;
(3)、静态测试、走查代码;
(4)、动态测试;
(5)、确定问题属性:分为四类,错误、缺陷、失效、故障。
错误是指计算值、观测值、测量值之间,或条件与真值之间,不符合规定的或理论上的正确值或条件。
缺陷是指与期望值或特征值的偏差。
故障是指功能部件不能执行所要求的功能。故障可能由错误、缺陷或失效引起。
失效是指功能部件执行其功能的能力丧失,系统或系统部件丧失了在规定限度内执行所要求功能的能力。
(6)、确定问题类别;
(7)、填写测试报告。
3.白盒测试和单元测试的区别:(1)、测试目的:一个是测试程序的整体逻辑,另一个是测试程序中一个独立的模块;(2)、通常的执行人员不一样:白盒一般由专门的白盒测试人员完成,单元测试一般由程序员自己完成。
基本路径法
----在程序控制图的基础上,通过分析控制构造的环行复杂性,导出基本可执行路径集合,从而设计测试用例。
----设计出的测试用例要保证在测试中程序的每一个基本独立路径至少执行一次。
在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可
执行路径集合,从而设计测试用例。包括以下4 个步骤和一个工具方法:
-
程序的控制流图:描述程序控制流的一种图示方法。
-
程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次 所必须的测试用例数目的上界。
-
导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。
-
准备测试用例:确保基本路径集中的每一条路径的执行。
来源:CSDN
作者:青梅竹码
链接:https://blog.csdn.net/weixin_43258908/article/details/103588503