第6章 软件测试的.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 软件测试的

; ;不同的软件测试目的;是为了发现错误而执行程序的过程。 是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。;软件测试背景;软件生存期各阶段间需保持的正确性;Myers软件测试目标;E.W.Dijkstra 指出: “程序测试能证明错误的存在,但不能证明错误不存在.” 测试的目的是发现程序中的错误,是为了证明程序有错, 而不是证明程序无错.; 在整个软件开发中,测试工作量一般占30%~40%,甚至≥50%。 在人命关天的软件(如飞机控制、核反应堆等)中,测试所花费的时间往往是其它软件工程活动时间之和的三到五倍。; 读者是否注意到,当测试组发现一个错误后,有多少程序员发出宽慰的叹息,他们会说:“唷!我很高兴程序在交付之前测试出了这个错误。”然而另有一些程序员,在测试员报告他们程序中的错误特别是指出一段代码中的多个错误时,他们却对此忿恨不满。 我曾经见到过这种程序员怒发冲冠,也曾听到有些项目负责人说为什么测试员让我不得安宁。有一次,我还阻止过一位项目负责人和一位测试负责人之间的拳打脚踢,原因是项目负责人已经处于推迟交付产品的巨大压力之下,而测试组还在继续报告错误,这使他很不安。;软件测试的原则;开发前期出现错误的扩展;2.测试用例:以发现错误为目的而精心设计的一 组测试数据。 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。 测试用例={输入数据+期望结果} 3. 程序员应避免检查自己的程序。 4. 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。;程序测试举例 例:程序 Triangle, 输入三个整数,表示一个 三角形的三个边长,该程序产生一个结果, 指出该三角形是等边三角形、等腰三角形还 是不等边三角形。;5. 充分注意测试中的群集现象。 80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改错后还会经常出错。 经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。 6. 严格执行测试计划,排除测试的随意性。 7. 应当对每一个测试结果做全面检查。 8. 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。;程序的结果;软件测试的对象 软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计、程序编码等各阶段所得到的文档资料,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。 到程序的测试为止,软件开发工作已经经历了许多环节,每个环节都可能发生问题。为了把握各个环节的正确性,人们需要进行各种确认和验证工作。 ; 确认(validation),是一系列的活动和过程,其目的是想证实在一个给定的外部环境中软件的逻辑正确性。它包括需求规格说明的确认和程序的确认,而程序的确认又分为静态确认与动态确认。 验证(verification),则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。下图为软件生存期各个重要阶段之间所要保持的正确性。; 测试信息流如下图所示。 ;机器测试与人工测试 机器测试 在设定的测试数据上执行被测程序的过程。又称动态测试。 人工测试 采用人工方法进行,目的在于检查程序的静态结构,找出编译不能发现的错误。;代码审查 以小组会的形式,发现程序在结构、功能、编码风格等方面存在的问题。可查出30%~70%的错误 走查 以小组会的形式进行,把测试数据“输入”到被测程序,并在纸上跟踪监视程序的执行情况,让人代替机器沿着程序的逻辑走一遍。 桌前检查 设计模块时,程序作者自己检查。;黑盒测试 白盒测试;黑盒测试;白盒测试;主要对程序模块进行如下检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次; 在循环的边界和运行 界限内执行循环体; 测试内部数据结构的 有效性。;穷举测试—无论哪种测试方法,包含所有可能 情况的测试为穷举测试。 黑盒穷举测试 必须对所有输入数据的各种可能值的排列组合都进行测试,来检查程序是否都能产生正确的输出。 白盒穷举测试 对每条通路都应在每种可能的输入数据下执行一次。 选择测试—在实际测试中,只能选择一些有代表 性的典型的测试用例,进行有限的测试。;假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 232×232 =264 如果测试一组数据需要1毫秒,一年

文档评论(0)

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

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

1亿VIP精品文档

相关文档