- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 软件测试 第九章 软件测试 测试的基本概念 黑盒测试 白盒测试 测试用例设计 多模块程序的测试策略 面向对象系统的测试 9.1 测试的基本概念 测试(testing)的目的与任务 目的:发现程序的错误 任务:通过执行程序,暴露潜在的错误 纠错(debugging)的目的与任务 目的:定位和纠正错误 任务:消除软件故障,保证程序的可靠运行 测试和纠错信息流程 软件测试的不同立场 基于不同的立场,存在着两种完全不同的测试目的。 从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。 Myers 软件测试目的 测试是程序的执行过程,目的在于发现错误; 一个好的测试用例在于能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。 换言之,测试的目的是 以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。 测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。 实施测试收集到的测试结果数据为可靠性分析提供了依据。 测试不能表明软件中不存在错误,它只能说明软件中存在错误。 测试的特性 挑剔性 抱着为证明程序有错的目的去测试 复杂性 设计合适的测试用例 不彻底性 Dijkstra 一句名言:“程序测试只能证明错误的存在,但不能证明错误不存在” 经济性 测试的不彻底性举例:黑盒测试的穷举测试 假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行,若X、Y取整数,按黑盒方法进行穷举测试,则可能采用的测试数据组: 232×232=264 如果测试一组数据需要1毫秒,一年工作365×24小时,完成所有测试需5亿年。 测试的不彻底性举例:白盒测试的穷举测试 一个小程序的流程图,包括一个执行20次的循环,循环内有5条程序分支。则包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365×24小时,要想把所有路径测试完,需3170年。 软件测试的原则 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。 程序员应避免检查自己的程序。 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 严格执行测试计划,排除测试的随意性。 应当对每一个测试结果做全面检查。 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 软件测试的对象 软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。 需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。 为把握软件开发各个环节的正确性,需要进行各种确认和验证工作。 确认(Validation),是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。 需求规格说明的确认 程序的确认 (静态确认、动态确认) 验证(Verification),试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。 测试的种类 静态分析(不执行程序) 静态分析器 代码复审(Code Review) 动态分析(执行程序) 黑盒测试 测试程序功能 白盒测试 测试程序结构 测试的文档 软件测试必须完成规定的文档 测试计划 主体为测试内容说明 测试项目的名称 各项测试的目的、步骤和进度 测试用例的设计 测试报告 主体为测试结果 测试项目名称 实测结果与期望结果的比较 发现的问题 测试达到的效果 测试用例的组成 测试用例不仅是连接测试计划与执行的桥梁,也是软件测试的中心内容,有效地设计测试用例,是搞好软件测试的关键。 测试用例的组成 测试用例={测试数据+期望结果} 测试结果={测试数据+期望结果+实际结果} 可靠性分级表 9.2 黑盒测试 等价分类法(equivalence partitioning) 把输入数据的可能值划分为若干等价类 ,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用例。 等价类分为有效等价类和无效等价类,要考虑到每一等价类的划分 每一无效等价类至少需要一个测试用例,允许若干有效等价类合用同一个测试用例 等价分类法的测试用例设计 某工厂公开招工,规
文档评论(0)