ImageVerifierCode 换一换
格式:PPT , 页数:15 ,大小:212.33KB ,
资源ID:10864487      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10864487.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件测试的艺术(第3版)第08章 调试.ppt)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

软件测试的艺术(第3版)第08章 调试.ppt

1、8.1 蛮力法调试 8.2 归纳法调试 8.3 演绎法调试 8.4 回溯法调试 8.5 测试法调试 8.6 调试的原则 8.7 错误分析,第8章 调试,第8章 调试,执行一次成功的测试,即发现错误之后要进行调试工作 调试的步骤 第一步:定位错误,确定程序中错误的准确性质和位置,占调试的绝大部分工作量(大概95%) 第二步:修改错误 调试的障碍 个人自尊心:调试说明程序员会在设计或编码时犯错误 热情耗尽:调试耗费脑力,承受较大压力 可能会迷失方向:错误实际上可能出现在程序的任何部位 必须自力更生:关于调试过程的研究、资料和正式的指南都比较少,8.1 蛮力法调试,蛮力调试法的特点 使用比较普遍,不

2、需要过多思考 效率低下,成功率低 何时适宜使用? 其他方法都失败 作为思考过程的补充,但不能替代思考过程 蛮力调试法的三种类型 利用内存信息输出来调试 根据一般的“在程序中插入打印语句”建议来调试 使用自动化的调试工具进行调试,8.1 蛮力法调试,使用内存信息输出调试 是最缺乏效率的蛮力调试方法 难以在内存区域与源程序中的变量之间建立对应关系 内存信息输出会产生非常庞大的数据,大多是无关的 内存信息输出产生的是程序的静态快照,而发现错误还需要研究程序的动态状态(在a状态向b状态转换时如果发现错误就意味着错误已经定位了) 通过分析输出的内存信息来发现问题的方法并不太多,8.1 蛮力法调试,插入输

3、出变量值的打印语句 可以显示程序的动态状态,让检查的信息可以相对容易地与源程序联系起来 缺点 主要是碰运气,而不是鼓励我们去思考程序中的问题 所产生的需要分析的数据量非常庞大 要求我们修改源代码,这些修改可能会掩盖症状或引入新的错误 可能对小型程序有效,但如果应用到大型程序,成本就相当高,对某些类型的程序,甚至无法使用这种方法,8.1 蛮力法调试,自动化调试工具 使用编程语言的调试功能,或使用特殊的交互式调试工具来分析程序的动态状态 使用的语言功能:产生可打印的语句执行轨迹的机制,子程序调用以及/或者对特定变量的修改 调试工具的设置断点功能:程序执行到某条特定语句或改动了某个特定变量的值时暂停

4、执行,然后程序员就可以检查程序的当前状态 缺点 仍然是碰运气为主 常会生成数量过于庞大的无关数据,8.2 归纳法调试,从线索(错误的症状)出发,寻找线索之间的联系 使用归纳法的调试过程,8.2 归纳法调试 步骤,确定相关数据 列举出所有知道的程序执行的正确和不正确之处,这些不正确之处即是症状 组织数据 组织相关数据,以便观察线索间的模式,找到矛盾、事件。 用“是什么”、“在何处”、“何时”、“多大程度”对症状进行描述 作出假设 研究线索之间的联系,利用线索结构里可能的模式作出一个或多个关于错误原因的假设,选择最有可能的假设 证明假设 将假设与其最初的线索或数据想比较,证明假设的合理性,确定这些

5、假设完全可以解释这些线索的存在 例子 page88,8.3 演绎法调试,从普遍的理论和前提出发,使用排除和精炼的过程,达到一个结论 使用演绎法的调试过程,8.3 演绎法调试 步骤,列出所有可能的原因或假设 建立一份所有想像得到的错误原因的清单 利用数据排除可能的原因 详细检查所有数据,尤其是寻找存在矛盾的地方,然后尽量排除所有可能的原因,仅留一条 如果所有的原因都被排除,在增加额外的测试用例,得到更多的数据来设计新的推测 提炼剩下的假设 用现有的线索来提炼这个推测,以具体到能够指出错误 证明剩下的假设,8.4 回溯法调试,回溯法 沿着程序的逻辑结构回溯不正确的结果,直到找到程序逻辑出错的位置。

6、 从程序产生不正确结果的地方开始,从该处观察到的结果推断出程序变量应该是什么值,并从这个位置开始逆向执行程序,重复使用“如果程序在此处的状态是这样的,那么程序在上面位置的状态就必然是那样的”过程,就能很快定位出错误。 回溯法的适用情况 小型程序,8.5 测试法调试,测试法 使用测试用例进行调试,当发现了某个被怀疑的错误的症状之后,我们需要编写与原先有所变化的测试用例,尽量确定错误的位置。 两种类型的测试用例 供测试的测试用例:目的是暴露出以前尚未发现的错误,每个测试用例尽量涵盖较多的条件 共调试的测试用例:目的是提供有用的信息,供定位某个被怀疑的错误使用,每个测试用例仅需要覆盖一个或几个条件。

7、 测试法调试的适用情况 不是完全独立的方法,通常与归纳法一起使用,以获得进行假设和/或证明假设所需的信息;也可以与演绎法一起使用,以排除某些原因,提炼剩下的假设,并/或证明假设。,8.6 调试的原则,8.6.1 定位错误的原则 动脑筋 对错误症状的有关信息动脑筋进行分析 如果遇到了僵局,就留到稍后解决 发挥潜意识的作用 如果遇到了困境,就把问题描述给其他人听 描述过程可能会帮助我们发现新的东西 仅将暴力调试作为辅助手段 无计划、盲目、成功机会小,而且会将新错误引入程序,8.6 调试的原则,8.6.2修改错误的技术 存在一个缺陷的地方,很有可能还存在其他缺陷 应纠正错误本身,而不仅是其症状 正确

8、纠正错误的可能性并非100 修改错误的代码本身也可能是错误的,需要更严格测试 正确修改错误的可能性随着程序规模的增加而降低 应意识到改正错误会引入新错误的可能性 不仅对原先的错误情景进行测试,还应该执行回归测试,以判定是否引入了新错误 修改错误的过程有些情况下也是临时回到设计阶段的过程 应修改源代码,而不是目标代码 有可能是在使用试验法调试 目标代码与源代码不同步,重新编译可能错误再次出现,8.7 错误分析,调试的价值 消灭程序中的错误提高软件质量 通过对错误的分析,让我们了解软件错误的一些本质,可以为改进将来的设计、编码和测试过程提供有价值的反馈信息 错误分析 错误出现在什么地方? 谁制造了这个错误? 如何避免该错误的出现? 为什么错误没有早些被发现? 该如何更早地发现错误?,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报