网站大量收购独家精品文档,联系QQ:2885784924

第六章 软件工程.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 软件测试方法 软件测试的基本概念 白盒测试的测试用例设计 基本路径测试 黑盒测试的测试用例设计 软件测试的策略 人工测试 调试 6.1 软件测试的基本概念 什么是软件测试 软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。 软件测试是为了发现错误而执行程序的过程。 或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 软件测试的目的和原则 基于不同的立场,存在着两种完全不同的测试目的。 从用户的角度出发,普遍希望通过软件测试检验软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。 Grenford J.Myers就软件测试目的提出了以下观点。 测试是程序的执行过程,目的在于发现错误。 好的测试用例在于能发现至今未发现的错误。 成功的测试是发现了至今未发现的错误的测试。 根据以上测试目的,软件测试的原则如下: (1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 (2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。 (3)程序员应避免检查自己的程序。 (4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 (5)充分注意测试中的群集现象。把Pareto原理应用于软件测试。 Pareto原理:测试发现的错误中的80%很可能是由程序中20%的模块造成的。 (6)严格执行测试计划,排除测试的随意性。 (7)应当对每一个测试结果作全面检查。 (8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。 测试工作量和测试人员: 在整个软件开发中,测试工作量一般占30%~40%,甚至≥50%。 在人命关天的软件(如飞机控制、核反应堆等)中,测试所花费的时间往往是其它软件工程活动时间之和的三到五倍。 Windows2000开发人员中: 项目经理约250人 开发人员约1700人 测试人员约3200人 软件测试的对象 软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计、程序编码等各阶段所得到的文档资料,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。 到程序的测试为止,软件开发工作已经经历了许多环节,每个环节都可能发生问题。为了把握各个环节的正确性,人们需要进行各种确认和验证工作。 确认(validation),是一系列的活动和过程,其目的是想证实在一个给定的外部环境中软件的逻辑正确性。它包括需求规格说明的确认和程序的确认,而程序的确认又分为静态确认与动态确认。 验证(verification),则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。下图为软件生存期各个重要阶段之间所要保持的正确性。 测试方法与技术 机器测试与人工测试 机器测试:在设定的测试数据上执行被测程序的过程。又称动态测试。 人工测试:采用人工方法进行,目的在于检查程序的静态结构,找出编译不能发现的错误。 人工测试的分类 代码审查:以小组会的形式,发现程序在结构、功能、编码风格等方面存在的问题。 可查出30%~70%的错误 走查:以小组会的形式进行,把测试数据“输入”到被测程序,并在纸上跟踪监视程序的执行情况,让人代替机器沿着程序的逻辑走一遍。 桌前检查:设计模块时,程序员自己检查。 机器测试的分类 黑盒测试 白盒测试 测试信息流如下图所示。 测试与软件开发各阶段的关系 软件开发过程是一个自顶向下、逐步细化的过程,而测试过程则是依相反的顺序安排的自底向上、逐步集成的过程。低一级测试为上一级测试准备条件。 当然不排除两者平行地进行测试。 黑盒测试 黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 黑盒测试方法主要是为了发现以下错误: 是否有不正确或遗漏了的功能? 输入能否正确地接收? 能否输出正确的结果? 是否有数据结构错误或外部信息(例如数据文件)访问错误? 性能上是否能够满足要求? 是否有初始化或终止性错误? 黑盒穷举测试 对所有输入数据的各种可能值的排列组合都进行测试,来检查程序是否都能产生正确的输出。 实际上这是不可能的。 假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测

文档评论(0)

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

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

1亿VIP精品文档

相关文档