软件工程第七章(3-3).ppt_第1页
软件工程第七章(3-3).ppt_第2页
软件工程第七章(3-3).ppt_第3页
软件工程第七章(3-3).ppt_第4页
软件工程第七章(3-3).ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程第七章(3-3) 软件测试 方海光 首都师范大学教育技术系 2006年10月 Contents 7.4 测试用例设计(7.4.3) 软件危机 (1.2) 7.5 调试技术和策略 7.6 软件测试工具 2 例:程序Triangle读入三个整数值,这三 个整数代表同一个三角形三条边的长度, 程序根据这三个值判断三角形属于不等边 、等腰或等边三角形中的那一种。 3 a b c Triangl e a,b,c 三角形的类型? 4 start ab+c? ba+c? ca+b? a=b? b=c? 印出 “不是三角形” 印出 “等边三角形” 印出 “等腰三角形” 印出 “不等边三角形” a=c? b=c? F T F F T T T T FF F F TT stop 程序流程图 程序图 5 黑盒测试(等价划分) 正常的三角形 (a,b,c) 不等边边三角形(8,10,12); (10,8,12); (10,12,8) 等边边三角形(10,10,10) 等腰三角形(10,10,17); (10,17,10); (17,10,10) 6 黑盒测试(等价划分) 退化的三角形 (a,b,c) 不等边边三角形(10,6,4) 等边边三角形(0,0,0) 等腰三角形(10,5,5); (5,10,5); (10,5,5) 7 黑盒测试(等价划分) 不能构成三角形的非法数据 (a,b,c) a+bc(10,10,21) b+ca(21,10,10) c+ab(10,21,10) 8 黑盒测试(边界值分析) 一条边长度为零 的情况 (0,10,12);(10,0,12); ( 10,12,0) 两条边的长度为 零的情况 (0,0,17); (0,17,0); (17,0,0) 三条边的长度为 零的情况 (0,0,0) 9 输输入数据中包含负负整数 (-10,-10,-10) 输输入数据不全(不足三个正整 数) (10,-,-) 输输入数据中包含非整数型的数 据 (a,b,c) (1.2,6e-4,7.8) 黑盒测试(错误推测) 10 调试(调试(DebugDebug) vv软件调试是在进行了成功的测试之后才软件调试是在进行了成功的测试之后才 开始的工作。它与软件测试不同,调试开始的工作。它与软件测试不同,调试 的任务是的任务是进一步诊断和改正程序中潜在进一步诊断和改正程序中潜在 的错误的错误。 vv调试活动由两部分组成:调试活动由两部分组成: 确定程序中可疑错误的确切性质确定程序中可疑错误的确切性质 和位置。和位置。 对程序对程序( (设计设计, ,编码编码) )进行修改,排进行修改,排 除这个错误。除这个错误。 11 vv调试工作是一个具有很强技巧性的工作调试工作是一个具有很强技巧性的工作 。 vv软件运行失效或出现问题,往往只是潜软件运行失效或出现问题,往往只是潜 在错误的外部表现在错误的外部表现,而外部表现与内在,而外部表现与内在 原因之间常常没有明显的联系。如果要原因之间常常没有明显的联系。如果要 找出真正的原因,排除潜在的错误,不找出真正的原因,排除潜在的错误,不 是一件易事。是一件易事。 vv可以说,可以说,调试是通过现象,找出原因的调试是通过现象,找出原因的 一个思维分析的过程一个思维分析的过程。 12 调试的步骤调试的步骤 (1) (1) 从错误的外部表现形式入手,确定程从错误的外部表现形式入手,确定程 序中出错位置;序中出错位置; (2) (2) 研究有关部分的程序,找出错误的内研究有关部分的程序,找出错误的内 在原因;在原因; (3) (3) 修改设计和代码,以排除这个错误;修改设计和代码,以排除这个错误; (4) (4) 重复进行暴露了这个错误的原始测试重复进行暴露了这个错误的原始测试 或某些有关测试。或某些有关测试。 13 vv从技术角度来看,查找错误的难度在于从技术角度来看,查找错误的难度在于 : 现象与原因所处的位置可能相距现象与原因所处的位置可能相距 甚远。甚远。 当其它错误得到纠正时,这一错当其它错误得到纠正时,这一错 误所表现出的现象可能会暂时消误所表现出的现象可能会暂时消 失,但并未实际排除。失,但并未实际排除。 现象实际上是由一些非错误原因现象实际上是由一些非错误原因 ( (例如,舍入不精确例如,舍入不精确) )引起的。引起的。 14 现象可能是由于一些不容易发现现象可能是由于一些不容易发现 的人为错误引起的。的人为错误引起的。 错误是由于时序问题引起的,与错误是由于时序问题引起的,与 处理过程无关。处理过程无关。 现象是由于难于精确再现的输入现象是由于难于精确再现的输入 状态(例如,实时应用中输入顺状态(例如,实时应用中输入顺 序不确定)引起。序不确定)引起。 现象可能是周期出现的。在软、现象可能是周期出现的。在软、 硬件结合的嵌入式系统中常常遇硬件结合的嵌入式系统中常常遇 到。到。 15 几种主要的调试方法几种主要的调试方法 调试的关键在于推断程序内部的错误位调试的关键在于推断程序内部的错误位 置及原因。可以采用以下方法:置及原因。可以采用以下方法: 强行排错强行排错 这种调试方法目前使用较多,效率较低这种调试方法目前使用较多,效率较低 。它不需要过多的思考,比较省脑筋。它不需要过多的思考,比较省脑筋。 例如:例如: 通过内存全部打印来调试通过内存全部打印来调试,在这,在这 大量的数据中寻找出错的位置。大量的数据中寻找出错的位置。 16 在程序特定部位设置打印语句,在程序特定部位设置打印语句, 把打印语句插在出错的源程序的把打印语句插在出错的源程序的 各个关键变量改变部位、重要分各个关键变量改变部位、重要分 支部位、子程序调用部位,跟踪支部位、子程序调用部位,跟踪 程序的执行,监视重要变量的变程序的执行,监视重要变量的变 化。化。 自动调试工具。自动调试工具。利用某些程序语利用某些程序语 言的调试功能或专门的交互式调言的调试功能或专门的交互式调 试工具,分析程序的动态过程,试工具,分析程序的动态过程, 而不必修改程序。而不必修改程序。 17 应用以上任一种方法之前,都应当对错应用以上任一种方法之前,都应当对错 误的征兆进行全面彻底的分析,得出对误的征兆进行全面彻底的分析,得出对 出错位置及错误性质的推测,再使用一出错位置及错误性质的推测,再使用一 种适当的调试方法来检验推测的正确性种适当的调试方法来检验推测的正确性 。 回溯法调试回溯法调试 这是在小程序中常用的一种有效的调试这是在小程序中常用的一种有效的调试 方法。方法。 一旦发现了错误,人们先分析错误征兆一旦发现了错误,人们先分析错误征兆 ,确定最先发现,确定最先发现“ “症状症状” ”的位置。的位置。 18 然后,人工沿程序的控制流程,向回追然后,人工沿程序的控制流程,向回追 踪源程序代码,直到找到错误根源或确踪源程序代码,直到找到错误根源或确 定错误产生的范围。定错误产生的范围。 vv例如,程序中发现错误处是某个打印语例如,程序中发现错误处是某个打印语 句。通过输出值可推断程序在这一点上句。通过输出值可推断程序在这一点上 变量的值。再从这一点出发,回溯程序变量的值。再从这一点出发,回溯程序 的执行过程,反复考虑:的执行过程,反复考虑:“ “如果程序在如果程序在 这一点上的状态(变量的值)是这样,这一点上的状态(变量的值)是这样, 那么程序在上一点的状态一定是这样那么程序在上一点的状态一定是这样 .”.”, 直到找到错误的位置。直到找到错误的位置。 19 归纳法调试归纳法调试 vv归纳法是一种从特殊推断一般的系统化归纳法是一种从特殊推断一般的系统化 思考方法。归纳法调试的基本思想是:思考方法。归纳法调试的基本思想是: 从一些线索从一些线索( (错误征兆错误征兆) )着手,通过分析着手,通过分析 它们之间的关系来找出错误。它们之间的关系来找出错误。 收集有关的数据收集有关的数据 列出所有已知列出所有已知 的测试用例和程序执行结果。看的测试用例和程序执行结果。看 哪些输入数据的运行结果是正确哪些输入数据的运行结果是正确 的,哪些输入数据的运行结果有的,哪些输入数据的运行结果有 错误。错误。 20 组织数据组织数据 由于归纳法是从特殊到一般的推断由于归纳法是从特殊到一般的推断 过程,所以需要组织整理数据,以过程,所以需要组织整理数据,以 发现规律。发现规律。 常以常以3W1H3W1H形式组织可用的数据:形式组织可用的数据: “ “WhatWhat” ” 列出一般现象;列出一般现象; “ “WhereWhere” ”说明发现现象的地点;说明发现现象的地点; “ “WhenWhen” ” 列出现象发生时所有已知列出现象发生时所有已知 情况;情况; “ “HowHow” ” 说明现象的范围和量级;说明现象的范围和量级; 21 22 “ “YesYes” ”描述出现错误的描述出现错误的3W1H3W1H; “ “NoNo” ”作为比较,描述了没有错误的作为比较,描述了没有错误的 3W1H3W1H。通过分析找出矛盾来。通过分析找出矛盾来。 提出假设提出假设 分析线索之间的关系,利用在线索结分析线索之间的关系,利用在线索结 构中观察到的矛盾现象,设计一个或构中观察到的矛盾现象,设计一个或 多个关于出错原因的假设。如果一个多个关于出错原因的假设。如果一个 假设也提不出来,归纳过程就需要收假设也提不出来,归纳过程就需要收 集更多的数据。此时,应当再设计与集更多的数据。此时,应当再设计与 执行一些测试用例,以获得更多的数执行一些测试用例,以获得更多的数 据。据。 23 证明假设证明假设 把假设与原始线索或数据进行比把假设与原始线索或数据进行比 较,若它能完全解释一切现象,较,若它能完全解释一切现象, 则假设得到证明;否则,就认为则假设得到证明;否则,就认为 假设不合理,或不完全,或是存假设不合理,或不完全,或是存 在多个错误,以致只能消除部分在多个错误,以致只能消除部分 错误。错误。 24 vv演绎法调试演绎法调试 演绎法是一种从一般原理或前提出发,演绎法是一种从一般原理或前提出发, 经过排除和精化的过程来推导出结论的经过排除和精化的过程来推导出结论的 思考方法。演绎法排错是测试人员首先思考方法。演绎法排错是测试人员首先 根据已有的测试用例,设想及枚举出所根据已有的测试用例,设想及枚举出所 有可能出错的原因做为假设;然后再用有可能出错的原因做为假设;然后再用 原始测试数据或新的测试,从中逐个排原始测试数据或新的测试,从中逐个排 除不可能正确的假设;最后,再用测试除不可能正确的假设;最后,再用测试 数据验证余下的假设确是出错的原因。数据验证余下的假设确是出错的原因。 25 列举所有可能出错原因的假设列举所有可能出错原因的假设 把所有可能的错误原因列成表。把所有可能的错误原因列成表。 通过它们,可以组织、分析现有通过它们,可以组织、分析现有 数据。数据。 利用已有的测试数据,排除不正利用已有的测试数据,排除不正 确的假设确的假设 仔细分析已有的数据,寻找矛盾仔细分析已有的数据,寻找矛盾 ,力求排除前一步列出所有原因,力求排除前一步列出所有原因 。如果所有原因都被排除了,则。如果所有原因都被排除了,则 需要补充一些数据需要补充一些数据( (测试用例测试用例) ), 以建立新的假设。以建立新的假设。 26 改进余下的假设改进余下的假设 利用已知的线索,进一步改进余下利用已知的线索,进一步改进余下 的假设,使之更具体化,以便可以的假设,使之更具体化,以便可以 精确地确定出错位置。精确地确定出错位置。 证明余下的假设证明余下的假设 27 调试原则调试原则 vv在调试方面,许多原则本质上是心理学在调试方面,许多原则本质上是心理学 方面的问题。调试由两部分组成,调试方面的问题。调试由两部分组成,调试 原则也分成两组。原则也分成两组。 vv确定错误的性质和位置的原则确定错误的性质和位置的原则 用头脑去分析思考与错误征兆有用头脑去分析思考与错误征兆有 关的信息。关的信息。 避开死胡同。避开死胡同。 28 只把调试工具当做辅助手段来使只把调试工具当做辅助手段来使 用。利用调试工具,可以帮助思用。利用调试工具,可以帮助思 考,但不能代替思考。考,但不能代替思考。 避免用试探法,最多只能把它当避免用试探法,最多只能把它当 做最后手段。做最后手段。 vv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论