软件工程简答题答案 第五版 联系客服

发布时间 : 星期五 文章软件工程简答题答案 第五版更新完毕开始阅读a6c2dc8902d276a200292efc

(1) 评审复杂情况时的分析、识别、评价和测试等方面充分发挥人们的思维能力。 (2) 评审不仅适用于检验正式的文档,如程序清单,也适用于检验非正式的文档,如

口头的设计说明等。

(3) 用评审方式检查程序具有很高的成功率。 缺点:

(1) 评审的成功与否完全依赖于参加评审的人员,他们的原则性是至关重要的。 (2) 交流的气氛对于发挥人们的思考和分析能力是很重要的。

(3) 解决问题可能占用有价值的评审时间,以至于不能发现更多的错误。 (4) 存在着评价工作人员的可能,这将使检查过程的有效性降低。 (5) 评审对开发过程的重要性往往被低估了。

9. 软件可靠性的定义是什么? 答:IEEE把软件可靠新定义如下:

(1) 在规定的条件下,在规定的时间内,软件不引起系统失败的概率,该概率是系统

输入和系统使用的函数,也是软件中存在错误的函数。系统输入将确定是否会遇到已存在的错误。

(2) 在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。 10.

软件可靠性定义中,规定的条件指什么?规定的时间又指什么?

答:规定的时间:在软件测试和运行中,有三种时间度量。第一种是日历时间,第二种是时钟时间,第三种是执行时间。

规定的条件:是指环境条件。环境条件包括了与程序存储、运行有关的计算机及其操作系统。

第十八章 软件测试

1. 软件测试的目的是什么?

答:软件测试要求认定刚开发的软件是错误的,它的目的是找出错误所在,而不是“说明程序能正确地执行它应有的功能”,也不是“表明程序没有错误”。

2. 软件测试中应遵循哪些原则?

答:(1)测试用例由输出数据和预期的输出数据两部分组成。需要将程序运行后的结果和预

期的输出相比较来测试程序。

(2)在输入数据的选择上,不仅要选择合理的输入数据,还要选择不合理的输入数据。

这样可提高程序运行的可靠性。程序应该对不合理的输入数据给出相应提示。

(3)用穷举测试是不可能的。可以通过设计测试用例,充分覆盖所有的条件。 (4)应该在真正的测试工作开始之前很长时间内,就根据软件的需求和设计来制定测试

计划,在测试工作开始后,要严格执行,排除随意性。

(5)长期保留测试用例。

(6)对发现错误较多的程序段,应进行更深入的测试。 (7)为了打到最佳测试效果,应该有第三方来构造测试用例。

3. 说说曾经做过的测试经历。 答:无。

4. 试从时间、手段和目的上比较静态测试和动态测试的区别。

答:静态测试是采用人工检测和计算机辅助静态分析的手段对程序进行检测。

动态测试与静态测试相反,主要是设计一组输入数据,然后通过运行程序来发现错误。

5. 白盒测试的原理是什么?

答:该方法吧测试对象看做一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期的相同。

6. 举例说明白盒测试不能穷举测试的原因。

答:如测试一个循环20次嵌套的IF语句,循环体中有5个路径。测试这个程序的执行路径未5的20次方,如果每毫秒完成一个路径的测试,完成此程序的测试需3170年。

7. 黑盒测试的原理是什么?测试的目的是什么?

答:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面上进行测试,用来证实软件功能的可操作性,检查程序是否满足功能要求,是否能很好地接受数据,并产生正确的输出。

测试的目的在于发现以下错误:(1)是否有不正确或遗漏了的功能。

(2)在界面上,能否正确地处理合理和不合理的输入数

据,并产生正确的输出信息。

(3)访问外部信息是否有错。 (4)性能上是否满足要求等。 (5)初始化和终止错误。

8. 在白盒测试中,有哪些设计测试用例的技术?

答:白盒测试是结构测试,所以一般都是以程序的内部逻辑结构为基础来设计测试用例。 (1) 逻辑覆盖:①语句覆盖 ②判定覆盖 ③条件覆盖 ④判定/条件覆盖 ⑤条件组合

覆盖 ⑥路径覆盖

(2) 循环覆盖:①单循环 ②嵌套循环 (3) 基本路径测试

9. 逻辑覆盖的含义是什么?

答:当程序中有循环时,覆盖每条路径是不可能的,需要设计使覆盖程度较高的或覆盖最有代表性的路径的测试用例。 10.

如果你负责对一个软件进行测试,你将如何安排你的工作计划?

答:书P472 图18-4。 11.

确认测试的作用是什么?

答:确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求说明书中规定的指标相符合。因而需求说明是确认测试的基础。

第十九章 软件维护

1. 软件的可维护性和哪些因素有关?

答:(1)系统大小 (2)系统的开发文档 (3)其他因素

2. 软件的维护包括哪些维护活动?

答:(1)改正性维护 (2)适应性维护 (3)完善性维护 (4)预防性维护

3. 软件维护在这个软件生命周期中处于哪一种生命位置? 答:Not Found.

4. 如何对软件的可维护性进行度量? 答:使用如下七个特性进行度量: (1) 可理解性 (2) 可靠性 (3) 可测试性 (4) 可修改性

(5) 可移植性 (6) 可使用性 (7) 效率

5. 比较非结构化维护和结构化维护流程。它们对维护工作的影响是什么?

答:软件的开发过程中的质量控制、文档的完整对软件的维护有较大的影响。非机构化的维护的极端例子是要维护的软件只有程序而无文档,维护工作非常困难。若严格按照软件工程的方法开发软件,并进行严格的质量控制,则各阶段都有规范的文档,维护时对软件的理解就容易很多,维护工作也容易进行,这是一种结构化的维护。

6. 软件维护的费用是一个什么样的发展趋势?

答:软件维护的费用在总费用中的比重是在不断增加的,据统计数字分析,它在1970年占35%~40%,1980年上升到40%~50%,1990年上升到70%~80%。

7. 你认为如果在软件维护中没有专门的组织,会造成什么困难?

答:若没有专门的组织,软件维护的质量就无法得到保证,这将直接影响软件的生命周期。

8. 现在你是软件维护小组的负责人,得到一个维护申请报告,你应该如何处理这份报告?

如何实施维护活动?

答:在得到维护申请报告后,第二步我们需要审查申请报告并批准,第三部需要进行维护并做详细记录,最后做复审。

9. 软件维护后,软件的质量肯定会提高吗?可靠性肯定提高吗?为什么?

答:不一定。软件经过维护后,错误被修正了,功能增强了,但同时因为修改而引入的潜伏的错误也增加了。这种因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。维护的副作用有编码副作用、数据副作用和文档副作用。 10.

逆向工程和再工程的含义是什么?

答:逆向工程是从源代码中抽取出来的设计信息。作为逆向工程的评价,要求抽取出来的信息的抽象程度越高越好。再工程,它不仅能从已存在的程序中重新获得设计信息,而且还能使用这些信息来改建或重构现有的系统,以改进它的综合质量。 11.

维护技术分成哪两种?各自的特点是什么?

答:(1)面向维护的技术,涉及软件开发的所有阶段。