数据流测试2025年3月17日 | 阅读 7 分钟 数据流测试用于分析程序中数据的流动。 它是收集关于变量在程序中如何流动数据的过程。 它试图获取过程中每个特定点的信息。 数据流测试是一组测试策略,用于检查程序中的控制流,以探索变量的序列,根据事件的序列。 它主要侧重于为变量赋值的点和这些值被使用的点,通过关注这两个点,可以测试数据流。 数据流测试使用控制流图来检测可能中断数据流的不合逻辑的事情。 在值和变量之间的关联过程中,会检测到数据流中的异常,原因是
让我们用一个例子来理解这一点 ![]() 在此代码中,我们总共有8个语句,我们将选择一条路径来覆盖所有8个语句。 正如代码中显而易见的那样,我们无法在单个路径中覆盖所有语句,因为如果语句2为真,则语句4、5、6、7未被覆盖,如果语句4为真,则语句2和3未被覆盖。 因此,我们采用两条路径来覆盖所有语句。 1. x= 1 Path - 1, 2, 3, 8 输出 = 2 当我们首先将x的值设置为1时,它会进入步骤1来读取并为x赋值(我们在路径中取1),然后进入语句2(x>0(我们在路径中取2)),该语句为真,然后进入语句3(a= x+1(我们在路径中取3)),最后进入语句8来打印x的值(输出为2)。 对于第二条路径,我们将x的值设为1 2. Set x= -1 Path = 1, 2, 4, 5, 6, 5, 6, 5, 7, 8 输出 = 2 当我们设置x的值为?1时,首先,它进入步骤1来读取并为x赋值(我们在路径中取1),然后进入步骤2,该步骤为假,因为x不大于0(x>0,且x=-1)。 由于条件为假,它不会进入语句3,而是直接跳转到语句4(我们在路径中取4),并且4为真(x<=0,且x小于0),然后进入语句5(x<1(我们在路径中取5)),该语句也为真,因此它将进入语句6(x=x+1(我们在路径中取6)),此处x增加了1。 所以, x=-1+1 x=0 x的值变为0。现在它进入语句5(x<1(我们在路径中取5))其中值为0,0小于1,因此为真。 进入语句6(x=x+1(我们在路径中取6)) x=x+1 x= 0+1 x=1 这里x变成了1,再次进入语句5(x<1(我们在路径中取5)),现在1不小于1,因此条件为假,它将进入else部分,即语句7(a=x+1,其中x的值为1),并将值赋给a(a=2)。 最后,它进入语句8并打印值(输出为2)。 为代码建立关联 关联在关联中,我们列出了所有定义及其所有用途。 (1, (2, f), x), (1, (2, t), x), (1, 3, x), (1, (4, t), x), (1, (4, f), x), (1, (5, t), x), (1, (5, f), x), (1, 6, x), (1, 7, x), (6,(5, f)x), (6,(5,t)x), (6, 6, x), (3, 8, a), (7, 8, a)。 如何在数据流测试中建立关联 <link>![]()
在数据流测试中,定义、c-use、p-use、c-use、一些p-use覆盖率、p-use、一些c-use覆盖率 <link>下一个任务是将所有关联分组到定义、c-use、p-use、c-use、一些p-use覆盖率、p-use、一些c-use覆盖率类别中。 请参阅以下代码 ![]() 因此,这些是包含定义、谓词使用(p-use)、计算使用(c-use)的所有关联 (1, (2, f), x), (1, (2, t), x), (1, 3, x), (1, (4, t), x), (1, (4, f), x), (1, (5, t), x), (1, (5, f), x), (1, 6, x), (1, 7, x), (6,(5, f)x), (6,(5,t)x), (6, 6, x), (3, 8, a), (7, 8, a), (3, 8, a), (7, 8, a) 定义变量的定义是当将值绑定到变量时变量的出现。 在上面的代码中,值在第一个语句中被绑定,然后开始流动。
所有定义覆盖率 (1, (2, f), x), (6, (5, f) x), (3, 8, a), (7, 8, a)。 谓词使用 (p-use)如果一个变量的值用于决定执行路径,则将其视为谓词使用(p-use)。 在控制流语句中有两个 语句4如果(x<=0)是谓词使用,因为它可以用作真或假谓词。 如果为真,则如果(x<1),6x=x+1; 执行路径将被执行,否则,将执行else路径。 计算使用 (c-use)如果一个变量的值用于计算输出值或用于定义另一个变量。 语句3 a= x+1 (1, 3, x) 这些是计算使用,因为x的值用于计算,a的值用于输出。 所有c-use覆盖率 (1, 3, x), (1, 6, x), (1, 7, x), (6, 6, x), (6, 7, x), (3, 8, a), (7, 8, a)。 所有c-use的一些p-use覆盖率 (1, 3, x), (1, 6, x), (1, 7, x), (6, 6, x), (6, 7, x), (3, 8, a), (7, 8, a)。 所有p-use的一些c-use覆盖率 (1, (2, f), x), (1, (2, t), x), (1, (4, t), x), (1, (4, f), x), (1, (5, t), x), (1, (5, f), x), (6, (5, f), x), (6, (5, t), x), (3, 8, a), (7, 8, a)。 收集这些组后,(通过检查每个点,变量是否至少使用过一次),测试人员可以看到所有语句和变量是否被使用。 代码中未使用但存在的语句和变量将从代码中删除。 下一主题控制流测试 |
我们请求您订阅我们的新闻通讯以获取最新更新。