成都信息工程大学809软件工程考研

本文介绍了用例图的作用、聚集关系的区别、结构化程序设计特点、详细设计要点、软件维护概念、单元与集成测试、动态测试与静态测试、渐增式与非渐增式设计优劣以及驱动模块与桩模块的设计。强调了软件测试的全面性和贯穿整个开发周期的重要性。
摘要由CSDN通过智能技术生成

1.什么是用例图?用例图有什么作用?

定义:由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的图成为用例图。

作用:用例图是从软件需求分析到最终实现的第一步,它显示了系统的用户和用户希望提供的功能,有利于用户和软件开发人员之间的沟通。用例图可视化的表达了系统的需求,具有直观、规范等优点,克服了纯文字性说明的不足。用例方法是完全从外部来定义系统的,它把需求和设计完全分离开来,使用户不用关心系统内部是如何完成各种功能的。 

2.试举例说明聚集关系中共享聚集和组合聚集有何不同。
    如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。
    如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之间的关系为组合聚集关系。

3.简述结构化程序设计方法的基本特点。

1)是尽可能少用goto语句的程序设计方法;

2)每个代码块都单入单出;

3)使用控制结构:顺序、选择和循环+Do_UNTIL和Do_CASE;

4)自顶向下逐步求精。

4.详细设计有哪几种描述结构化程序设计的基本要点是什么?

主要有三个:

(1)采用自顶向下、逐步求精的程序设计方法

(2)使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。

(3)主程序员组方法?

详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。

5.软件维护的概念、目的、维护类型。

软件维护衍生的一些相关技术。

为什么要进行软件维护?

软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。一个中等规模的软件,如果其开发过程需要一年时间,则它投入使用后,其运行的时间可能持续五到十年。在这个维护阶段,人们不仅需要着手解决开发阶段尚未解决的问题,同时,还需解决维护过程本身产生的问题。维护阶段的的时间大约占整个软件生命周期的67%。因此,我们应充分认识到软件维护的重要性。

6.单元测试与集成测试相关概念。

(1)请简述单元测试的主要内容?

模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

(2)在单元测试中,所谓单元是如何划分的?

单元测试的对象通常是软件设计的最小逻辑单元,单元的划分在面向过程的结构化程序中一般是函数或子过程,在面向对象的程序中可以是类或类的成员函数。

(3)如果开发时间紧迫,是否可以跳过单元测试而直接进行集成测试?

不可以。因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。

(4)集成测试也叫组装测试又叫联合测试,为何要进行集成测试?

 在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

7.什么是动态测试?为何静态测试方法往往比动态测试方法效率高?

动态测试是通过运行软件来检验其动态行为和运行结果的正确性。

动态测试是实际运行被测程序,输入相应的测试用例,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性。

静态测试是对被测程序进行特性分析的一些方法的总称,这种方法的主要特性是不利用计算机运行被测试的程序,而是采用其他手段达到检测的目的。因而在代码产生之前便可对各种文档进行测试,其效率当然高于动态测试。

8.渐增式与非渐增式各有何优、缺点?为什么通常采用渐增式?

非渐增式是将所有的模块一次连接起来,简单、易行、节省机时,但测试过程难于排错,发现错误也很难定位,测试效率低;渐增式是将模块一个一个的连入系统,每连入一个模块,都要对新系统进行测试。这种组装测试相比于非渐增式容易查出错误,并及时定位,有利于查出模块接口部分的错误,因此测试效率高。故通常采用渐增式测试方法。

9.一般,驱动模块比桩模块容易设计,为什么?

因为驱动模块是模拟主程序或者调用模块的功能,处于被测试模块的上层,所以驱动模块只需要模拟向被测模块传递数据,接收、打印从被测模块返回的数据的功能,较容易实现。而桩模块用于模拟那些由被测模块所调用的下属模块的功能,由于下属模块往往不只一个,也不只一层,由于模块接口的复杂性,桩模块很难模拟各下层模块之间的调用关系,同时为了模拟下层模块的不同功能,需要编写多个桩模块,而这些桩模块所模拟的功能是否正确,也很难进行验证。因此,驱动模块的设计显然比桩模块容易。

10.软件测试的概念、目的。软件测试对象应包括哪些内容?

软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间。因此,需求分析、概要设计以及程序编码等各阶段所得的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值