zoukankan      html  css  js  c++  java
  • 软硬件调试九法:第二条规则,制造失败

    1、重现失败

       目的是为了观察它,找到原因,并检查修复是否成功。方法是进行内部预演、观察如何出错,如果出错会导致重大损失时则必须改变一些地方,但是尽量少改动原来的系统和顺序。

    2、从头开始

      需要知道bug发生之前的细节,试着从已知的状态开始,仔细观察到bug出现时执行的步骤和状态。

    3、引发失败

      如果错误偶尔发生,需要重复很多次才能出现,则需要借助自动测试工具,提高其bug出现的几率。比如房屋下雨漏水,无需等待下次下雨再检查漏水的地方,仅需使用水喷头模拟降雨,在晴天就可以进行修复。比如牙医检查对冷过敏的牙齿,采用向牙齿逐个喷冷空气,就可以查找具体哪个牙齿对冷过敏,然后针对性治疗。

    4、不要模拟失败

      如果改变测试条件,也许不再出错,也许更糟,出现其它错误,从而分散查找问题的注意力。不要用看似相同的环境代替病希望看到相同错误。比如不要因为假设芯片的问题由于过热产生,就用热风枪给芯片加热以模拟错误,这样可能把芯片烧坏。

    5、检查不受控制的条件

      有些bug偶尔发生,很难重现,就要检查无法控制的因素,比如初始条件、输入数据、时序、外部过程、电子噪声、温度、震动、以及测试这是否清醒等因素。 软件中要检查未初始化的变量,随机输入的数据、时序误差、多线程同步等。 硬件要查找噪声、震动、温度、时序和器件性能误差(型号不同、厂家不同)。

          重现失败的目的有3个:观察错误、查找线索、确认是否修复。

          要记住问题没有自己的思维,失败肯定有原因,你一定能够找到它。

    6、记录每件事情,并找到间歇性bug的特征

       当捕获到足够多的信息时,就可以确定哪些因素总与bug有关,查找问题根源时,这些因素就是重点关注的。

    7、不要过于相信统计数据

      当bug随机发生时,修复前10次发生一次,修复后如果测试30次没有发生,也不能说明已修复,也许修复后变成了40次发生一次,你只是提前终止了测试。因此最好的办法找到一个与总与失败发生的时间序列,修复后,用该序列进行验证。

    8、认识到“那”是可能发生的

      经常遇到测试人员报告一个问题,工程师认为那不可能发生。但是失败的确发生了, 此时,就要忘掉假设,让它在工程师面前再次发生,或者尝试新的测试策略,指明问题的根源。

  • 相关阅读:
    maven如果正常配置不成功,就按照我的就可以配置成功了
    springmvc中model可以封装的数据类型
    sql中limit使用方法
    bootStrap的使用
    idea中 maven打包时时报错User setting file does not exist C:Userslenevo.m2setting.xml,
    解决方法:CentOS7用yum安装软件显示错误:cannot find a valid baseurl for repo: base/7/x86_64
    centOS 7下无法启动网络(service network start)错误解决办法
    Invalid bound statement (not found)
    AJAX+springmvc遇到的问题
    llegalStateException: getWriter() has already been called for this response
  • 原文地址:https://www.cnblogs.com/shuolang/p/5296333.html
Copyright © 2011-2022 走看看