【系统分析师之路】第八章 软件测试与维护章节习题集
■补充知识点
各类测试的概念
集成测试:包括一次性组装和增量式组装两个概念。其中增量式组装成本高,但全面性更好,更能测试出问题来。增量式组装又包含了自底向上,自顶向下和混合式三种。
系统测试:偏向功能,性能,安全性,可用性测试,测试内容不光包括软件,还有硬件和网络的集成。
负载测试:确认和测试不同负载情况下表现出来的性能如何。
压力测试:找出压垮你系统的最后一个稻草,最后的一个临界值。
强度测试:系统资源非常有限非常低的情况下是否能够正常工作。
容量测试:最大并发能够达到一个什么样的程度。
冒烟测试:大致初步进行测试
软件调试的三种方法
蛮力法:主要思想是通过计算机找错,低效耗时是他的特点。
回溯法:从出错处人工沿控制流程往回追溯,直至发现出错的根源。复杂程序由于回溯路径多,难以实施。
原因排除法:主要思想是演绎和归纳,用二分法实现。
软件调试与测试的区别
测试的目的是找出存在的错误,而调试的目的是定位错误并修改程序以修正错误。
调试是测试之后的活动,测试和调试在目标,方法和思路上都有所不同。
测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计。
测试过程可以事先设计,进度可以事先确定,调试不能描述过程或持续时间
验证与确认
验证是指在软件开发周期中的一个给定阶段的产品是否达到在上一个阶段确立的需求的过程。
确认是指在软件开发过程结束时对软件进行评价以确定他是否和软件需求相一致的过程。
测试是验证和确认的手段之一。
软件评审
软件评审包括了技术评审和管理评审。
不应以测试代替评审
评审人员应该关注产品而不应评论开发人员
评审人员应关注于实质性问题
评审会议不应变为问题解决方案讨论会
评审应该安排进入项目计划
评审参与者应了解整个评审的过程
评审人员事先应对评审材料充分了解
应重视评审的组织工作
系统审计
分为三个阶段,第一个是审计准备阶段,审计实施阶段,还有审计报告阶段。
1.审计准备阶段
审计合同及相关准备,IT审计计划。
2.审计实施阶段
系统规划分析阶段的审计,系统设计实现阶段的审计,系统实施和运维阶段的审计,系统项目管理规范的审计。
3.审计报告阶段
IT审计报告,IT审计跟踪
系统评价
包括了系统性能,系统效益,系统建设的评价三个。
确定评价对象,下达评价通知书,组织成立评价工作组和专家咨询组
拟定评价工作方案,收集基础资料。
工作组实施评价,征求专家意见和反馈给企业,攥写评价报告。
评价工作组将评价报告报送专家咨询组复核,向委托人送达评价报告和选择公布评价结果,建立评价项目档案。
遗留系统的演化策略
高水平,低价值,集成
低水平,高价值,继承
- 淘汰策略(低水平,低价值)
对遗留系统的淘汰是企业资源的根本浪费,系统分析师应该善于变废为宝,通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计,降低新系统开发的风险
2.改造策略(高水平,高价值)
改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化
3.集成策略 (高水平,低价值)
技术含量高业务价值低。可能只完成了某个部门和子公司的业务管理。不同的系统基于不同的平台,不同的数据模型,形成一个个信息孤岛,对这种遗留系统的演化策略为集成
4.继承策略 (低水平,高价值)
目前企业的业务尚紧密依赖该系统,在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型,为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行
新旧系统转换策略
新旧系统的转换策略:直接转换策略,并行转换策略,分段转换策略。分段转换策略表现为一个一个地上子系统。
■习题汇总
【系分章节习题第01题:绿色】
01.用边界值分析法假定X大于等于10小于等于30,那么X在测试中应取的边界值是()
A.X=11,29
B.X=9,10,30,31
C.X=10,31
D.X=9,31
解答:答案选择B。
【系分章节习题第02题:绿色】
02.软件的维护并不只是修正错误。为了满足用户提出的增加新功能,修改现有功能以及一般性的改进要求和建议,需要进行(),他是软件维护工作的主要部分;软件测试不可能揭露旧系统的所有错误,所以这些程序在使用过程中还可能发生错误,诊断和更正这些错误的过程被称为();为了改进软件未来的可维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行的修改,这类活动称为()。
A.完善性维护
B.适应性维护
C.预防性维护
D.改正性维护
解答:答案选择A|D|C。
软件维护是项目生命周期的一个完整部分。可以将软件维护定义为需要提供软件支持的全部活动。这些活动包括在软件交付前的所有的活动,以及交付后完成的活动。交付前完成的活动包括交付后运行的计划和维护计划等;交付后的活动包括软件修改,培训,帮助资料等。
改正性维护一般就是修正Bug,适应性维护是为了适应环境的变化,一般已经发生了变化;
预防性维护只佔5%,他是为了适应未来可能的变化,针对未来;
完善性维护占了一半左右,一般是功能增加性能增强的修正。
【系分章节习题第03题:绿色】
03.某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实现集中式消防告警信息显示与控制。日前该软件系统的系统维护主管组织召开会议,对近期收集到的该软件系统的如下维护申请进行了讨论:
(1) 将系统目前的专用报表功能改成通用报表功能,以适应未来用户可能提出的报表格式变化需求
(2) 在界面语言中增加德文支持,以满足新增的两个德国企业用户的使用要求
(3) 修正系统在与控制器通信时由于硬件网络故障导致的与控制器之间的连接失效,而控制器后续无法重新连接的问题。
(4) 完成因某已支持型号消防控制器通信协议改变而导致的相应软件修改
(5) 增加与某新型号消防控制器的互联通信功能,以支持在后续推广过程中与该型号消防控制器进行互连 (6) 修正用户报告的由于系统从Win7平台迁移到最新发布的Win8平台而导致的部分显示功能失效的问题。
(7) 修正用户报告的系统自动切换消防平面图形时部分器件位置显示错误的问题。
(8) 改进系统历史消防告警记录的检索算法,以提高系统在处理大量消防报警记录时的效率。
(9) 将系统目前针对某一特定数据库管理系统的数据库访问方式改成基于数据源的通用访问方式,以适应用户可能提出的使用其他数据库管理系统的需求。
【问题1】
软件维护的通常分为正确性维护,适应性维护,完善性维护,预防性维护四类,请用300字以内文字说明这四类软件维护内容的特点与区别。
【问题2】
请根据不同类型软件维护的特点,将上面1-9的维护申请填入表中。
【问题3】
对于软件维护申请的处理,首先需要确定维护工作的类型,不同类型的维护工作,其处理流程往往不同,图5-1是区分不同维护类型的典型处理流程,请将表5-1中代表维护类型的序号(1)(4)填入图5-1的(a)(d)中
【问题4】
在讨论第(4)项维护工作的方案时,项目组发现与相应的消防控制器通信的子模块重用了企业之前淘汰的某款软件中实现相应功能的源代码,而现有技术人员没有参加过该代码的开发工作,并且重用的这部分代码开发不规范,其数据和代码结构设计都很差,相应的文档极不完整,维护记录也很简略。针对上述情况,项目组一致认为在原有代码基础上进行修改维护难度很大,因此决定采用软件工程的方法对该子模块进行重新设计、编码和测试,请从可行性和该模块后续可维护性两个方面简要分析采取这种方案的原因。
【解答问题1】
正确性维护:指改正正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
适应性维护:指使应用软件适用信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。
完善性维护:扩充功能和改善性能力而进行的修改。对于已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能和性能特征。
预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软件和硬件环境的变化,因主动增加预防性的新的功能,以使系统适应各类变化而不被淘汰。如将专用报表功能改成通用报表功能,以适应将来报表格式的变化。
预防和适应性维护的区别:
现在的环境已经发生变化导致我们被动的变化这就是适应,如果是我们主动变化以迎合未来可能发生的环境变化,这是预防。
【解答问题2】
(1)预防性维护(关键字是未来用户可能)
(2)完善性维护(增加功能:德文)
(3)正确性维护(关键字是:修正)
(4)适应性维护(环境发生了变化,为了迎合环境变化而进行的修改)
(5)完善性维护(因为它明显是增加功能,预防性维护是为了以后而做的小的调整和铺垫性的工作)
(6)适应性维护(因为平台的变化已经出现了失效的情况了)
(7)正确性维护(比较明显了)
(8)完善性维护(关键字是改进算法,提高效率,这是性能的增强)
(9)预防性维护(关键字是:通用和可能)
【解答问题3】
a.适应性维护
b.完善性维护
c.预防性维护
d.正确性维护
分析过程:无论走哪条路径d的维护一定会做,哪一种维护必须要做?正确性维护。
四种维护中最有可能取消的会是哪个?预防性维护,那么b和c必定有一个是预防性维护。
剩下两个是完善性和适应性维护,哪个是必须要做的呢?是适应性。b和c在这里就不用再区分了。
【解答问题4】
目前的模块没有文档,已经处于淘汰的状态,重新开发比修改维护成本更低,效果更好。同时有利于后期的维护(一方面是开发人员对新开发的模块有很高的熟悉程度,另一方面新开发会有完善的文档