ABA分析方法 — 软硬件开发必备的一种分析问题绝佳套路

ABA分析方法

“决定我们看到什么,并且看到什么方式的是我们的思维方式。” — 乔治·奥威尔
更多精彩内容,请关注公众号《机器灵魂注入师》。

什么是ABA分析方法?

可能你从很多地方听过这个名词,无论是在软件开发还是硬件领域(比较典型的领域:汽车、消费电子、医疗等行业),ABA验证都是一种快速分析故障的一个方法,第一次听到这个词,当时是不是一脸懵逼,本文就深度带你了解下ABA的分析方法。

简要概述就是:怀疑A模块导致系统故障,将B模块替换A模块,故障消失,再将A模块替换回来,故障复现,则说明A模块是导致系统故障的原因

细化ABA分析方法

针对不同的场景,ABA的策略有些许不同,下面逐一分析。值得说明的是,每一步都是下一步进行的基础,如果前一步的结果不符合预期,说明怀疑的方向出现问题,需要重新梳理问题的原因。

值得说明的是,一般ABA一般用在高概率复现故障的场景中,不然结论很难得出。同时ABA是用在现有的能力无法直接判断引发故障的根本原因时使用,对于能直接定位问题的,用ABA分析验证就是大费周章了。

1、怀疑系统中的模块A导致系统故障,且无模块A的情况下,系统仍能运行。

如下图所示,执行如下三个步骤:

  1. 从出现故障的系统中移除可疑模块(A),进行下一步。
  2. 检查故障是否消失,若消失,进行下一步。
  3. 将可疑模块A重新放入系统原位置,故障复现。

在这里插入图片描述

很多人可能疑惑为啥要增加第三步,这是为了保证你做第一步的时候,会不会误操作了别的模块,导致没有控制好变量。

这种思路一般应用在软件系统上,比如整个大系统最近有个异常(系统挂死、异常复位等),不知道其根本原因,可以从最近新加的模块入手,做这个ABA验证,看看是哪个模块导致的,缩小范围,继续分析。

2、怀疑系统中的模块A导致系统故障,需要用相同功能的模块B替换,系统才能正常工作。

如下图所示,执行如下三个步骤:

  1. 从出现故障的系统中移除可疑模块(A),进行下一步。
  2. 用验证过正常的B模块去替换A,检查故障是否消失,若消失,进行下一步。。
  3. 将可疑模块A替换模块B,即恢复原状,故障复现。

在这里插入图片描述

增加第三步,同样是为了保证你做第一步的时候,会不会误操作了别的模块,导致没有控制好变量。

这种思路在软硬件方面都有使用,比如

  • 硬件:怀疑某个硬件不良或者损坏。
  • 软件:某个版本的驱动是否存在问题等。

3、怀疑系统中的模块A导致系统故障,需要用相同功能的模块B替换,系统才能正常工作,同时,你还有另外一套运行良好的系统。

如下图所示,执行如下三个步骤:

  1. 从有故障的系统1中移除可疑模块(A),从无故障的系统2中,移除模块B,进行下一步。
  2. 模块A放入系统2,出现故障,模块B放入系统1,故障消失,进行下一步。。
  3. 模块A和B重新互换,即恢复原状,系统1故障复现,系统2故障消失。

在这里插入图片描述

这是第二种场景的升级,一般用在硬件排查上,极具说服力。

总结

其实,ABA分析问题,可能很多人在工作中都或多或少用过这个方法,只是没有这个概念,说明白了就是控制变量和对比验证,没什么高大上的东西。

这里之所以那么详细的去阐述,其实是想说的是,我们工作中要有意识地积累一些分析问题的套路,或者说是思维框架,这样再遇到类似场景时,可以快速地去提出有效的排查手段,不至于手忙脚乱

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2905706.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

单片机之串口通信

目录 串口介绍 通信的基本概念 并行通信和串行通信 同步通信和异步通信 串行异步通信方式 串行同步通信方式 通信协议 单片机常见通信接口 串行通信三种模式 串口参数 传输速度 ​串口的连接 电平标准 串行口的组成 串口数据缓冲寄存器 串行口控制寄存器 串口…

HarmonyOS入门--配置环境 + IDE汉化

文章目录 下载安装DevEco Studio配置环境先认识DevEco Studio界面工程目录工程级目录模块级目录 app.json5module.json5main_pages.json通知栏预览区 运行模拟器IED汉化 下载安装DevEco Studio 去官网下载DevEco Studio完了安装 配置环境 打开已安装的DevEco Studio快捷方式…

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查 关系数据库 关系对象数据库(ORM) 应用偏好数据库 分布式数据库 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。HarmonyOS关系型…

阿里云Salesforce CRM功能差异列表 - Winter‘ 24

阉割版的阿里云Salesforce由于技术和监管等因素与国际版的Salesforce差距很大! 一、Winter‘ 24版差异概况: 1.1. 主要版本: 阿里云上的 Salesforce 提供两个版本,用于生产用途的 CN 版本(CN Edition)和用…

NineData与StarRocks商业化运营公司镜舟科技完成产品兼容认证

近日,镜舟科技与NineData完成产品兼容测试。在经过联合测试后,镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容,整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统,打造独具竞争力的“数据护城河”…

乐维更改IP地址

1.1 系统IP调整 vim /etc/sysconfig/network-scripts/ifcfg-ens1921.2 Web相关服务IP变更 1.2.1 编辑/itops/nginx/html/lwjkapp/.env文件,更改ZABBIXSERVER、ZABBIXRPCURL、DB_HOST中的IP 1.2.2 进入/itops/nginx/html/lwjk_app/目录下,执行php bin/manager process-conso…

VMware虚拟机更换引导顺序

前言 我用wmware装了黑群晖测试,将img转成vmdisk的格式之后发现系统引导盘之后1G,有点太小了 我准备把wmware的黑群晖系统迁移到新添加的虚拟磁盘里 1.登录黑群晖的SSH 请先在黑群晖的控制面板中的终端机和SNMP里面启用SSH功能,才能使用ss…

原创度检测工具分享,文章质量检测方便又简单

文章检测有利于我们了解文章内容的质量高低,而在以往我们检测文章只能依靠手动去检测,这是相当消耗工作时间的,但是在原创度检测工具出来之后,很多人开始检测文章质量就改用原创度检测工具了,因为使用原创度检测工具是…

睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用

机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台,产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案,让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升…

亚马逊云科技如何看待云计算产业在硬件方面的创新趋势

“真正认真对待软件的人应该制造自己的硬件。” 这是被称为个人电脑之父的艾伦凯博士的一句广为流传的言论。 这种趋势正在云计算行业发生。 目前,全球主流云计算厂商均已加入自研芯片的行列。 如果追溯这一趋势的发展,亚马逊云技术无疑是领先者。 在r…

酒店能源监测管理系统:实现节能减排与提升管理效率的利器

随着全球能源问题的日益突出和可持续发展理念的深入人心,酒店业也在积极探索节能减排的途径。在这一背景下,酒店能源监测管理系统应运而生,成为了酒店行业提升管理效率、降低能源消耗的重要工具。本文将从多个角度介绍酒店能源监测管理系统的…

Nagios工具

一 nagios 相关概念 Nagios 是一款开源的免费网络监视工具,能有效监控 Windows、Linux 和 Unix 的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第 一时间通知网站运维人员,在状态恢复后…

2. Java基本语法

文章目录 2. Java基本语法2.1 关键字保留字2.1.1 关键字2.1.2 保留字2.1.3 标识符2.1.4 Java中的名称命名规范 2.2 变量2.2.1 分类2.2.2 整型变量2.2.3 浮点型2.2.4 字符型 char2.2.5 Unicode编码2.2.6 UTF-82.2.7 boolean类型 2.3 基本数据类型转换2.3.1 自动类型转换2.2.2 强…

ES学习日记(二)-------集群设置

上一节写了elasticsearch单节点安装和配置,现在说集群,简单地说就是在多台服务器上搭建单节点,在配置文件里面增加多个ip地址即可,过程同单节点部署,主要说集群配置 注意:不建议在之前单节点es上修改配置为集群,据说运行之后会生成很多文件,在单点基础上修改容易出现未知问题,…

SAP BTP云上一个JVM与DB Connection纠缠的案例

前言 最近在CF (Cloud Foundry) 云平台上遇到一个比较经典的案例。因为牵扯到JVM (app进程)与数据库连接两大块,稍有不慎,很容易引起不快。 在云环境下,有时候相互扯皮的事蛮多。如果是DB的问题,就会找DB…

03 | Swoole 源码分析之 Http Server 模块

首发原文链接:Swoole 源码分析之 Http Server 模块 大家好,我是码农先森。 Http 模块的注册初始化 这次我们分析的就是 Swoole 官网的这段代码,看似简单,实则不简单。 在 Swoole 源码文件 swoole_http_server.c 中有这样一个函数…

【Redis】数据类型、事务执行、内存淘汰策略

目录 数据类型 Redis事务执行步骤 步骤: redis内存淘汰策略 设置内存淘汰策略 1.设置配置文件 2.通过命令设置 数据类型 官网解释 Understand Redis data types | Redis 首先,Redis 的所有键都是字符串,常用的数据类型有 5 种:Strin…

docker-compose mysql

使用docker-compose 部署 MySQL(所有版本通用) 一、拉取MySQL镜像 我这里使用的是MySQL8.0.18,可以自行选择需要的版本。 docker pull mysql:8.0.18二、创建挂载目录 mkdir -p /data/mysql8/log mkdir -p /data/mysql8/data mkdir -p /dat…

enscan自动化主域名信息收集

enscan下载 Releases wgpsec/ENScan_GO (github.com) 能查的分类 实操: 首先打开linux 的虚拟机、 然后把下面这个粘贴到虚拟机中 解压后打开命令行 初始化 ./enscan-0.0.16-linux-amd64 -v 命令参数如下 oppo信息收集 运行下面代码时 先去配置文件把coo…

47 vue 常见的几种模型视图不同步的问题

前言 这里主要是来看一下 关于 vue 中的一些场景下面 可能会出现 模型和视图 不同步更新的情况 然后 这种情况主要是 vue 中的对象 属性没有响应式的 setter, getter 然后 我们这里就来看一下 大多数的情况下的一个场景, 和一些处理方式 当然 处理方式主要是基于 Vue.set, …