- 1、本文档共136页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 9 章 软件测试 邢承杰 北京大学计算中心管理信息中心 E-mail: xingcj@pku.edu.cn 软件测试 在软件生命周期中,软件测试是开发的最后阶段,又是软件运行的前期,横跨两个阶段。统计表明,较大型的软件,大约40%开销花在测试上。一些特殊的系统(如航空/航天飞行控制、核反应堆监控)甚至达3~5倍。因此测试是十分重要的环节,它关系到软件能否生存下去的问题,无论如何强调都不过分。 本章主要内容 9.1 软件测试概述 9.2 软件测试的基本概念 9.3 测试用例的构造 9.4 测试方案的建立及实施 9.5 软件排错(Debug) 9.1 软件测试概述 9.1.1 软件测试定义 9.1.2 软件测试目的和目标 9.1.3 软件测试的原则 9.1.4 软件测试的对象 9.1.5 测试与软件开发各阶段的关系 9.1.1 软件测试定义 软件测试是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终复审,是软件质量保证的关键步骤。 简单定义:是为了发现错误而执行程序的过程。 完整定义:在精心控制的系统环境下,采用相应的技术手段,利用一组事先构造好的测试实例执行程序以发现程序中存在的问题,并确认系统功能、性能符合需求的一个综合过程。 9.1.2 Myers软件测试目的 测试是程序的执行过程,目的在于发现错误; 一个好的测试用例在于能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。 9.1.2 软件测试目标 以最少的时间和人力找出软件中潜在的各种错误和缺陷。 软件测试能够确认软件的功能和性能与用户需求说明的一致性。 软件测试还能收集到的足够的测试结果为软件可靠性评价提供依据。 9.1.3 软件测试的原则(1) 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 在测试之前应当预先确定测试用例,测试用例应由测试输入数据和对应的预期输出结果这两部分组成。 程序员应避免检查自己的程序。 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。不仅要测试输入数据正确的情况,还要测试输入数据不正确的情况。 9.1.3 软件测试的原则(2) 充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 严格执行测试计划,排除测试的随意性。 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便 测试工作是一项非常复杂、极富创造性和需要高度智慧的挑战性工作。 9.1.4 软件测试的对象 软件测试与程序测试的区别 程序测试针对一段程序或模块进行 软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。 需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。 9.1.4 软件测试的对象(续) 软件配置:需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序等,统称为软件配置。 程序和各个软件配置项共同组成软件测试的对象。 9.1.5 测试与软件开发各阶段的关系 软件开发过程是一个自顶向下,逐步细化的过程 测试过程是依相反顺序安排的自底向上,逐步集成的过程。 9.1.5 测试与软件开发各阶段的关系 本章主要内容 9.1 软件测试概述 9.2 软件测试的基本概念 9.3 测试用例的构造 9.4 测试方案的建立及实施 9.5 软件排错(Debug) 9.2 软件测试的基本概念 9.2.1 软件测试的过程 9.2.2 软件测试的方法 9.2.3 软件测试的步骤 9.2.4 确认和验证 9.2.1 软件测试的过程 软件测试是一个心理、技术交织在一起的复杂过程。这个过程可用如下数据流图表达。 测试过程说明 测试配置:是预先定义好的一套测试方案,包括测试计划、测试过程、测试用例集合和所预期的执行结果。测试配置是软件配置中的一个子集。 测试结果分析:比较实测结果与预期结果,评价错误是否发生。 测试过程说明(续) 排错(调试):对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。 可靠性分析:随着测试结果的积累和统计分析,软件可靠性的评价就可以按照指定的模型计算。 回归测试:使用发现错误的数据重新对排错后的软件进行测试。 软件可靠性 软件可靠性指软件在运行期间平均无故障运行的时间周期,这个周期越长,系统可靠性就越高。 一方面,如果系统不断出现一些严重的、要求修改设计的错误,那么软件的质量和可靠性就存在问题,这也意味着要对软件做更深入的测试。 另一方面,如果软件的功能已正确实现,测试中发现的错误性质不严重,很容易纠正,那么可能会有以下
文档评论(0)