- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
测试的目的就是在软件投入生产性运行之前
第七章 测试 测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤, 测试是对软件规格说明、设计和编码的最后复审。 根本目标:尽可能多地发现并排除软件中潜藏的错误,最终把高质量的软件系统交给用户。 无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。 软件测试在软件生命周期中横跨两个阶段。软件测试包括两种: 单元测试——模块的编写者和测试者是同一个人 综合测试——由专门的测试人员承担 软件测试的工作量往往占软件开发总工作量的40%以上 7.1 基本概念 7.1.1 软件测试的目标 (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试。 测试的定义——为了发现程序中的错误而执行程序的过程。 测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。 由于测试的目标是暴露程序中的错误,因此由程序的编写者自己进行测试是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来完成测试工作。 测试不能证明错误不存在,只能表示软件错误已经出现。 测试决不能证明程序是正确的。即使经过了最严格的测试之后,仍然可能还有没被发现的错误潜藏在程序中。测试只能查找出程序中的错误,不能证明程序中没有错误。 测试原则 所有的测试都应追溯到用户需求。 应在测试工作真正开始的前较长时间内就进行测试计划。(测试计划可在设计模型一完成就开始,详细测试方案定义可在设计模型被确定后立即开始) 穷举测试是不可能的。 为达到最佳效果,应由独立的第三方来构造测试。 可测试性 软件的可测试性就是一个计算机程序能够被测试的容易程度。 可测试性特征: 可操作性“运行得越好,被测试的效率越高” 可观察性。“你所见的即为你所测试的” 可控制性。“对软件控制越好,测试越能够被自动执行与优化” 可分解性。“通过控制测试范围,能更快的分界问题,执行更灵巧的再测试” 简单性。“需测试的内容越少,测试速度越快” 稳定性。“改变越少,对测试的破坏越小” 易理解性。“得到的信息越多,进行的测试越灵巧” “好”测试的属性 一个好测试发现错误的可能性很高。 一个好测试并不冗余。(每个测试都该有不同的用途) 一个好测试应该是一组目的相似的测试中最佳的,最可能找到所有错误的测试。 一个好测试既不会太简单,也不会太复杂。 7.1.2 黑盒测试和白盒测试 测试任何产品都有两种方法: 黑盒测试——如果已经知道了产品应该具有 的功能,可以通过测试来检验是否每个功能都能正常使用; 白盒测试——如果知道产品内部工作过程, 可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行,且所有内部部件被充分利用(确保“所有齿轮吻合”)。 黑盒测试又称为功能测试,它把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按 照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。 (故意不考虑控制结构,而是注意信息域) 黑盒测试检测的错误类型 功能不对或遗漏。 界面错误。 数据结构或外部数据库访问错误。 性能错误。 初始化和终止错误。 白盒测试又称为结构测试,它的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。 (使用程序设计的控制结构导出测试方案) 包含所有可能情况的测试称为穷尽测试,对于实际程序而言,穷尽测试通常是不可能做到的。 白盒测试功能 保证一个模块中的所有独立路径至少被执行一次。 对所有逻辑值均需测试TRUE和FALSE。 在上下边界及可操作范围内运行所有循环。 检查内部数据结构以确保其有效性。 7.1.3 软件测试的步骤 1. 模块测试 模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。 2. 子系统测试 子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此这个步骤着重测试模块的接口。 3. 系统测试 系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的
文档评论(0)