<读书笔记>软件调试之道 :问题的核心-修复后的反思
声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载!
--------------------------------------------------------------------------------------------------
有时尽管修复设计的是一个孤立的代码区,但你还是需要大局观,在修复缺陷之后花时间反思一下!
一旦确定了错误的来源,就可以采取措施避免它再发生!有些情况下,只不过是告诉你未来在在这一方面要更加小心!
在事后要反思并总结,尤其你发现了错误的模式只发生在特定的点或者特定的原因下时。极少数情况下,需要对自己敲响警钟!
1、问五个为什么,总体来说大部分情况下都能对你有帮助,比如:
- 软件崩溃了,出错了,为什么?
- 该代码不处理数据传输过程中的网络故障,为什么?
- 没有专门检测网络故障的单元测试,为什么?
- 最初的测试人员并没有意识到并创建一个这样的测试,为什么?
- 我们的单元测试没有考虑到软件故障,为什么?
可能很快就会得到,我们在原先的设计中没有考虑到软件故障这个问题症结,也可能有很多步骤。
2、根本原因分析
- 需求 需求是否完整、清晰并且未被误解?。
- 设计 在架构或者设计中是否存在疏漏,是我们没有考虑到还是没有正确的按照设计来做。
- 测试 对代码的测试是否达到了足够的覆盖率?或者测试本身就有问题呢?
- 构造 是开发人员写代码是犯了一个很简单的错误,或是误解了某些基础技术?
3、和同事交流问题注意事项
让同事知道他犯错了这件事情可能比较危险,一方面这个有价值的信息需要让同事知道以免其重蹈覆辙,另一方面,由于程序员不善交际沟通,可能由于口无遮拦把事情搞砸,所以你的善意可能得不到友好的回应,但是是需要做一些有益的事情。
- 首先最重要的,要有正确的出发点,不要只是为了得到自己的优越感。
- 在交流前,要三思并换位思考,如果自己犯错了该怎么办?
- 要清楚知道其性格特点!
- 避免妄作评判,不要说“你应该怎样”,而可以说“我们可以怎样”
- 要有建设性 要记住你也可能说错了!
4、关闭循环
如果你着手的项目有一套自己的规范:比如编码规范、测试规范、文档规范、报告/跟踪过程、设计指南、性能需求。当修复缺陷时,你是否需要更新最终用户文档作为修复记录?或为下一个版本更改日志?或者把它交给QA部门?该工作是否需要对特定客户或者项目进行跟踪(涉及到返修甚至召回)?
<读书笔记>软件调试之道 :问题的核心-修复后的反思的更多相关文章
- <读书笔记>软件调试之道 :从大局看调试-理想的调试环境
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- <读书笔记>软件调试之道 :从大局看调试-零容忍策略
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- <读书笔记>软件调试之道 :从大局看调试-发现代码存在问题
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- <读书笔记>软件调试之道 :问题的核心-如何修复缺陷
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! 修复缺陷 对于一个好的修复来说,不仅仅是让软件运行正确,还需要为将来奠定基础.一 ...
- <读书笔记>软件调试之道 :问题的核心-诊断
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 不要急于动手! 尽管可以利用各种工具和技术以及软件自身查找缺陷,但是你最重要的财富是你的智 ...
- <读书笔记>软件调试之道 :问题的核心-重现问题
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 ...
- <读书笔记>软件调试之道 :实证方法
有效调试不仅仅是排除缺陷,其包含如下几个步骤 弄明白软件为何运行错误 修复这个问题 避免破坏其它部分 保持或者提高代码的总体质量 确保同样的问题不在其它地方发生,也不会再次发生 构建实验.观察结果 依 ...
- 读书笔记|Windows 调试原理学习|持续更新
关于调试方面的学习笔记,主要来源于<软件调试>的读书笔记和梦织未来论坛的视频教程 1.调试器使用一个死循环监听调试信息. DebugActiveProcess(PID);while(TRU ...
- <读书笔记> 代码整洁之道
概述 1.本文档的内容主要来源于书籍<代码整洁之道>作者Robert C.Martin,属于读书笔记. 2.软件质量,不仅依赖于架构和项目管理,而且与代码质量紧密相关,本书提出一 ...
随机推荐
- 表单和 HTML 辅助方法– ASP.NET MVC 4 系列
这里有一个疑问,诸如在文本编辑器中输入 HTML 元素如此简单的任务,也需要任何帮助吗?的确,输入标签名称是很容易的事,但是确保 HTML 页面链接中的 URL 指向正确的位置.表单元素 ...
- linux下vi命令修改文件及保存的使用方法
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi n filename :打开文件,并将光标置于第n行首 vi filename :打开文件,并将光标置于一行首 v ...
- ES(二):Kibana
Kibana是一个基于浏览器页面的Elasticsearch前端展示工具.Kibana全部使用HTML语言和Javascript编写的,查询语法是基于Lucene的查询语法.允许布尔运算符.通配符和字 ...
- ecmobile中IOS版本中界面文字不显示的解决
查找以下方法. - (BOOL)setCurrentLanguageName:(NSString *)name{ BeeLanguage * lang = [self findLangu ...
- C#中Validating和Validated事件
http://blog.sina.com.cn/s/blog_6116673a0100fpeo.html 待解读
- git reset revert 回退回滚取消提交返回上一版本
git reset revert 回退回滚取消提交返回上一版本 总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你 ...
- MVC4 +EasyUI 使用TreeGrid 方法
用easyui已经有2年了,换了新环境,要求用mvc开发,所以想把原来的项目直接用mvc重构. 在使用TreeGird的时候出现了问题,发现在转换为treegrid的json 很费劲,一直都是用的ea ...
- android中Json的一些应用
JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...
- Shopping(山东省第一届ACM省赛)
Shopping Time Limit: 1000MS Memory limit: 65536K 题目描述 Saya and Kudo go shopping together.You can ass ...
- 记录一下emacs在window下的配置过程
今天重装WIN7 64位新系统,装完发现emacs无法加载以前的插件了.网上搜一下才记起来,emacs默认读取的配置文件在c盘,在这个原始配置文件中还需要添加一些路径转换的语句才能转到用户自己的配置文 ...