软件测试及缺陷预防.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件测试及缺陷预防

1 软件测试及缺陷预防 吴超英 周伯生 北京航空航天大学软件工程研究所 软件测试及缺陷预防 绪 论 软件质量保证的常用技术 软件测试的基本方法 软件测试过程 集成测试的群体协同工作过程 软件缺陷的预防 结束语 1. 绪 论 软件质量与软件过程 软件测试的意义及代价 测试与软件过程 软件质量测量的意义 缺陷预防与定量管理 1.1 软件质量与软件过程 软件质量是在软件开发过程中逐渐建立起来的 过程的质量直接影响软件的质量 人员和过程是决定软件质量的关键因素 高质量的人员和好的过程应该得到好的产品 1.2 软件测试的意义及代价 迄今为止,软件质量仍然主要靠软件测试来验证和确认,而且由于测试工作特别耗费资源,据Boehm的统计,在软件开发的总成本中,用在测试上的开销要占30%到50%。在极端的情况下,例如在关系到人的生命安全的软件中(如飞机控制或核反应监控等软件),测试费用可能相当软件生存周期所有其它阶段费用总和的三到五倍。此外,据美国工业界的统计,对商品化的顺序程序来说,测试在时间和费用两方面的花费都要占整个软件开发周期总开销的50%左右。 但软件测试并不是质量保证的“安全网”。因此,我们应该从两个方面来保证和提高软件质量:首先,应尽量在开发期间减少错误,通过软件过程来建立软件质量;次之,应通过分析和测试来发现和修复软件产品中残存的错误。 1.3 测试与软件过程 椐统计大约有60%的错误是在设计阶段之前注入的,并且修正一个软件错误所需的费用将随着软件生存期的进展而上升。错误发现得越晚,修复它的费用就越高,而且呈指数增长的趋势。 软件文档和程序应均为检测对象。 总之,软件测试在软件生存周期中占有非常重要的位置,是对软件规格说明、设计和编码的最后终审。 2. 软件质量保证的常用技术 程序设计方法 过程技术 代码复查 非自我程序设计与结构化走查 软件测试 度量 形式化技术 2.1 程序设计方法 结构化程序设计 面向对象程序设计 软件复用技术 2.2 过程技术 CMM 软件过程成熟度模型 PSP 个体软件过程 TSP 群组软件过程 2.3 代码复查(1) 代码复查是一种能快速找到缺陷的方法。做代码复查就是研究源程序,从中发现错误。代码复查最好是在源程序编码完成后并且在编译和测试之前进行。由于大部分软件缺陷源于疏忽或缺乏经验,所以在刚刚完成设计或编码时是最容易发现缺陷的,因为这个时候程序员还能记住他打算做什么,也知道如何修复任何问题。 代码复查(2) 代码复查的基本方法: 打出源程序清单 然后逐行地进行复查。 程序清单能使你的目光快速地在代码段之间切换、做笔记、标记出已经完成的部分。 有效的原因是:在代码复查时看到的是问题本身而不是征兆。因为在编译和测试阶段,发现和修复缺陷需要从发现征兆到确定问题的过程,所以时间花费就大的多。而代码复查能节省这些时间。 2.4 非自我程序设计与结构化走查 Gerald Weinberg提出的非自我程序设计的概念:一个人无论多么精明,对他的工作进行评审总是有益的。 Michael Fagan将这一概念形式化为良好定义的评审技术。经验证明,代码复查能发现程序中平均75~80% 的缺陷,是单元测试效率的3~5倍,是目前最有效的发现和改正缺陷的方法。 结构化走查是借助于人工来检测软件(其中包括程序)中的差错。 结构化走查贯穿软件生存周期的各个阶段 2.5 软件测试的基本策略 验证、确认和测试 静态测试与动态测试 黑盒测试与白盒测试 3. 软件测试的基本方法 软件测试的基本概念 软件测试的基本策略 3.1 软件测试的基本概念 软件测试的定义 测试的目标 软件测试的原则 值得注意的经验 好的测试的属性 软件测试的定义 1983年在IEEE提出的软件工程标准术语中,把软件测试定义为是“使用人工或自动手段来运行或测试某个系统的过, 其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。 G. J. Myers认为“软件测试是为了发现错误而执行程序的过程”。这一定义明确地指出“寻找错误”是测试的目的。 J. B. Goodenough则认为测试“除了要考虑正确性外,还应关心程序的效率和鲁棒性等因素”。 综合这些看法可得出,测试是一个通过分析和执行程序发现软件不满足质量要求的缺陷的过程。 测试的目标 Myers对测试目标作了如下归纳: 测试是程序的一个执行过程,其目的在于发现错误; 一个好的测试用例在于能找到至今尚末发现的错误; 一个成功的测试是发现了至今尚末发现的错误。 总之,测试是为了发现错误,这不仅从技术角度为软件测试下了定义,而且从心理学和经济学的角度规定了软件测试的基本任务。在我们给出的测试定义中,已经将

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档