高级软件工程练习题

发布 2021-04-24 05:29:28 阅读 7650

19.1 用自己的话,描述为什么在面向对象系统中,类是最小的合理测试单元。

答:在面向对象软件中,单元的概念发生了变化,不再是传统软件单元测试中关注的算法细节和流经模块接口数据,而是测试由封装在类中的操作和类的状态行为驱动。最小的可测试单元是封装了的类,一个类包含了不同的操作,而一个操作也是有不同的类组成的,传统的单元测试已经不再能满足面向对象软件的特点了,而以类作为最小的测试单元更加合理。

19.8 运用随机测试、划分方法、多类测试及19.5,19.6节所描述的银行应用的行为模型导出的测试,在另外生成4个测试。

答:随机测试:

测试用例r1:open-setup-deposit-summarize-withdraw-close

划分方法:测试用例r2:open-setup-deposit-creditlimit -withdraw-close

多类测试:测试用例r3:verifyacct-verifypin-verifypolicy-depositepeq

从行为模型导出的测试。

测试用例r4:open-setupaccnt-deposit(initial)-withdraw-deposit-credit-accntinfo

- withdrawal(finial)-close

20.13导航语法测试与导航语义测试的区别是什么?

导航语法测试:确保允许webapp用户经由webapp游历的机制都是功能性的。对导航功能进行测试,以确保每个导航都执行了预计的功能。

导航语义测试:确认每个导航语义单元(msu)都能被合适的用户类获得。“一组信息和相关的导航结构,在完成相关的用户需求的子集时,这些导航结构会相互协作”。

每个nsu有一系列连接导航节点的导航路径定义。作为一个整体,每个nsu允许用户获得特殊的需求,这种特殊的需求是针对某类用户,有一个或多个用例定义的。导航测试应检查每个nsu,以确保能够获得这些需求。

20.17为使其成功,已经实现了一个特殊的服务,单独处理处方的重新填写。平均情况下,1000个并发用户每两分钟提交一次重填请求,webapp**500b的数据块来响应。

此服务需要具有的吞吐量是多少mb/s?

答: 吞吐量p=n*t*d

1000*0.5*500b)/60

4167b/s

0.033mb/s

20.18负载测试与压力测试之间的区别是什么?

答:压力测试主要是为了发现在一(任意)定条件下软件系统性能的变化情况,通过改变应用程序的输入以对应用程序施加越来越大的负载(并发,循环操作,多用户)并测量在这些不同的输入时性能的改变,也就是通常说的概念:压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。

其实这种测试也可以称为负载测试,但是负载测试通常描述一种特定类型的压力测试——增加用户数量以对应用程序进行压力测试。比如实际中我们说从比较小的负载开始,逐渐增加模拟用户的数量, 直到应用程序响应时间超时,就是说的负载测试。

压力测试的目标是测试在一定的负载下系统长时间运行的稳定性,尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复);压力测试是测试系统的限制和故障恢复能力,它包括两种情况:

(1)稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;

(2)破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来;

负载测试的目标是测试在一定负载情况下系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。

负载测试与压力测试的最主要区别:

1)负载测试在于确定最终满足系统指标的前提下,系统所能承受的最大负载测试。

压力测试的目标则在确定什么条件下系统性能处于失效状态。

(2) 压力测试主要是为了发现在一(任意)定条件下软件系统性能的变化情况,通过改变应用程序的输入以对应用程序施加越来越大的负载(并发,循环操作,多用户)并测量在这些不同的输入时性能的改变,也就是通常说的概念:压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。

负载测试通常描述一种特定类型的压力测试——增加用户数量以对应用程序进行压力测试。比如实际中我们说从比较小的负载开始,逐渐增加模拟用户的数量, 直到应用程序响应时间超时。

22.6研究某现有的scm工具,然后大概描述它是如何实现版本控制和配置对象控制的。

答:版本控制:scm工具记录项目和文件的修改轨迹,跟踪修改信息,使软件开发工作以基线渐进方式完成,从而避免了软件开发不受控制的局面,使开发状态变得有序。

scm工具可以对同一文件的不同版本进行差异比较,可以恢复个别文件或整个项目的早期版本,使用户方便地得到升级和维护必需的程序和文档。

scm工具内部对版本的标识,采用了版本号方式,但对用户提供了多种途径来标识版本,被广泛应用的有版本号、标签和时间戳。多样灵活的标识手段,为用户提供了方便。

配置对象控制:以webapp为例,webapp包括很多配置对象:内容对象、功能构件和接口对象。

可以按任何方式来标识webapp对象,只要适用于组织就可以。但是,为了维护不同平台之间的兼容性,建议采用下面的约定:文件名长度应该不超过32个字符,避免使用大小写昏黄的或全部大写的名称,也应避免使用下划线。

另外,配置对象内的url地址应该使用相对路径。

高级软件工程

人人网 测试分析报告。编写测试文档的目的是验证人人网的正确性 可移植性 健壮性 可修改性,为了人人网含有更少的错误,方便以后维护 调试,使 运行的更加稳定,让用户能使用一个满意 稳定 不易出问题的 制定本测试说明文档,预期的读者包含会使用人人网的人员。通过对 的测试,找出其中的bug,对 进行修改和...

高级软件工程

高级软件工程 试题。2014级工程硕士用 一 单项选择题 请将正确答案的字母写在题号前面的括号内。每小题3分,共30分 a 1 确定待开发软件的功能要求 性能要求和运行环境约束的阶段是 a 需求分析 b 总体设计 c 详细设计 d 测试。d 2 在结构化分析方法中,数据字典定义了数据流图中的各个元素...

高级软件工程

一 判断 每题1分 1 如果绝对将soft完全包给第三方公司开发。错 不可能,因为第三方不清楚要做什么。2 有3项目标大概了解便可以开发,写程序。错 还没极限图,没有需求 2个极限包括极限编程的思想和传统软件工程思想 3 成功的软件项目,可执行的程序是唯一的交付。错 软件 programe date...