上一页 1 ··· 10 11 12 13 14
摘要: 在诊断期间有无数的方法会误导人,因此这里我们来一起看看所谓的陷阱。你做的修改是正确的吗?如果你做的修改似乎没有任何效果,那么你并没有改到点子上,因此要在潜意识里时刻提高警惕。验证假设:了解你正在做什么样的假设,对它们进行严格的检验。多重原因:面临多种原因的最常见信号是一种你处于模糊状态的感觉——发生了一些似乎没有明显解释的怪事情,最富有成效的解决多原因缺陷的办法是对问题进行隔离,并找到一个方法来重现缺陷,重现的缺陷产生的原因只依赖于多个原因中的一个,而不依赖于其他原因。另一个方法是开始先找寻同一区域内其他较明显的缺陷,处理这些缺陷有时可以扫清障碍,让你理解得更透彻,使初始问题更加凸显。流沙:模 阅读全文
posted @ 2013-02-21 16:51 Ribbon 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 诊断问题时程序调试的关键,这个阶段,我们可以开始解决缺陷问题了,你可以了解看到的运行结果背后的根本原因。真正有效的缺陷修复要求思维方式既开放又有条不紊,解决方法既创新又注重全面综合,这和软件开发的其他很多方面是一样的。一种调试方法:提出一个可能提供解释的假设,然后再构建实验去证明你的假设,如下:1. 按照你对软件运行情况的理解,提出一个可以导致这种运行状况的假设2. 设计一个实验,证明你的假设正确与否3. 如果你设计的实验不能证明你的假设,那么重新设计一个实验,然后再次进行实验4. 如果实验支持你的假设,那么继续进行实验,直到能证明或伪证你的假设这种方法十分有效,但却十分抽象,怎么才能把它转化 阅读全文
posted @ 2013-02-21 16:18 Ribbon 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 不管是什么样的重现问题的方法,只要有,就比没有强。但是如何让重现问题既可靠又方便呢?最小化反馈周期:和软件开发的其他众多领域一样,问题重现也是要使反馈周期最小,所经过的周期越短,反馈就越及时,其相关性就越高。因此,最先要关注的就是找出问题重现中哪些方面是不需要的,将它们剔除掉,称为将问题重现最小化。那么,哪些元素可以被剔除呢?往往这要靠直觉。你了解软件,并且知道哪些模块可能被一些特定输入所影响,如果直觉不对,那么一些非直接的方法可能会帮助到你。改进问题重现不是一蹴而就的事,而是在整个诊断过程中要牢记在心的东西。将不确定的缺陷变为确定的:要做到这一点,需要明白不确定性从何来?1. 开始于不可预知 阅读全文
posted @ 2013-02-21 12:30 Ribbon 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 运用实证(实证依赖的是观察和经验,而不是理论和纯逻辑推理)方法进行调试可以充分利用软件的独特能力来告诉你软件运行的状态,而发挥这种能力的关键是找到能够重现问题的方法。为什么重现问题如此重要?不能重现问题,就几乎不可能取得进展,因为实证过程依赖于我们观察存在缺陷的软件执行的能力。如何重现?要做的第一件事很简单,就是按照缺陷报告描述(或提示)的步骤做,要做好问题重现就要抓好控制,而需要控制的因素如下:1. 软件本身 如果缺陷存在于最近修改的地方,那么你应该首先保证你调试运行的软件和缺陷被提交时使用的软件是同一个版本2. 软件的运行环境 如果要与外部系统进行交互,那么可能需要确保你使用的是相同的.. 阅读全文
posted @ 2013-02-21 10:47 Ribbon 阅读(970) 评论(0) 推荐(0) 编辑
摘要: 所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。软件应当是可预测且稳定的,不会给用户带来意外惊奇。软件测试的重要原则:1. 测试用例中一个必需部分是对预期输出或结果进行定义 一个测试用例必需包括两部分:对程序的输入数据的描述,对程序在上述输入数据下的正确输出结果的精确描述2. 程序员应当避免测试自己编写的程序 让其他人来测试程序会更加有效,也会更容易测试成功,但调试由程序的编写人员来完成会有效得多3. 编写软件的组织不应当测试自己编写的软件 由客观、独立的第三方来测试会比项目或编程组织测试有效得多4. 应当彻底检查每个测试的执... 阅读全文
posted @ 2013-02-20 14:38 Ribbon 阅读(1661) 评论(0) 推荐(0) 编辑
摘要: 什么是调试?调试的目标是什么?调试就是查明问题的根本原因,这是一切事情的基础!看到过很多文章,设计,代码,需求,方法……可是很少看到有人写调试,是因为它太容易,所以不屑一提,还是因为它太细节,不易描述?对于高手来说,调试也许轻而易举,哪怕不知道如何描述调试,至少知道如何调试,可是,很多初学者并没有调试的概念,也不知道如何调试。问自己这么一个问题:当程序遇到问题的时候,你是用心的在分析原因,还是仅仅凭着直觉进行修改?调试,其实不容易,它比其他任何过程都需要动脑,它不发生在调试器或者代码中,而是形成于大脑中,找到并理解问题的根源,才能进行其他的工作。最近看到这本Paul Butcher的《软件调试 阅读全文
posted @ 2013-02-20 00:29 Ribbon 阅读(572) 评论(1) 推荐(1) 编辑
上一页 1 ··· 10 11 12 13 14