软件工程阶段性作业4

更新时间:2024-01-08 13:58:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国地质大学(武汉)远程与继续教育学院

中国地质大学(武汉)远程与继续教育学院

软件工程 课程作业4(共 4 次作业) 学习层次:专升本 涉及章节:第7章

一、选择填空题

1、从下列关于模块化程序设计的叙述中选出 5 条正确的叙述。 ( )(1) 程序设计比较方便,但比较难以维护。 ( )(2) 便于由多个人分工编制大型程序。 ( )(3) 软件的功能便于扩充。

( )(4) 程序易于理解,也便于排错。

( )(5) 在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。 ( )(6) 模块之间的接口叫做数据文件。

( )(7) 只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。

( )(8) 模块间的单向调用关系叫做模块的层次结构。

( )(9) 模块越小,模块化的优点越明显。一般来说,模块的大小都在 10 行以下。 2、从下列叙述中选出 5 条符合程序设计风格指导原则的叙述。 (1) 嵌套的重数应加以限制。 (2) 尽量多使用临时变量。 (3) 不滥用语言特色。 (4) 不用可以省略的括号。 (5) 使用有意义的变量名。 (6) 应尽可能把程序编得短些。

(7) 把常见的局部优化工作留给编译程序去做。 (8) 注解越少越好。

(9) 程序的格式应有助于读者理解程序。 (10) 应尽可能多用 GOTO语句。

3、从供选择的答案中选出应填入下列( )中的字句。

软件测试的目的是( A ) 。为了提高测试的效率,应该( B ) 。使用白盒测试方法时,确定测试数据应根据( C )和指定的覆盖标准。与设计测试数据无关的文档是( D ) 。

软件的集成测试工作最好由( E )承担,以提高集成测试的效果。 供选择的答案:

A. ① 评价软件的质量 ② 发现软件的错误 ③ 找出软件中的所有错误 ④ 证明软件是正确的 B. ① 随机地选取测试数据

② 取一切可能的输入数据作为测试数据 ③ 在完成编码以后制定软件的测试计划

④ 选择发现错误的可能性大的数据作为测试数据 C. ① 程序的内部逻辑 ② 程序的复杂程度 ③ 使用说明书 ④ 程序的功能

中国地质大学(武汉)远程与继续教育学院

D. ① 该软件的设计人员 ② 程序的复杂程度 ③ 源程序 ④ 项目开发计划

E. ① 该软件的设计人员 ② 该软件开发组的负责人

③ 该软件的编程人员 ④ 不属该软件开发组的软件人员 4、从供选择的答案中选出应填入下列( )中的字句。 为了把握软件开发各个环节的正确性和协调性, 人们需要进行 ( A ) 和 ( B )工作。 ( A )的目的是想证实在一给定的外部环境中软件的逻辑正确性。它包括( C )和( D ) , ( B )则试图证明在软件生存期各个阶段,以及阶段间的逻辑( E ) 、 ( F )和正确性。 供选择的答案:

A, B. ① 操作 ② 确认 ③ 验证 ④ 测试 ⑤ 调试 C, D. ① 用户的确认 ② 需求规格说明的确认 ③ 程序的确认 ④ 测试的确认

E, F. ① 可靠性 ② 独立性 ③ 协调性 ④ 完备性 ⑤ 扩充性

二、问答题

1、 试说明下面的两个程序段的功能是什么?可否用另一些等效的程序段来代替它,以提高其可读性。

(1) A[I] = A[I] + A[T]; (2) for ( i = 1; i <= n; i ++ )

A[T] = A[I] - A[T]; for ( j = 1; j <= n; j ++ )

A[I] = A[I] - A[T]; V[i][j] = ( i / j ) * ( j / i );

2、设下图给出的程序流程图代表一个非结构化的程序,试问: (1) 为什么说它是一个非结构化的?

(2) 设计一个等价的使用附加标志变量 flag 的结构化程序。 (3) 设计一个使用 break(用于代替 goto)的程序。

3、应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?

4、如图所示的程序有三条不同的路径。分别表示为 L1(a→b)、L2(a→c→d)、

L3(a→c→e),或简写为 ace、abd、abe 及 acd。根据判定覆盖、条件覆盖、判定–条件覆盖、条件组合覆盖和路径覆盖等五种覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小测试用例组。(用①~ ⑩回答)

中国地质大学(武汉)远程与继续教育学院

供选择的答案:

① x = 90, y = 90 ② x = 50, y = 50 ③ x = 90, y = 90 ④ x = 90, y = 70 x = 50, y = 50 x = 40, x = 90 ⑤ x = 90, y = 90 ⑥ x = 90, y = 90 x = 50, y = 50 x = 70, y = 90

x = 90, y = 70 x = 50, y = 50

⑦ x = 90, y = 90 ⑧ x = 90, y = 90

x = 50, y = 50 x = 50, y = 50 x = 80, y = 70 x = 90, y = 50 x = 70, y = 90 x = 80, y = 80

⑨ x = 90, y = 90 ⑩ x = 90, y = 90

x = 90, y = 70 x = 80, y = 80 x = 90, y = 30 x = 90, y = 70 x = 70, y = 90 x = 90, y = 30 x = 30, y = 90 x = 70, y = 90 x = 70, y = 70 x = 30, y = 90 x = 50, y = 50 x = 70, y = 70 x = 50, y = 50

5、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。若 x, y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B )或( C ) ;实现条件覆盖至少应采取的测试用例组是( D ) ;实现路径覆盖至少应采取的测试用例组是( E )或( F ) 。

中国地质大学(武汉)远程与继续教育学院

供选择的答案

A: ① 语句覆盖 B~F: ① Ⅰ和Ⅱ组 ⑤Ⅰ、Ⅱ、Ⅲ组 ⑧Ⅰ、Ⅱ、Ⅳ组

② 条件覆盖 ③ 判定覆盖 ④ 路径覆盖②Ⅱ和Ⅲ组 ③Ⅲ和Ⅳ组 ④Ⅰ和Ⅳ组 ⑥Ⅱ、Ⅲ、Ⅳ组 ⑦Ⅰ、Ⅲ、Ⅳ组 中国地质大学(武汉)远程与继续教育学院

参考答案

一、选择填空题

1、解答:正确的叙述有(2)、(3)、(4)、(7)、(8)。 2、解答:(1)、(3)、(5)、(7)、(9)是正确的。

3、解答:A. ② B. ④ C. ① D. ④ E. ④

4、解答:A. ② B. ③ C. ② D. ③ E. ③ F. ④

二、问答题 1、 解答:

(1) 的功能是对换 A[I] 与 A[T] 的内容。等效的程序段可以是: WORK = A[T]; A[T] = A[I]; A[I] = WORK; (2) 的功能是建立一个单位矩阵 V。等效的程序段可以是: for ( i = 1; i <= n; i ++ ) for ( j = 1; j <= n; j ++ )

if ( i == j ) V[i][j] = 1; else V[i][j] = 0; 2、解答:

(1) 它是一个单入口、两出口的结构,所以是一个非结构化的程序。 (2) 等价的结构化程序:

en um Boolean { false, true } Boolean flag = true; while ( P && flag ) { do G;

if ( !Q ) flag = false; }

(3) 使用 break 的程序 while ( P ) { do G;

if ( !Q ) break; }

3、解答:在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进行的测试。而接下来做验收测试时则以用户为主。软件开发人员和 QA(质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的输出结果。一般使用生产中的实际数据进行测试。

如果软件是为多个客户开发的,则需要进行 α 测试和 β 测试。α 测试是由一个用户在开发环境下进行的测试, 也可以是公司内部的用户在模拟实际操作环境下进行的测试。软件在一个自然设置状态下使用。开发者坐在用户旁边,随时记下错误情况和使用中的问题。这是在受控制的环境下进行的测试。

β 测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。这些用户是与公司签定了支持产品预发行合同的外部客户,他们要求使用该产品,并愿意返回有关错位错误信息给开发者。与 α 测试不同的是,开发者通常不在测试现场。因而,β 测试是在开发者无法控制的环境下进行的软件现场应用。 4、解答:针对覆盖标准,相应的测试用例组如下

中国地质大学(武汉)远程与继续教育学院

注意:测试是一个程序的执行过程。对于逻辑表达式 A or B,当 A为真时不再对B 做判断,对于逻辑表达式 A and B,当 A为假时不再对 B 做判断。未能做判断的条件,在解答中用“□”表示。

此测试用例组在满足条件覆盖的情况下又满足了判定覆盖的要求。

在条件组合覆盖情形,(x≥90)or(y≥90)的组合有 4 种,与条件(x+y≥140)的组合应有 8 种,但(x+y≥140=F)and((x≥90=T)or(y≥90=T))不可能出现,因此,7 个测试用例就够了。

中国地质大学(武汉)远程与继续教育学院

因为流程图有 3 条路径,只需 3 个测试用例就够了。如果将判定中的复合条件表达式改为单个条件的嵌套选择结构,第一个判定有 3 条路径,其中两条路径通向第二个判定。第二个判定有 4 条路径,组合起来总共应有 9 条路径。但是,其中受测试条件的限制,有 3条路径不可达,因此,程序中应有 6条路径,需要 6 个测试用例来覆盖它们。

5、解答:A. ④ B. ⑤ C. ⑧ D. ④ E. ⑤ F. ⑧ 判定表

中国地质大学(武汉)远程与继续教育学院

为判定覆盖选取测试用例情形:对第一个判定选取测试用例组Ⅰ和Ⅱ,当用Ⅰ覆盖判定的 T 分支时,不会走到第二个分支;当用Ⅱ覆盖判定的 F 分支时,第二个判定需另取一个测试用例组覆盖其 T 分支, 此时取测试用例组Ⅲ或Ⅳ即可。 因此,选择⑤或⑧均可。 为条件覆盖选取测试用例情形:取测试用例组Ⅰ和Ⅳ就可以覆盖所有 4 个条件的取值。 为路径覆盖选取测试用例情形:总共 3 条路径,需 3 个测试用例,可选使各路径为 T 的测试用例。Ⅰ、Ⅱ、Ⅲ或Ⅰ、Ⅱ、Ⅳ均可,可选⑤或⑧。

本文来源:https://www.bwwdw.com/article/t3ux.html

Top