- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
调试活动.ppt
(2)归纳法调试 归纳法是一种从特殊推断一般的逻辑方法。 归纳法调试的想法是:从一些线索(错误征兆)着手,通过分析它们之间的关系来找出错误。 (3) 演绎法排错 调试 软件调试是在进行了成功的测试之后才开始的工作。它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。 调试活动: ① 确定程序错误的性质和位置。 ② 修改程序,排除错误。 一.调试步骤 调试 (1)从错误现场入手,确定程序出错位置; (2)找错误的内在原因; (3)找到则排除错误,回归测试。 (4)否则,加测试用例证明猜测原因。 调试 二.调试方法 1. 强行排错 (1)将内存内容打印出来分析。 (2)程序特定部位设置打印语句。 各关键变量改变部位、重要分支部位等,监视重要变量变化。 调试 调试 #include stdio. h #include stdlib. h int A(), B(int), C(int, int); int main() { int v1, v2, v3; v1 = A(); v2 = B(v1); v3 = C(v1, v2); printf (The Result is %d. , v3); return(0) ; } (3)自动调试工具。 程序语言调试功能或专门交互式调试工具,不必修改程序。如设置断点,观察程序断点处状态,包括变量、表达式值等。 调试 2. 回溯法排错(小程序常用) 确定最先发现“症状”位置。人工沿程序控制流程向回追踪源代码,直到找到错误根源或确定错误产生范围。 3. 原因排除法 对分查找法、归纳法、演绎法 调试 (1)对分查找法 如已知每个变量在程序内若干关键点正确值,用赋值或输入语句在程序中点附近“注入”正确值,运行程序检查输出。 正确,错误原因在程序上半部分;反之,在程序后半部分。 反复使用,将程序出错范围缩小到容易诊断的程度。 调试 调试 调试 提出假设 证明假设 纠正错误 研究数据 间的关系 组织数据 收集有关 数据 不能 能 能 不能 how where when what No Yes 归纳法中组织数据的3W1H表 调试 (3) 演绎法排错 演绎法是从一般原理或前提出发,经过排除和精化 的过程来推导出结论的逻辑方法。 根据已有测试用例,设想所有可能出错原因; 逐个排除不正确的; 验证余下假设确是出错原因。 调试 列举 可能的 原因 排除 不适当 的原因 对保留的 假设继续 推断 有剩余 证明 假设 纠正 错误 能 没有剩余 收集更多的数据 不能 调试
文档评论(0)