- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 软件测试与维护 例如: 某应用程序完成如下功能:输入某年某月某日(1900年~2050年),判断这一天是这一年的第几天。 程序C源代码如下: main() { int day,month,year,sum,leap; printf(\nplease input year,month,day\n); scanf(%d,%d,%d,year, month,day); 1、用下述表格形式设计边界值测试用例 满足路径覆盖指标的测试案例至少多少个?用路径图标出. 该程序是否有缺陷?这些缺陷可以用什么测试案例检测出来? 二、调试的策略 (一)强行排错: 1、输出存储器内容 2、打印语句 3、自动工具 (二)回溯法 采用回溯法排错时,调试人员首先分析错误征兆,确定最先出现“症状”的位置,然后人工沿程序的控制流程往回追踪源程序代码,直到找到错误根源或确定错误产生的范围为止。 (三)归纳法 归纳法就是从线索(错误征兆)出发,通过分析这些线索之间的关系而找出故障的一种系统化的思考方法。这种方法主要包括下述四个步骤: (1)收集有关的数据 (2)组织数据 (3)提出假设 (4)证明假设 (四)演绎法 演绎法从一般原理或前提出发,经过排除和精化的过程推导出结论。演绎法排错的过程是这样的:测试人员首先列出所有可能出错的原因或假设,然后再用原始测试数据或新的测试,逐个排除不可能正确的假设,最后,证明剩下的原因确实是错误的根源。 第七节 软件维护 软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。按照不同的维护目的,维护工作可分成4类。 软件维护的类型 四类软件维护的比例 二、维护的步骤 三、维护工作的组织管理 软件维护工作不仅是技术性的,它还需要大量的管理工作与之相配合,才能保证维护工作的质量。管理部门应对提交的修改方案进行分析和审查,并对修改带来的影响作充分的估计,对于不妥的修改予以撤销。需修改主文档时,管理部门更应仔细审查。 软件维护的管理流程如图所示: 软件维护的管理流程 四、软件维护的特性 (一)、结构化维护与非结构化维护 结构化维护 — 指软件开发过程是按照软件工 程方法,软件的维护过程,有一整套完整的方案、技术、审定过程。 非结构化维护 — 缺乏必要的文档说明,难于 确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。 (二)、软件维护的代价 维护费用高达开发费用的55% — 70%,而 且逐年上涨。 维护中还可能引入新的潜在错误。 Belady 和 Lehman 提出软件维护工作模型: M=P+K*EXP(C - D) 其中: M—维护总工作量 P—生产性活动 K—经验常数 C—程序复杂度(由非结构化维护引起的) D—对维护软件熟悉程度的度量。 五 软件维护的技术 在软件开发阶段用来减少错误,提高软件可维护性的技术。涉及到软件开发的所有阶段。 退出 上页 首页 下页 末页 结论 退出 上页 首页 下页 末页 可维护性(可测试性、可理解性、可修改性) (二)、软件支援技术 (一)、面向维护的技术 在软件维护阶段用于提高维护工作的效率和质量的技术。主要用到测试阶段的技术。 (信息收集、错误原因分析、软件分析与理解、 维护方案评价、代码与文档的修改、修改后的确认。) (三)、软件维护中应注意的问题(谨慎、工具使用) 补充: 控制结构测试 一、 基本路径测试 是一种白盒测试技术,使用这种技术设计测试用例时,首先计算过程设计结果的逻辑复杂度,并以该复杂度为指南定义执行路径的基本集合,从该基本集合导出的测试用例可以保证程序中每条语句至少执行一次,而且每个条件在执行时都将分别取真和假值。 使用基本路径测试技术设计测试用例的步骤: 1、根据过程设计结果画出相应的流图; 2、计算流图的环形复杂度; 3、确定线性独立路径的基本集合; 4、设计可强制执行基本集合中每条路径的测试用例。 1、根据过程设计结果画出相应的流图 计算不超过100个在规定值域内的有效数字的平均值,同时计算有效数字的总和及个数。 分析: 有效数字存放在数组val[100]中,规定值域为val[I]=min val[I]=max;数字序列的结束标志为val[i]=-999,检查的数字总个数存入tnum中,有效数字总个数存入vnum中,有效数字总和存入sum中。 I=1, sum=0,tnum=0,vnu
文档评论(0)