软件工程导论(第六版)张海藩-牟永敏课后习题答案 联系客服

发布时间 : 星期三 文章软件工程导论(第六版)张海藩-牟永敏课后习题答案更新完毕开始阅读239db0b56729647d27284b73f242336c1eb93084

.

件公司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

可编辑范本

.

⑧ 输入固定的出发点、5个位置校核点和高度,分别输入3~5个不同的目的地,重复执行步骤1

(2) 用特殊的数据值作为测试数据

① 分别输入非常高和非常低的数据组合测试 ② 用负数测试 ③ 输入数字0进行测试

④ 分别输入相距非常远和非常近的出发点和目的地测试

ay和size,size小于数组的大小,并给出需要查找的值,该值在somearray中; 预期的输出:返回-1;

⑤ 首先给出某个数组somearray和size,size大于数组的大小,并给出需要查找的值,该值不在somearray中; 预期的输出:返回-1;

⑥ 首先给出某个数组somearray和size,size大于数组的大小,并给出需要查找的值,该值在somearray中; 预期的输出:返回-1;

第七题

7、严格说来,有两种不同的路径覆盖测试,分别为程序路径覆盖和程序图

可编辑范本

.

路径覆盖。这两种测试可分别称为程序的自然执行和强, , 迫执行。所谓自然执行是指测试者(人或计算机)读入程序中的条件表达式,根据程序变量的当前值计算该条件表达式的值(真或假),并相应地分支。强迫执行是在用程序图作为程序的抽象模型时产生的一个人为的概念,它可以简化测试问题。强迫执行的含义是,一旦遇到条件表达式,测试者就强迫程序分两种情况(条件表达式的值为真和为假)执行。显然,强迫执行将遍历程序图的所有路径,然而由于各个条件表达式之间存在相互依赖的关系,这些路径中的某一些在自然执行时可能永远也不会进入。 为了使强迫执行的概念在实际工作中有用,它简化测试工具的好处应该超过它使用额外的不可能达到的测试用例所带来的坏处。在绝大多数情况下,强迫执行的测试数并不比自然执行的测试数大很多,此外,对强迫执行的定义实际上包含了一种技术,能够缩短在测试含有循环的程序时所需要的运行时间。 程序的大部分执行时间通常用于重复执行程序中的DO循环,特别是嵌套的循环。因此必须发明一种技术,使得每个DO循环只执行一遍。这样做并不会降低测试的功效,因为经验表明第一次或最后一次执行循环时最容易出错。

Laemmel教授提出的自动测试每条路径的技术如下: 当编写程序时每个DO循环应该写成一种包含测试变量T和模式变量M的特殊形式,因此 DO I= 1 TO 38

应变成

DO I=1 TO M*38+(1-M)*T

可见,当M=0时处于测试模式,而M=1时处于正常运行模式。当处于测试模式时,令T=0则该循环一次也不执行,令T=1则该循环只执行一次。 类似地

可编辑范本

.

应该使用模式变量和测试变量改写IF语句,例如

IF X+Y>0 THEN Z=X

ELSE Z=Y应变成

IF M*(X+Y)+T>0 THEN Z=X

ELSE

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技术的优缺点并提出改进意见。

(1)答:if (x+y)>2 A=x Else A=y

改为:if M*(x+y)+T>2 A=x

可编辑范本