A.6
B.7
C.10
D.12
第1题
Lacm mel教授提出的自动测试每条路径的技术如下:当编写程序时每个DO循环应该写成一种包含测试
变量T和模式变量M的特殊形式,因此
DOI= 1 TO 38
应变成
DOI-1TOM*38+(1-M) *T
可见,当M=0时处于测试模式,而M=1时处于正常运行模式。当处于测试模式时,令T=0则该循环一次也不执行,令T=1则该循环只执行一次。类似地应该使用模式变量和测试变量改写IF语句,例如
IF X+Y> 0
ELSE
THEN
Z=X
Z=Y应变成
IF M*(X+Y) +T> 0 THEN
ELSE
Z=X
Z-Y正常运行时令M=1和T=0, 测试期间令M=0, 为测试THEN部分需令T=+1, 测试ELSE部分则令
T=-1.
要求:
(1)选取一个包含循环和IF语句的程序, 用Laemmel技术修改这个程序, 上机实际测试这个程序并解释所得到的结果。
(2)设计一个程序按照Laemmel技术自动修改待测试的程序。利用这个测试工具修改上一问中人工修改的程序,两次修改得到的结果一致吗?
(3)怎样把Laemmel技术推广到包含WHILE DO和REPEAT UNTIL语句的程序?
(4)试分析Laemmel技术的优缺点并提出改进意见。
第2题
【说明】
以下代码由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表示假),填入答题纸的相应栏中。
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
请帮忙给出每个问题的正确答案和分析,谢谢!
第3题
A、针对相同的程序代码,独立路径集合是唯一的
B、只要程序中存在嵌套的条件判断结构,就一定会导致不可行路径
C、每一条独立路径都必须是一条完整的、可执行的路径
D、独立路径测试所得到的路径集合的大小必须等于环复杂度的大小
第5题
A、测试路径是描述程序结构的图中,从开始结点到结束结点的一条路径
B、一个测试用例只能执行到一条测试路径
C、相同的一条测试路径可能被多个测试用例执行到
D、一个测试用例可以执行到多条测试路径
第6题
A、基路径测试一定满足判定覆盖
B、当存在不可行路径时,不应采用基路径测试方法
C、基路径测试的思想可用于功能测试
D、控制流图也可用于计算圈复杂度
第8题
A、程序测试只能说明程序有错,不能说明该程序是没有错误的。
B、程序测试中一般是通过穷举所有的输入以验证程序的正确性
C、程序测试一般不需要特别的测试用例
D、经过程序测试以后没有任何问题,就说明该程序是没有错误的。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!