第三题
3、在第2题的设计中若输入的N值或KEYWORD不合理,会发生问题。 (1) 给出这些变量的不合理值的例子。 (2) 将这些不合理值输入程序会有什么后果?
(3) 怎样在程序中加入防错措施,以防止出现这些问题? (1)答:N=1,KEYWOED=#。 (2)答:无法打印出任何信息。 (3)答:加入循环 第四题
4、(1)什么是模块测试和集成测试?它们各有什么特点?
答:模块测试是对每个单独的模块,分别用黑盒和白盒测试技术,测试它的功能是否正确, 检查模块控制结构中的特定路径并发现最大数量的错误。
其特点是:主要应用白盒测试的技术,对多个模块的测试可以并发的进行。 集成测试是把模块装配在一起形成完整的软件包,在装配的同时进行测试。 特点是:可能发生接口问题。
(2)假设有一个由1000行FORTRAN语句构成的程序,估计在对它进行测试期间将发现多少个错误?为什么?
答:月25至100个错误,美国的一些统计数字告诉我们通常这个比值在0.005~0.02之间,也就是说,测试之前每1000条指令中大约有5~20个错误。假设测试之前每1000条指令中有10个错误,则估计对它进行测试期间将发现的错误数为:5000*10/1000=50。 (3)设计下列伪码程序的语句覆盖和路径覆盖测试用例: START INPUT(A,B,C) IF A>5 THEN X=10 ELSE X=1 END IF IF B>10 THEN X=20 ELSE X=2 END IF IF C>15 THEN X=30 ELSE X=3 END IF PRINT (X,Y,Z)
STOP
答:此程序的语句覆盖用例:①A=5,B=10,C=15;②A=6,B=11,C=16 条件覆盖用例为:①A=5,B=10,C=15;②A=6,B=11,C=16。 语句覆盖测试用例
序判定 输入 预期的输出 X Y Z 1 2 3 1230 0 0 预期的X Y Z 1 2 3 1 2 31 20 3
号 1 2 3 A B C
1 F F F 1 1 1 2 T T T 246
0 0 0 序号 1 1 F 2 F 3 4 5 6 7 8
判定
输入
语句覆盖的含义是,选择足够多的测试数据,使被测试程序中的每个语句至少执行一次。
2 3 A B C F F 1 1 1 F T 1 1 6F T F 1 40 1 F T T 1 0 46
T T T T
1 0 23
F F 20 0 1 0 1 10 2 0 3 F T 20 1 60 12 3T F 20 40 1 0 3 120 T T 20 0 460 10 23
0 0 0 0 0
第五题
5、某图书馆有一个使用CRT终端的信息检索系统,该系统有下列4个基本检索命令 要求:
(1) 设计测试数据以全面测试系统的正常操作;
(2) 设计测试数据以测试系统的非正常操作
解:?测试系统正常操作的测试数据 ①顺序执行下列3个命令:
b(KEYWORD) s(L) d(N)
其中,KEYWORD是正确的关键字;L是执行命令b后在屏幕上显示的约20个行号中的一个(至少应该使L分别为第一个、最后一个和中央一个行号);N是执行命令s后列出的索引号中的一个(至少应该使N分别为第一个、最后一个和中央一个索引号)。
针对若干个不同的KEYWORD重复执行上述命令序列。 ②顺序执行下列2个命令:
f(NAME) d(N)
其中,NAME是已知的作者姓名;N是执行命令f后列出的索引号中的一个(至少应该使N分别为第一个、最后一个和中央一个索引号)。
针对若干个不同的NAME重复执行上述命令序列。
?测试系统非正常操作的测试数据
①用过长的关键字作为命令b的参数:例如,b(reliability software and hardware combined) 预期的输出:系统截短过长的关键字,例如,上列命令中的关键字可能性被截短为reliability software ②用不正确的关键字作为命令b的参数:例如,b(AARDVARK) 预期的输出:显示出最接近的匹配结果,例如,执行上列命令后可能显示 1.AARON,JULES(book)
③用比执行命令b后列出的最大行号大1的数作为命令s的参数 预期的输出:“命令s的参数不在行号列表中” ④用数字和标点符号作为命令b和命令f的参数 预期的输出:“参数类型错”
⑤用字母字符作为命令s和命令d的参数 预期的输出:“参数类型错”
⑥用0和负数作为命令s和命令d的参数 预期的输出:“参数数值错”
⑦命令顺序错:例如,没执行命令b就执行命令s,或没执行命令s就执行命令d 预期的输出:“命令顺序错”
⑧命令语法错:例如,遗漏命令名b、s、d或f;或命令参数没用圆括号括起来 预期的输出:“命令语法错”
⑨命令参数空:例如,b()、s()、d或f() 预期的输出:系统提供默认参数或给出出错信息 ⑩使用拼错了的作者姓名作为f的参数 预期的输出:“找不到这们作者的著作” 第六题
6、航空公司A向软件公司B订购了一个规划飞行路线的程序。假设你是软件公司C的软件工程师,A公司已雇用你所在的公司对上述程序进行验收测试。任务是,根据下述事实设计验收测试的输入数据,解释你选取这些数据的理由。
领航员向程序输入出发点和目的地,以及根据天气和飞机型号而初步确定的飞行高度。程序读入途中的风向风力等数据,并且制定出3套飞行计划(高度,速度,方向及途中的5个位置校核点)。所制定的飞行计划应做到燃料消耗和飞行时间都最少。
用正常的输入数据作为测试数据
① 向程序输入常规的出发点,目的地,飞机型号,5个位置校核点,高度和速度。 ② 输入3~5组出发点和目的地,重复执行步骤1
③ 输入固定的出发点、目的地、飞机型号、5个位置校核点和高度,分别输入3~5个不同的速度,重复执行步骤1
④ 输入固定的出发点、目的地、飞机型号、5个位置校核点和速度,分别输入3~5个不同的高度,重复执行步骤1
⑤ 输入固定的出发点、目的地、飞机型号、速度和高度,分别输入3~5组不同的位置校核点,重复执行步骤1
⑥ 输入固定的出发点、目的地、5个位置校核点和高度,分别输入3~5个不同的飞机型号,重复执行步骤1
⑦ 输入固定的目的地、5个位置校核点和高度,分别输入3~5个不同的飞机型号,重复执行步骤1