● 阅读下列流程图:
当用判定覆盖法进行测试时,至少需要设计 (35) 个测试用例。
(35)A. 2 B. 4 C. 6 D. 8
A.语句覆盖率应至少达到60%
B.分支覆率应至少达到96%
C.对输出数据及其格式进行测试
D.软件单元的每个特性应至少被一个正常测试用例和一个异常测试用例覆盖
A.3
B.4
C.5
D.8
阅读下列说明,回答问题1至问题3。
【说明】
以下代码由C语言书写,在输入3个整数后,能够输出最大数和最小数。
int main(void)
{
int a, b, c, max, min;
printf("input three numbers: ");
scanf("%d%d%d", &a, &b, &c);
if(a>b) /*判断1*/
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
if(max<c) /*判断2*/
max=c;
else if(min>c) /*判断3*/
min=c;
printf("max=%d\nmin=%d", max, min);
return 0;
}
请画出该程序段的控制流图,并分析该控制流图中有多少条线性独立路径(V(G)的值)。
为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。
对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
请帮忙给出每个问题的正确答案和分析,谢谢!
● 给定C 语言程序:
int foo(int x, int y, int d)
{
if(x != 0 ) {
if (y == 0 ) d = d / x;
else d = d / (x * y );
} else {
if(y == 0 ) d = 0;
else d = d / y;
}
return d ;
}
当用路径覆盖法进行测试时,至少需要设计 (31) 个测试用例。
(31)A. 3 B. 4 C. 5 D. 8
● 某系统重用了第三方组件(但无法获得其源代码),则应采用 (35) 对组件进行测试。
(35)A. 基本路径覆盖 B. 分支覆盖 C. 环路覆盖 D. 黑盒测试