软件工程作业答案 下载本文

组装在一起进行测试。渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。

渐增式组装模块有自顶向下和自底向上两种组装方式。 10.认测试?该阶段有那些工作? 答:

按照需求规格说明书中的确定指标对系统进行功能与性能的测试。进行确认测试(对照需求规格说明书用黑盒法进行测试)、软件配置检查。(文档的完整性、正确性,发现遗漏和错误及时补充和修改)

11.目的是什么?调试的技术有那些? 答:

调试的目的是发现错误的位置并改正错误。简单调试、演绎调试、递归调试、回溯调试。12. 12.简述判定覆盖、条件覆盖、判定/条件覆盖三种方法的原则以及它们之间的相互关系。 答:

判定覆盖是只被测试程序段中不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次(真假分支均被满足一次)。

条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。

判定/条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果,

条件覆盖比判定覆盖功能强,因为它使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的值。判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖同时满足这两种覆盖标准的逻辑覆盖。 13. 根据下图,给出按照路径覆盖原则生成的覆盖路径集。

答: 1,2,3 1,2,6,7 1,4,5,3 1,4,5,6,7

五、问答题

1、已知有一段程序的含义如下,首先输入任意三个数A,B,C;如果(A>1) AND (B=0) 则C=C/A,否则 (A=2) OR (C>1)则C=C+1; 1)请画出流程图并转化为程序图(5分)

2)设计判定条件覆盖和路径覆盖的测试用例。(10分) 答:

程序图:

1 2 7 3 4 8 5 6

判定覆盖

a点 A>1,A<=1,B=0,B<>0 b点 A=2,A<>2,X>1,X<=1 ⅰ A=2,B=0,X=4

ⅱ A=1,B=1,X=1

路径覆盖:

a点 A>1,A<=1,B=0,B<>0 b点 A=2,A<>2,X>1,X<=1 ⅰ A=2,B=0,X=4 ⅱ A=1,B=1,X=1

2. 根据下列条件使用边界值分析法设计测试用例。(15分) 某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围-177~177。如05,0127,-065

输入等价类 八进制整数 测试用例说明 5个数字字符 有一个非数字字符 没有数字字符 一个数字字符 -后紧跟有非0数字 -后有字符 在边界上选取数据 测试数据 01245 03d2 - 0 -1324 -c -177 -178 177 178 八进制范围

3、具体问题(如:输入A,B,C三个数要求输出其中最小者),画出程序流程图,并计算其复杂度。(15分) 1、

开始 输入a\\b\\c n a

4.下面是一段插入排序的程序,将R[k+1]插入到R[1…k]的适当位置。 R[0] = R[k+1]; j = k;

while (R[j] > R[0]) {

R[j+1] = R[j]; j--; }

R[j+1] = R[0];

(1)画出程序流程图,转换为流图,求环路复杂度(8分)

(2)用路径覆盖方法为它设计足够的测试用例(while循环次数为0、1、2次)。(7分)

开始 R[0] = R[k+1]; j = k; 1 R[j] > R[0]? 2 N 3 Y R[j+1] = R[j]; j--; R[j+1] = R[0] 结束 环路复杂度为2; 测试用例设计

预 期 结 果 覆 盖 路 径 循环 输 入 数 据 次数 j R[i-2] R[i-1] R[i] R[i+1] R[0] j R[i-2] R[i-1] R[i] R[i+1] 约束 路 径 0 1 2 i - i - i - i - i 1 i 2 - - 1 2 3 3 1 1 3 3 4 4 2 1 2 2 2 2 2 1 2 2 2 2 i i - - - - 1 1 2 2 1 1 2 2 3 3 2 1 3 3 4 4 < = >< >= ①③ ①③ ①②③ ①②③ i-1 - i-1 - i-2 1 i-2 2 >>< ①②②③ >>= ①②②③

5.下列子程序进行调试:

procedure example(y,z: real; var x: real) begin