声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载!

-----------------------------------------------------------------------------------------------------

自动化测试

1.有效的自动化测试

  • 明确说明测试结果是否通过
  • 不需要安装、测试后也能够撤销对环境所做的任何修改
  • 单击运行所有的测试
  • 全面覆盖,做到足够解决完全覆盖是可能的

2. 自动化测试可以作为调试的辅助

  • 经过自动化测试的代码往往只有很少缺陷,容易修复,并且让你自信发布的软件可以正确运行。
  • 可以防止引入回归

3.模拟测试、桩测试以及其他的代替测试技术

  • 桩测试是被动的,模拟测试是主动的。
  • 试图可靠的重现缺陷时,代替测试时非常有用的

版本管理系统

源码控制系统是除了编译器外你能使用的最重要工具了!

  • 稳定性

    通过创建分支,保持主干版本的稳定性

  • 可维护性

    创建分支单独在主干发布版本上进行维护和修复。

  • 控制分支

    分支往往消耗大量的时间、经理,因此要加以控制和合理利用。

静态分析

事实证明,很多缺陷可以仅仅通过静态检查源码就可以发现,静态分析可以集成到开发流程中,在代码未运行前就发现问题。

  • 利用好编译器

    现代编译器具备一系列的警告信息,比如keil编译时就会提示很多警告信息,要把警告当错误处理,消除警告。 利用在C程序中,可以利用lint发现缺陷

  • 把静态分析工具和开发工具集成

     lint可以集成到keil中,有专用文档介绍集成方法。

<读书笔记>软件调试之道 :从大局看调试-理想的调试环境的更多相关文章

  1. <读书笔记>软件调试之道 :从大局看调试-零容忍策略

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  2. <读书笔记>软件调试之道 :从大局看调试-发现代码存在问题

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  3. <读书笔记>软件调试之道 :问题的核心-修复后的反思

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  4. <读书笔记>软件调试之道 :问题的核心-如何修复缺陷

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! 修复缺陷 对于一个好的修复来说,不仅仅是让软件运行正确,还需要为将来奠定基础.一 ...

  5. <读书笔记>软件调试之道 :问题的核心-诊断

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 不要急于动手! 尽管可以利用各种工具和技术以及软件自身查找缺陷,但是你最重要的财富是你的智 ...

  6. <读书笔记>软件调试之道 :问题的核心-重现问题

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 ...

  7. <读书笔记> 代码整洁之道

    概述      1.本文档的内容主要来源于书籍<代码整洁之道>作者Robert C.Martin,属于读书笔记. 2.软件质量,不仅依赖于架构和项目管理,而且与代码质量紧密相关,本书提出一 ...

  8. <读书笔记>软件调试之道 :实证方法

    有效调试不仅仅是排除缺陷,其包含如下几个步骤 弄明白软件为何运行错误 修复这个问题 避免破坏其它部分 保持或者提高代码的总体质量 确保同样的问题不在其它地方发生,也不会再次发生 构建实验.观察结果 依 ...

  9. 【读书笔记】UEFI原理与编程(1)概述及开发环境的搭建

    一.概述: 0.为什么会有这篇文章 说实在的,在2016初的时候,我就萌生了写一个操作系统的念头,但是这对于我一个菜鸟来说,犹如登天. 既然想了就去写,即使最后做不完,也不后悔. 抱着这样的念头,我开 ...

随机推荐

  1. GridView_RowCommand事件中取得GridViewRow

    GridViewRow row = ((Control)e.CommandSource).BindingContainer as GridViewRow;

  2. Linux查看redis进程

    命令: ps ef|grep redis 返回上一级cd ..

  3. Mybatis Generator自动生成的mapper只有insert方法

    – Mybatis Generator 生成的mapper只有insert方法 – 首先检查generatorConfig.xml中table项中的属性 enableSelectByPrimaryKe ...

  4. Mac下Virtual Box Host-Only网络配置

    Mac下的虚拟机其实有很多,Parallels.VMware Fusion.Virtual Box都不错,Parallels是目前试过感觉最好的,Fusion装64位系统驱动支持似乎不完善,而且混合模 ...

  5. 使用ionic framework创建一个简单的APP

    ionic是一个以cordova为基础的html5前端框架,功能强大,能够快速做出与原生开发相似的应用. 一,安装和配置 1,安装(前提:cordova环境配置完成) npm install -g i ...

  6. DHTMLX-Windows

    DHTMLX-Windows dhtmlxWindows窗口,允许用户使用几个窗户并允许windows重叠,并提供对用户执行标准操作,比如移动/调整窗口大小,发送窗口的前景/背景,最小化/最大化一个窗 ...

  7. centos6.5 安装mysql 的过程

    Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本, 所以折腾了几个星期,终于在CentOS 装好了mysql5.6,装完之后,对整个linux ...

  8. sql优化方法

    1. SELECT子句中避免使用 “*” 当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用‘*’是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析 ...

  9. jQuery 事件探秘

    jQuery 事件中为 dom 元素动态绑定事件的方式: 绑定事件到元素上 $(selector).bind('eventName', function(){}); 一次绑定多个事件时,事件名用单个空 ...

  10. 【HOW】如何通过URL给Reporting Services报表传递参数

    [本地模式Reporting Services] 参见官方文档:http://msdn.microsoft.com/en-us/library/ms154042.aspx 示例:http://serv ...