第五章软件测试工程课件教学内容.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 软件测试工程; 软件产品最大的成本是检测软 件错误、修正软件错误的成本。 在整个软件开发中,测试工作量 一般占30%~40%,甚至≥50%。 在人命关天的软件(如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工程活动时间之和的三到五倍;;;;;质量控制技术;测试的目的与地位 G.J.Myers在《软件测试技巧》中认为: 1.测试是为了寻找错误而运行程序的过程。 2.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。 3.一个成功的测试是揭示了迄今为止尚未发现的错误的测试。; E.W.Dijkstra 指出: “程序测试能证明错误的存在,但不能证明错误不存在。” 测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。 ;把证明程序无错当作测试目的不仅是不正确的, 完全做不到的,而且对做好测试没有任何益处,甚至是十分有害的。 软件测试要设法使软件发生故障,暴露软件错误。 测试的“成功”与“失败”:能够发现错误的测试是成功的测试,否则是失败的测试。 ; “测试的目的是说明程序正确地执行它应有的功能” 这种说法正确吗? 例:程序Triangle,输入三个整数,表示一个三角形的三个边长,该程序产生一个结果,指出该三角形是等边三角形、等腰三角形还是不等边三角形。 为说明其能正确执行它的功能,可使用“测试用例”(3,4,5),(5,5,6),(6,6,6), 程序都能给出正确结果,是否就可认为程序是正确的? (两边之和必须大于第三边);难以说清的软件缺陷; 测试原则 (1)所有的测试都应追溯到用户需求 最严重的错误(从用户角度)是那些导致软件无法满足需求的错误。 程序中的问题根源可能出现在开发前期的各阶段,纠正错误也必须追溯到前期工作。 ;测试与开发前期工作的关系;开发前期出现错误的扩展;软件生存期各阶段间需保持的正确性; 测试原则 (2)应该尽早制定测试计划。 概要设计时应完成测试计划,详细的测试用例定义可在设计模型确定后开始,所有测试可在任何代码被产生之前进行计划和设计。 ; 测试原则 (3)应该由第三方进行测试工作。 一个软件项目的开发人员不应该同时是该???件的测试人员,基于心理因素,人们往往不愿意否定自己的工作。 ; 测试原则 (4)穷举测试是不可能的。 测试的最高目标是指发现错误的可能性最高的测试,所以,测试的关键技术是设计一组高产的测试用例,好的测试方案是尽可能发现至今为止仍未发现的错误。从某种意义上说,测试是否成功,取决测试用例的选择。 ; 测试原则 (5)充分注意到错误的群集现象 经验表明,测试发现的错误中有80%的错误很可能是由20%的程序模块造成的,这是一种错误群集性现象。也就是说,在程序段中,发现错误数目多的地方,则残存错误的数目也比较多,这一现象已为许多程序测试实践所证明。; 测试原则 (6)测试应该从“小规模”到“大规模” 通常,最初的测试重点往往是放在单个的程序模块中,然后,进一步的测试重点放在集成的模块族,最后是对整个系统进行测试。随着测试的逐步深入展开,要集中测试容易出错的地方。 ;软件测试流程;;软件测试对象 ;软件测试方法; 测试的方法与技术;静态和动态测试;静态测试:基本特征是对软件进行 分析、检查和审阅,不实 际运行被测试的软件。 静态测试约可找出30~70%的逻辑设计错误. 对需求规格说明书、软件设计说明书、源程序做检查和审阅,包括:①是否符合标准和规范;②通过结构分析、流图分析、符号执行指出软件缺陷; ;静态测试方法 (1)人工测试方法。人工测试就是通过人工阅读分析以及评审软件的文档、程序资料等等,以发现程序中的错误,尤其是一些设计上的逻辑错误在机器上不易发现,需要人工复查。根据统计,好的人工评审,可以发现30%到70%的编码或逻辑设计错误。 (2)计算机辅助静态分析。为了提高测试的效率,人们可以设计一些分析工具对被测试的程序进行静态分析,从中提取一些信息。例如,检查程序中的局部变量和全局变量、参数的匹配、判断与循环的嵌套匹配、潜在的死循环、不执行的代码、过程调用层次等等。 (3)程序正确性说明。程序正确性证明是试图找到某种方法,确切地证明程序是没有错误的。所谓证明,就是确信一个断言真实性的论证。这种证明可以形式化的或非形式化。;动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性。 动态测试的两个基本要素: 被测试程序 测试数据(测试用例);动态测试方法 (1)选取定义域有效值,或定义域 外无效值. (2)对已选取值决定预期的结果 (3)用选取值执行程序 (4)执行结果 与(2)

文档评论(0)

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

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

1亿VIP精品文档

相关文档