软件工程作业含答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 为了把握软件开发各个环节的正确性和协调性,人们需要进行( A 2)和( B 3 )工作。( A )的目的是想证实在一给定的外部环境中软件的逻辑正确性。它包括( C 2 )和( D 3 ),( B )则试图证明在软件生存期各个阶段,以及阶段间的逻辑( E 3 )、( F 4 )和正确性。

供选择的答案:

A, B. ①操作②确认③验证④测试⑤调试

C, D.①用户的确认②需求规格说明的确认

③程序的确认④测试的确认

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

2. 软件测试是软件质量保证的主要手段之一,测试的费用已超过( A 1)的30%以上。因此,提高测试的有效性十分重要。“高产”的测试是指( B 3 )。根据国家标准GB 8566–88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在( C 5)阶段完成的,集成测试的计划是在( D 3)阶段制定的,确认测试的计划是在( E 2 )阶段制定的。

供选择的答案:

A. ①软件开发费用②软件维护费用③软件开发和维护费用

④软件研制费用⑤软件生存期全部

B. ①用适量的测试用例运行程序,证明被测程序正确无误

②用适量的测试用例运行程序,证明被测程序符合相应的要求

③用少量的测试用例运行程序,发现被测程序尽可能多的错误

④用少量的测试用例运行程序,纠正被测程序尽可能多的错误

C ~ E. ①可行性研究和计划②需求分析③概要设计

④详细设计⑤实现⑥集成测试

⑦确认测试⑧使用和维护

3. 集成测试也叫做( A 3)或( B 6)。通常,在( C 1)的基础上,将所有模块按照设计要求组装成为系统。子系统的集成测试特别称为( D 2 ),它所做的工作是要找出子系统和系统需求规格说明之间的( E 6)。需要考虑的问题是:在把各个模块连接起来的时候,穿越模块接口的数据是否会( F 2);一个模块的功能是否会对另一个模块的功能产生不利的影响;各个(G 1 )组合起来,能否达到预期要求的(H 3);(I 5 )是否有问题;单个模块的误差累积起来是否会放大。

供选择的答案:

A ~ D. ①单元测试②部件测试③组装测试

④系统测试⑤确认测试⑥联合测试

E ~ I.①子功能②丢失③父功能④局部数据结构

⑤全局数据结构⑥不一致⑦一致

4. 软件测试可能发现软件中的(B),但不能证明软件()。

A. 所有错误、没有错误

B. 错误、没有错误

C. 逻辑错误、没有错误

D. 设计错误、没有错误

5. 调用算法是解决问题的关键步骤之一。算法的计算工作量大小和实现算法所需的存储单元多少,分别称为计算的(A2)和(B3)。编写程序时,(C1)和(D1)是应采纳的原则之一。(E4)是调试程序的主要工作之一。

供选择的答案:

A、B:

①可实现性②时间复杂度③空间复杂度④困难度

⑤计算有效性

C:①程序的结构化②程序越短越好

③尽可能节省存储单元④尽可能减少注释行

D:①使用有实际意义的名字②使用长度短而无实际意义的名字

③表达式中尽量少用括号④尽量使用简化了的逻辑表达式

E:①调度②证明程序正确③人员安排④排错

6. 软件测试是为了检查出并改正尽可能多的错误,不断提高软件的(A3),一个成功的测试则是发现了至今未被发现的(B2)的测试。至于软件维护则是指(C1)。

A:①功能和效率②设计和技巧③质量和可靠性④质量和效能

B:①因素②错误③规律④问题

C:①对软件的改进、适应、完善②维护正常运行

③配置新软件④软件开发期的一个阶段

7. 软件测试的目的是(D)。

A. 证明软件的正确性

B. 找出软件系统中存在的所有错误

C. 证明软件系统中存在错误

D. 尽可能多地发现软件系统中的错误

8. 从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为(D)。

A. 错误检测

B. 故障排除

C. 调试

D. 测试

9. 软件测试是软件质量保证的主要手段之一,测试的费用己超过(A )的30%以上,因此提高测试的有效性非常重要。

A. 软件开发费用

B. 软件维护费用

C. 软件开发和维护费用

D. 软件研制费用

10.软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中基础的是(B)。

A. 集成测试

B. 单元测试

C. 系统测试

D. 验收测试

上机题

1.下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( )::

void SelectSort ( datalist & list ) {

//对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。

for ( int i = 0; i < list.n-1; i++ ) {

int k = i; //在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象

for ( int j = i+1; j < list.n; j++)

if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; //当前具最小关键码的对象if ( k != i ) Swap ( list.V[i], list.V[k] ); //交换

}

}

(1) 试计算此程序段的McCabe复杂性;

(2) 用基本路径覆盖法给出测试路径;

(3) 为各测试路径设计测试用例。

相关文档
最新文档