当前位置:问答库>考研试题

2018年解放军信息工程大学软件工程825软件工程和编译原理[专硕]之软件工程导论考研强化五套模拟题

  摘要

一、简答题

1. 调试的目的是什么?调试有哪些技术手段?

【答案】(1)调试的目的

调试是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错。

(2)调试技术

简单的调试方法

a. 在程序中插入打印语句

该方法的优点是能显示程序的动态过程,较易检查源程序中的有关信息。缺点是低效率,可能输出大量的无关的数据,发现错误带有偶然性,同时因插入打印语句要修改程序,这种修改可能会掩盖错误,改变关键的时间 关系或把新的错误引入程序。

b. 运行部分程序

有时为了测试某些被怀疑有错的程序段,整个程序反复执行多次,使很多时间浪费在执行已经是正确的程序段上。在此情况下,应设法使被测程序只执行需要检查的程序段,以提高效率。可通过注释程序或开发语言所带的调试工具来查找错误。

②归纳法调试

归纳法调试从调试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。归纳法调试的具体步骤如下:

a. 收集有关数据

列出程序做对了什么,做错了什么的全部信息。

b. 组织数据

整理数据以便发现规律,使用分类法构造一张线索表。

c. 提出假设

分析线索之间的关系,导出一个或多个错误原因的假设。如果不能推测一个假设,再选用测试用例去测试,以便得到更多的数据。如果有多个假设,首先选择可能性最大的一个。

d. 证明假设

假设不是事实,需证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现

(即消除错误 的征兆)或只纠正一部分错误。如果不能证明这个假设成立,需提出下一个假设。

③演绎法调试

演绎法调试是列出所有可能错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因。演绎法调试的具体步骤如下:

a. 列出所有可能错误原因的假设。

b. 排除不适当的假设。

c. 精化余下的假设。

d. 证明余下的假设。

④回溯法调试

该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。该方法是对小型程序寻找错误位置的有效方法。

2. 试述软件危机产生的原因。

【答案】软件危机产生的原因有:

(1)软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。

(2)软件开发管理困难。由于软件规模大,结构复杂,又具有无形性的特点,因此导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。

(3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多、周期长,费用上升很快。

(4)生产方式落后。仍然采用个体手工方式开发,根据个人习惯爱好工作,无章可循,无规范可依据,仅靠言传身教方式工作。

(5)软件开发技术落后。

(6)软件开发工具落后,生产率的提高速度缓慢。

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

【答案】(1)在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进

行的测试。而接下来做验收测试时则以用户为主。软件开发人员和

输出结果,一般使用生产中的实际数据进行测试。

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

(3)测试是由软件的多个用户在一个用户或多个用户的实际使用环境下进行的测试。这些用户是与公司签订了支持产品预发行合同的外部用户,他们要求使用产品,并愿意返回有关错误信息给开发者。与a 测试不同的是,开发者通常不在测试现场。因此,测试是在开发者无法控制的环境下进行的软件现场应用。

一一质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的

4. 什么是软件生存周期模型?有哪些主要模型?

【答案】(1)软件生存周期模型的定义

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

(2)软件生存周期模型的分类

主要的软件生存周期模型有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。