深度故障复盘的几点思考

深度故障复盘是今年项目质量改进的一个重点举措。对一个故障的深度故障复盘主要基于以下几个方面:

1、故障的现象和原因

2、影响范围

3、研发泄露原因

4、测试泄露原因

5、故障解决说明

基于上述的分析,分析出故障的属性分类(基本功能、性能、易用性),故障引入来源(代码重构、解决故障、新增需求、历史遗留),故障引入环节(需求澄清、需求研讨、开发实现),故障控制环节(测试方案设计、测试用例开发、代码走查、故事验收、CI自动化防护、系统测试)以及是否能自动化,最终输出满足SMART原则的改进措施。

通过故障引入环节的分析,可以挖掘出团队在需求管理环节出现的一些问题,比如:场景分析不全、性能效率分析不足、波及影响分析不足、兼容性分析不足等。这就是一个对团队需求环节的一个反馈。通过故障控制环节的分析,可以挖掘出团队在测试用例开发、代码走查、故事验收等质量保证体系环节中的一些问题。从本月做的13个深度故障复盘的结果来看,就明显的反映出团队代码走查活动一些明显的问题。

举例说明一下:

1、QA参与了团队的代码走查,但参与过程中很多问题并未及时感知到。

比如:代码中新增加了一个常量的定义。这些常量往往意味着一些边界,需要在验证过程中增加一些边界的测试。而如何做边界测试,对于团队也是一个权衡。我们可以在UT层去做边界测试的自动化验证,也可以在FT层或者ST层去做自动化或手工的测试验证。采取哪一种方式,在于团队对于测试性价比的考虑。比如:对于一个配置项的合法性校验,可能在UT层做,相较于其他层做就能达到事半功倍的效果。所以,团队的测试是要有分层的自动化体系,UT或者FT、ST根据投入产出比相互补位,来确定团队的分层测试策略。通过这种方式制定的团队分层测试策略才具备更大的落地的可能性。

比如:QA需要有敏锐的感知能力,嗅到代码的改动对一些既有的功能场景的影响。之前团队在新增需求开发的用例中,已经做了一个改进,要求开发新增波及功能点的测试用例。但当一个系统比较大的时候,一个功能往往很大,如果不能精确的说明到某一个场景点,只是对一个功能点做一个基本功能的回归测试,极有可能无法覆盖到代码真正波及影响到的那个点;而如果要对整个功能做非常全的覆盖,除了时间成本的权衡,还有可能因为已有用例不全而导致波及测试的遗漏。通过故障复盘,给予团队QA一个反馈,触发大家去思考如何通过参与代码走查这项活动,更有效的去对代码的波及功能做准确的覆盖验证,提升代码的质量,埋下种子,静待花开。

2、团队做了代码走查,但很多问题没有及时走查出来。

比如:代码重构前,代码中有一个空指针的保护,修改后的代码去掉了这个空指针的保护。团队走查时并未发现,导致泄露了一个空指针故障给外部,给产品各个环节都带来了不少工作量,这个案例反馈出两个问题:

(1)、团队在做代码走查的时候,重点的关注点是在修改后的代码,容易忽略修改前的代码,这个信号提醒团队,走查代码时,需要两边同时做关注。代码走查,很多团队都实践过,有的团队从中受益良多,有的团队却认为似乎也没有什么效果。就是因为实践过程中细节和手法上的差异,是实践活动是否有效的关键。因此,我们在做的过程中,如果能够通过故障复盘得到一些反馈,就能不断去思考和持续改进。

(2)、团队在做代码重构的时候,往往并不是严格意义上的重构,因为重构前后改变了代码的逻辑,从而导致一系列的问题,这也是大家不愿意做重构的原因。我们常常说,在重构前,必须要先对代码编写单元测试,在有测试保证的情况下,再去做重构。奈何代码的复杂度已经很高,直接去编写单元测试是一件非常困难的事情。但重构又有风险会引入新的问题,所以我们尽可能去避免做重构,在原来已经非常复杂的代码的基础上继续修修补补,最终在我们的工程里面产生了越来越多的遗留烂代码。想要打破这样一个恶性循环,需要我们的开发人员,具备clean code的意识,提升对代码好坏的品鉴能力,并逐步掌握一些重构的技能和技巧(包括工具,好的工具会让大家的工作效率得到极大的提升),并掌握更多的编写单元测试的技巧去隔离和解依赖,技能上去了,才能减少犯错的可能性,大家看到了好处,得到了正面反馈,才能更有信心更进一步的去做。故障复盘的活动,就像一个榔头棒,敲打敲打才能深化大家的认识,才有可能让大家将这些代码实践活动进行落地。否则,只是制定一系列的编码规范,而没有让项目成员主动有意识去进行实践,是无法真正做到实践落地的。

综上所述,我们在制定一系列的改进措施的时候,往往只见树木不见森林,产品级的敏捷实践活动,涉及到从产品-项目-团队的各项管理和技术实践活动,究竟哪一些实践活动解决项目的痛点是有效的,往往需要系统的来对项目的痛点进行分析,找到翘起地球的那个杠杆解。深度故障复盘就像一个支点,如果这个支点利用得好,我们就能够从这个支点出发,深挖根因,并以此为出发点去制定有效的改进措施。同时,每个月的故障复盘情况,又是对前一个月的各项改进措施是否有效的一个极有价值的反馈,基于这样一个反馈环去做小步、持续改进,我们才能切实的解决产品的质量问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容