- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程B班第五周第五组研讨
用来缩小错误的范围 在程序中点附近“注入”变量的正确值,运行程序并检查所得到的输出。如果输出结果是正确的,则错误原因在程序前半部分,反之在后半部分 对于程序中有故障的那部分再重复使用这个方法,直到把故障范围缩小到容易诊断的程度为止 原因排除法包括:对分查找法,归纳法,演绎法 使用测试用例。供调试的测试用例,目的是提供有用的信息,定位某个怀疑的错误 当发现缺陷症状后,会编写供调试的测试用例,发现错误位置 不是一种独立方法,常结合归纳法或演绎法一起使用 1.确定错误的性质和位置的原则 2.修改错误的原则 谢谢 魏莹莹 对于任何一个天才都不敢说自己编的程序是完全正确的。因此几乎每一个稍微复杂点的程序都必须经过反复的调试,修改,最终才完成。所以说程序的调试是编程中一项重要技术。 软件调试,是在测试发现错误之后诊断并排除错误的过程 调试的主要任务有两项: 一是确定程序中错误的确切性质和位置 二是对程序进行修改,排除错误。 调试,也称为纠错,作为成功测试的后果出现。也就是说,调试是在测试发现错误之后排除错误的过程。 简单的说,调试的目的是确定错误的原因和位置,并改正错误。 调试是程序员自己进行的技巧性很强的工作,要确定发生错误的内在原因和位置不是一件容易的事,它占整个调试工作量的90%左右。调试工作需要繁重的脑力劳动和丰富的经验。 与测试比较,调试技术缺乏系统的理论研究,因此介绍的调试方法多是实践中的经验积累。 调试工作是一个具有很强技巧性的工作。 软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的联系。如果要找出真正的原因,排除潜在的错误,不是一件易事。 因此可以说调试是涌过现象,找出原因的一个思维分析的过程。 (1)从错误的外部表现形式入手,确定程序中出错位置; (2)研究有关部分的程序,找出错误的内在原因; (3)修改和设计代码,以排除这个错误。 (4)重复进行暴露了这个错误的原始测试或某些有关测试。 (1)现象和原因所处的位置可能相距甚远。 (2)当其他错误得到纠正时,这一错误所表现出的现象可能会暂时消失,但并未实际排除。 (3)现象实际上是由一些非错误原因(例如,舍入不精确)引起的。 (4)现象可能是由于一些不容易发现的认为错误引起的。 (5)错误是由于时序问题引起的,与处理过程关。 (6)现象是由于难于精确再现的输入状态(例如,实时应用中输入顺序不确定)引起。 (7)现象可能是周期出现的。在硬软件结合的嵌入式系统中常常遇到。 个人自尊从中阻挠 热情耗尽 可能迷失方向 必须自力更生 动态调试和静态调试 所谓静态调试就是在程序编写完以后,由人工“代替”“模拟”计算机,对程序进行仔细检查,主要检查语法规则和逻辑结构的正确性。 通过静态调试,可以大大缩短上机调试时间,提高上机效率。 动态调试就是实际上机调试,它贯穿在编译,连接,运行的整个过程。根据当时错误信息进行调试,这是程序调试中最常用的方法,也是最初步的动态调试。 在此基础,用分段隔离,设置断点,跟踪打印进行程序的调试。 但是应用任一种方法之前,都应当对错误的征兆进行全面彻底的分析,得出出错位置及错误性质的推测,再使用一种适当的调试方法来检验推测的正确性。 强行排错 这种调试方法效率较低。不需要过多思考。例如 ——通过内存全部打印来调试,在这大量的数 据中寻找出错的位置 ——在程序特定部位位置打印语句,把打印语句插在出错的源程序各个关键变量改变部位,重要分支部位等,监视重要变量的变化。 ——自动调试工具。利用某些程序语言调试功能或专门的交互式调试工具,分析程序动态过程,而不必修改程序。 忽略了思考的过程 调试程序和侦破谋杀案有相似处需要仔细分析线索,而不是使用蛮力的方法。 适用:1.其他方法都失败了 2.或作为其他方法的补充而不是替代 这是在小程序中常用的一种有效调试方法。 发现错误,先分析错误征兆,确定最先发现症状的位置,然后,人工沿程序的控制流程,向回追踪源程序代码,直到找到错误根源或确定错误产生的范围。 例如,程序中发现错误处是某个打印语句。通过输出值可推断程序在这一点上变量的值。再从这一点出发,回溯程序的执行过程,反复考虑“如果程序在这一点上的状态(变量的值)是这样,那么程序在上一点的状态一定是这样”直到找到错误的位置。 归纳法是一种从特殊推断一般的系统化思考方法。 归纳法调试的基本思想是:从一些线索(错误征兆)着手,通过分析它们的关系来找出错误 ——收集有关数据 列出所有已知测试用例和程序执行结果。看哪些输入数据的运行结果是正确的,哪些输入数据的运行结果有误。 ——组织数据 由于是从特殊到一半的推断过程,所以
您可能关注的文档
最近下载
- VEICHI伟创 AC310系列变频调速器使用手册2021.06.pdf VIP
- 隧道施工课件.ppt VIP
- 第五届国家级新区经开区高新区班组长管理技能大赛备赛试题库-下(判断题汇总).docx VIP
- DB 6108T 53-2023 煤基固废调理剂修复沙化土地技术规范.docx VIP
- DB6108_T 52-2023 煤基固废调理剂修复盐碱地技术规范.docx VIP
- 行政人事部年终工作总结.pdf VIP
- 行政人事部年终工作总结.pptx VIP
- 第五届国家级新区经开区高新区班组长管理技能大赛备赛试题库-中(多选题汇总).docx VIP
- 化工厂物资明细表.xls VIP
- 第五届国家级新区经开区高新区班组长管理技能大赛试题库(浓缩500题).docx VIP
文档评论(0)