for(int i=2;i<=n && k==1;i++){
if(m%i==0){
break;
}
}
上述代码意为当 k = 1 k=1 k=1 时,找到 [ 2 , n ] [2,n] [2,n] 区间内 m m m 的第一个因数,以此为例
判定,如if、for、while等判定语句块
条件(逻辑条件),而一个逻辑判断语句就对应了一个基础条件
若干基础条件可以通过与、或、非等逻辑连接词组成复合条件
注意,题目问满足覆盖所需的逻辑条件时,根据题意来自己判断是基础条件还是复合条件
如上述代码的逻辑判断子语句是i<=n 和 k==1 和m%i==0
如满足上述代码的100%判定覆盖所需的逻辑条件是i<=n 且 k=1 和 i>n 或 k≠1 和 m%i=0 和 m%i≠0
如满足上述代码的100%条件覆盖所需的逻辑条件是i<=n 和 i>n 和k=1 和 k≠1 和 m%i=0 和 m%i≠0
也就是说,有 n n n 个基础条件, n n n 个基础条件构成 m m m 个复合条件
测试用例是指一组变量的具体取值,一个测试用例可能可以同时满足多个逻辑条件
需要看清楚题目问的是100%覆盖所需的逻辑条件还是最少的测试用例,一个测试用例可能可以同时满足多个逻辑条件
如满足上述代码的100%条件覆盖的其中一组测试用例是
{n=2、m=3、k=1} :满足i<=n 且 k=1 和 m%i=0 和 m%i≠0{n=0、m=3、k=1} :满足i>n 或 k≠1如满足上述代码的100%条件覆盖的其中一组测试用例是
{n=2、m=3、k=1}:满足i<=n 和 k=1 和 m%i=0 和 m%i≠0{n=0、m=3、k=0}:满足i>n 和 k≠1所需逻辑条件的数量与最少测试用例数量并无直接关系……因为一个测试用例可能可以满足若干逻辑条件
void cal( int n ) {
int g, s, b, q;
if ( ( n > 1000 ) && ( n < 2000 ) ) {
g = n % 10;
s = n % 100 / 10;
b = n / 100 % 10;
q = n / 1000;
if( ( q + g ) == ( s + b ) ) {
printf("%-5d", n);
}
}
return;
}

本文关于逻辑覆盖部分写的较为简陋,详细的可以查看这篇文章
《白盒测试用例设计方法》
https://blog.csdn.net/tianlin151/article/details/115665358
逻辑覆盖包括以下:
void f(double x, double y, double z){
double num1, num2;//语句块1
if(x>=0 && y!=0){
num1=sqrt(x)/y;//语句块2
printf("num1 is %f\n",num1);//语句块2
}
else{
printf("num1 is invalid\n");//语句块3
}
if(z>=0){
num2=z;//语句块4
printf("num2 is %f\n",num2);//语句块4
}
else{
num2=-z;//语句块5
printf("num2 is %f\n",num2);//语句块5
}
printf("end of calculation\n");//语句块6
printf("goodbye\n");//语句块6
}
上述代码意为依次计算 x y \frac{\sqrt{x}}{y} yx 和 ∣ z ∣ |z| ∣z∣,流程图如下,后文以此为例

if(x>=0 && y!=0)判定,记为P1if(z>=0)判定,记为P2x>=0条件,记为C1y!=0条件,记为C2z>=0条件,记为C3设计测试用例,是对程序中每条语句至少被执行一次。
对于上例来说100%语句覆盖就是需要语句块1、语句块2、语句块3、语句块4、语句块5、语句块6均至少被执行一次
设计测试用例,使得程序中的每个判断的”真“和”假“都至少被执行一次。即:程序中的每个分支至少执行一次。
对于例子来说100%判定覆盖就是需要P1、P2各自都至少真一次和假一次
可达到100%判定覆盖的其中一组测试用例的满足情况:
设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。
对于例子来说100%条件覆盖就是需要C1、C2、C3各自都至少真一次和假一次
可达到100%条件覆盖的其中一组测试用例的满足情况:
设计测试用例,使得被测试程序中的每个判断本身的判定结果(真假)至少满足一次,同时,每个逻辑条件的可能值(真假)也至少被满足一次。即同时满足100%判定覆盖和100%条件覆盖的标准。
对于例子来说100%判定-条件覆盖就是需要P1、P2、C1、C2、C3各自都至少真一次和假一次
可达到100%判定-条件覆盖的其中一组测试用例的满足情况:
设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。
也就是说,有 n n n 个基础条件,每个基础条件都有一真一假2种情况,相互组合就会有 2 n 2^n 2n 个测试用例
可达到100%条件组合覆盖的其中一组测试用例的满足情况:
设计测试用例,覆盖程序中所有可能的路径。
对于例子来说就是需要路径a、b、c、d、e、f、g、h、i、j、k均至少走一次