• 第三周读书笔记


    这周我继续阅读了《调试九法》的后面章节,我个人认为调试在制造一个可以投入使用,并且具有吸引力的软件(或者说是任意一种产品)占据着十分重要的作用。

    在《制造失败》这一章节中,让我印象最深刻的是下面这一段对话。

    如果Charlie现在正在我的公司工作,你问他:“当你发现一个故障时该怎么办?” 他会回答说:“试着让他再次发生”

    让错误重演在调试中是十分重要的,当你能够让错误重演时,实际上,你已经掌握了攻克他的必要条件。再不知道错误时,你甚至不能判断问题是否已经修复,这其实会产生不可预见的隐患。

                书中也同样的提到了,让失败重现的三个原因。

                可以观察他;

                可以专心查找原因;

                可以判断是否已修复问题;

          然而我认为,书中有一个地方说的并不能够完全依靠,书中说,当你执行X操作时,失败率为100%,修复问题后,再执行X操作,失败率为0,则说明BUG已完全修复。但是在我自己的实际操作中,当你执行X操作不再失败后,实际有可能只是做出了让这个操作不再出问题的操作,他很有可能引起新的问题,具体的判断解决方案相信书中后续部分会提到。

    而为了能够制造失败,详细记录测试步骤也是十分重要的,这是你制造失败的重要步骤,然而如果这个错误存在巨大的破坏性或是高额的代价,就需要改变一些地方,但应尽量少改动原来的系统和顺序。

    在制造失败时,应试着从一个已知的状态开始,因为计算机有可能处在一个复杂的状态下,而BUG有可能仅会在机器的某个复杂状态下出现。所以应试着从一个已知的状态开始,如刚重启的计算机。

    引发失败,自动化的调试过程其实是很有启发的,由于重复引发失败时,很多步骤都是重复执行的,所以将这些步骤自动化实际基于了很大的帮助。

    引发失败和模拟失败的区别,这一段实际我看的不是特别懂,核心思想应该是告诫调试员,不要试图的猜测产生失败的机理,在你猜测失败时,模拟很可能会失败,并且产生新的BUG,这在调试中是非常让人痛苦并且延缓效率的。

    在上面这些步骤时,间歇性的BUG是很难处理的,在自己的调试过程中,如果一个BUG重复的出现,其实他并不能造成太长时间的困扰(很有可能只是一个疏忽造成的,并且很好调试消除),但间歇性的BUG,导致很多调试的规则很难实现,关键的问题正如书中所说,间歇性的BUG其实是因为失败原因很难被直接找出。

     

  • 相关阅读:
    PHP 开发 APP 接口--读取缓存方式
    ABAP内表数据和JSON格式互转
    ABAP实现屏幕自己刷新和跳转功能
    让ABAP开发者愈加轻松的若干快捷键
    ABAP游标的使用
    根据工号获取姓名
    SAP(ABAP) 显示等待图标的FM:SAPGUI_PROGRESS_INDICATOR-SAP进度条
    SAP GUI的配置文件
    条形码的编码规则
    JMeter 压测Server Agent无法监控资源问题,PerfMon Metrics Collector报Waiting for sample,Error loading results file
  • 原文地址:https://www.cnblogs.com/lanziwen/p/8658127.html
Copyright © 2020-2023  润新知