第6章软件测试(上).pptx

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

第6章 软件测试(上);软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件测试基础;从定义中看出软件测试的四个特点: 动态:软件测试总要通过一组输入执行程序。由于系统会处于不同的状态,因此对于同样的输入可能产生不同的响应。 有限:在测试中实际能够观察的执行数量是有限的。正是这种矛盾带来测试技术(测试充分性评判准则)和管理(测试工作量估计)两个方面的测试问题。 选取:很多测试手段的本质区别就是如何选择有限的测试集。 预期:必须能够确定所观察到的程序执行输出是不是可接受的,否则测试工作就是无用的。;E.W.Dijkstra 指出——程序测试能证明错误的存在,但不能证明错误不存在。 测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。;软件测试基础;软件测试基础;软件测试基础;1. 软件测试过程模型——V模型;软件测试基础;软件测试基础;软件测试原则; 需求阶段是明确系统功能、性能、领域需求等内容。要求测试人员在这一阶段要了解用户软件需求、硬件支撑环境、系统部署、用户操作流程、系统外部接口等内容,并生成系统测试计划,并形成文档。经过审查和复审,形成软件配置项。 ;软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件测试基础;软件错误分类 功能错(需求分析错误) 软件结构错(设计阶段) 数据错(数据库设计) 编码错(代码实现) 软件集成错(代码实现和测试) 测试定义与测试执行错误 ;静态测试: 基本特征是在对软件进行分析、检查和测试而不实际运行被测试的软件。;1. 白盒测试:又称为结构测试、基于覆盖的测试. ;例:输入三条边长用黑盒测试,可采用的测试用例数: (设字长32位),232 X232 X232 ≈ 296 执行时间: 设测试一次需1毫秒,共需约261年。;穷尽测试结论: 不论黑盒还是白盒测试都不能进行穷尽测试, 所以软件测试不可能发现程序中存在的所有错误, 因此需精心设计测试方案, 力争尽可能少的次数,测出尽可能多的错误。;逻辑覆盖准则 (1)语句覆盖 (2)判定覆盖 (3)条件覆盖 (4)判定/条件覆盖 (5)条件组合覆盖 (6)点覆盖 (7)边覆盖;练习:; 循环测试是大多数算法的基础,循环测试的目的是检查循环结构的有效性。循环分为简单循环、嵌套循环、并列循环和非结构循环四类,如图所示。 对于最多为n次的简单循环,应做下列测试: (1)完全跳过循环 (2)仅循环一次; (3)循环两次; (4)循环m次,m<n; (5)分别循环(n-l)次、n次、n+l次。;问题:求数组A的最小值。 k = i; for (j = i+1; j = n; j++) { if (A[j] A[k]) { k = j; } }; 对于嵌套循环若生搬硬套简单循环的测试策略,可能使测试次数成几何级数增长。因此需要设计减少测试次数的具体方法。 (1)从最内层循环开始测试,此时所有外层循环都取最小值,内层循环按简单循环的测试策略测试。 (2)由里向外,回退到上一层循环测试,这层循环的所有外层循环仍取最小值,由该层循环嵌套的那些循环取一些典型值。 (3)继续向外扩展,直至所有循环测试完毕。 对于并列循环分两种情况,若两个循环完全独立,采用简单循环的测试策略,反之,若第一循环的计数器用作第二循环的初值,即两循环不独立,需用嵌套循环测试策略测试。 非结构化的循环需按结构化程序设计的思想,首先将程序结构化然后再进行测试。;白盒测试;1;流图中“与”节点的逻辑表示;流图中“或”节点的逻辑表示;i = 1; Total.input = total.valid = 0; ⑴ Sum = 0; DO WHILE value[i] -999 ⑵ AND total.input 100 ⑶ increment total.input by 1; ⑷ IF vale[i] = minimum ⑸ AND vale[i] = maximum ⑹ THEN increment total.valid by 1; sum = sum + value[i]; ⑺ ELSE skip; ENDIF increment i by 1; ⑻ ENDDO ⑼ IF total.valid 0 ⑽ THEN average = sum / total.valid; ⑾ ELSE average = -999; ⑿

文档评论(0)

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

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

1亿VIP精品文档

相关文档