请教一个关于研发和测试之间分锅的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sanshi4396
V2EX    职场话题

请教一个关于研发和测试之间分锅的问题

  •  
  •   Sanshi4396 2024-05-13 11:31:40 +08:00 3403 次点击
    这是一个创建于 595 天前的主题,其中的信息可能已经有所发展或是发生改变。
    事情是这样的

    上周五公司例行发版上线,在最后测试最终回归本期上线的主要功能时,发现有个 api 接口调用失败了。然后研发排查发现,是实现本期功能的时候忘记考虑到 api 的也要适配了(本期功能大概是将 web 端的两个列表数据合并成到一个列表,因为合并需要增加字段,所以 api 那边也需要适配一下)。最终只能将问题遗留处理

    细节方面

    1 、这个 api 之前是获取其中一个列表的数据,研发在提测前的自测是只造了之前列表的数据,当前接口可以被调通,问题没有被发现。

    2 、这个 api 在上线前 2 天,被提过另外的问题(有点阻碍继续测试),研发第一时间解决后置回给测试,测试在上线前最后时刻进行的复测。

    我的疑问

    1 、研发在自测时是否有必要进行很全面的测试。如上面说的,研发只是造了点数据,保证了接口正常,没有考虑到两个列表数据同时存在的情况。

    2 、测试如果在第二天研发解决另外的问题后,及时复测,是否能提早发现问题,给研发充分的时间修改,不至于到最后来不及了。
    第 1 条附言    2024-05-13 13:37:05 +08:00
    再补充一点,我们公司就几人团队。产品提需求基本都是一个小文档,把想要的东西介绍清楚,剩下的就是研发自己想象了。
    整个需求中,
    产品做的事:
    1 、发布一个说明文档,告诉研发想要什么。2 、研发根据说明文档实现时遇到的问题进行实时解答。

    研发做的事:
    1 、根据产品提供的说明文档,编写设计文档,定具体的设计方案。
    2 、代码实现。
    3 、功能自测,并提供自测用例。
    4 、跟测试一起评审测试用例。

    测试做的事:
    1 、根据研发的设计方案、产品的说明文档、研发的自测用例、对需求的自我理解 多个因素结合编写测试用例,并进行测试。
    2 、遇到跟研发有歧义的问题,跟产品确认。
    31 条回复    2024-05-14 11:38:43 +08:00
    yuhongtai114514
        1
    yuhongtai114514  
       2024-05-13 11:45:06 +08:00
    很全面的测试,前提是时间要够,项目坑要少,但大多数项目都是倒排的吧,研发没时间测那么多 case ,需要测试兜一下
    xiaoHuaJia
        2
    xiaoHuaJia  
       2024-05-13 11:46:10 +08:00   2
    为什么!!!你们都喜欢周五这种放假前发版!!!!!!!!!!!!!!!
    zephyru
        3
    zephyru  
       2024-05-13 11:47:47 +08:00   1
    这东西,没有什么绝对值...也没啥意思
    锅在研发的话,那就是,研发在开发阶段没有全面的评估接口的影响面
    想甩的话,那只能是,比如评审阶段没有人提出来

    锅在测试,那就是,测试没有从业务层面考虑到这几个接口会相互影响及时复测,或者没有全面测试
    但,如果测试说了,这个迭代不进行全量回归就甩不过去(很少有小迭代做全量回归的)

    锅在产品,那就是产品没有在需求阶段出这些需求(接口)会有关联
    比较牵强,但也不是甩不过去

    其它还能把锅甩给,线上的错误收集/监控/自动测试体系,如果有,那就是没有及时发现问题/用例有问题/不完善
    如果没有,那就是需要搞一套
    SuperAllen
        4
    SuperAllen  
       2024-05-13 11:48:05 +08:00
    @xiaoHuaJia 是因为周末双倍工资吗 [doge]
    iOCZS
        5
    iOCZS  
       2024-05-13 11:52:05 +08:00
    测试案例拿出来啊,看看是不是有遗漏
    如果更多的是涉及代码细节的,那就是开发的问题
    NessajCN
        6
    NessajCN  
       2024-05-13 11:57:11 +08:00
    权责对等
    测试如果有更大话语权,譬如测试可以给研发规定工期,可以把码农拉去训话,那测试被锅
    如果测试只能辅助研发,跑跑现成的 workflow ,提 bug 模板也要按研发给的格式,那研发背锅
    brader
        7
    brader  
       2024-05-13 11:57:28 +08:00
    这种可以大概率复现,且有很直观的页面表现的 BUG ,我觉得上到测试环境,测试发现了那就是开发的锅。
    如果上到生产环境去,说破天都是测试的锅。

    不在于开发有没有全面测试、有没有发现。你测试是最后一到防线,如果开发全面测试,就能拦住了,找你测试来干什么
    Tsing2
        8
    Tsing2  
       2024-05-13 12:00:03 +08:00
    测试例分为本期功能的,和历史功能的回归测试
    回归测试如果做不到全自动化的话,那就是挑着人工测(否则成本过高),至少挑了哪些,怎么审批的,这个流程是谁把控谁签字的,需要复盘
    如果测试例遗漏是可以接受的,那就没人背锅,优化流程,Review ,执行,皆大欢喜
    如果一定要有人背锅,那就是测试例审批的人,一般是小领导
    如果根本就没流程,瞎拍脑袋的,那就呵呵了
    walkeronway
        9
    walkeronway  
       2024-05-13 12:00:16 +08:00
    作为测试人员,我的观点:
    1. 这个问题不能简单定到某一方的责任。首先产品一般不会关注到 API 层面的改动。其次这个改动影响到的 API 应该是没有在需求范围内,是更后面的调用,这种问题一般开发和测试都会很难留意到,这种问题得看经验了,如果测试很熟悉系统的 API 调用关系,这种问题其实是可以提前感知到的。
    2. “在最后测试最终回归本期上线的主要功能时,发现有个 api 接口调用失败了” 说明这个 API 是可以在发版前在回归测试中发现的,但是“测试在上线前最后时刻进行的复测”导致了新的改动而没有时间做最终版的回归测试。当然也可能没有安排在测试环境针对主要功能进行这么全面的回归测试。可以硬说测试有责任,但是不建议,因为会感觉很憋屈。
    3. 赞同 2 楼,我们这边是极力避免休息日前一个工作日、或者补班期间(如果用户有其他国家的)发版,因为出问题了,要么得加班解决,要么用户没有第一时间发现、导致问题持续 1 个工作日以上扩大影响产生大量脏数据增加后期擦屁股的难度。除非是 OKR 而且卡在了 due date 前。
    me1onsoda
        10
    me1onsoda  
       2024-05-13 12:02:29 +08:00
    搞不懂,测试真的好喜欢跟开发分锅
    fulvaz
        11
    fulvaz  
       2024-05-13 12:03:46 +08:00
    我觉得 qa 锅再大,研发也需要背锅....而且不会因为有 qa 而可以锅就可以小一点....

    另外从个人成长的角度,难道没了 qa ,研发就写不了代码了?
    Puteulanus
        12
    Puteulanus  
       2024-05-13 12:20:05 +08:00
    1 我觉得没必要,一个是开发自己一般带着一些定视,很难保证没有遗漏的;第二个是在全面的测试上开发肯定没有 QA 专业(熟练、有常用的测试工具、数据)。相反在时间非常有限的情况下我倾向于开发只做自己认为最小的测试之后就丢给 QA ,把时间都留给专业人士,QA 早点测出问题打回来还能留时间改完再测一轮。

    我们一般是开发改完告诉 QA 修改大致可能的影响范围,QA 再去决定要把哪些可能受影响的测试用例都重新测一遍。

    不过如果低级错误开发没测出来漏到 QA 那边的多了容易被他们。
    darkengine
        13
    darkengine  
       2024-05-13 12:20:45 +08:00
    @iOCZS 我觉得大概率没有测试用例。。。不然不可能覆盖不到
    Sanshi4396
        14
    Sanshi4396  
    OP
       2024-05-13 13:15:24 +08:00
    @xiaoHuaJia #2 巧合,正常是 每月 10 号发一版
    Sanshi4396
        15
    Sanshi4396  
    OP
       2024-05-13 13:24:21 +08:00
    @iOCZS #5 测试用例有,测试没来得及测,最后发版前一刻才测出来。研发是压根没想到这个点,相当于漏做了。
    Sanshi4396
        16
    Sanshi4396  
    OP
       2024-05-13 13:35:52 +08:00
    @Sanshi4396 #15 再补充一点,我们公司就几人团队。产品提需求基本都是一个小文档,把想要的东西介绍清楚,剩下的就是研发自己想象了。
    整个需求中,
    产品做的事:
    1 、发布一个说明文档,告诉研发想要什么。2 、研发根据说明文档实现时遇到的问题进行实时解答。

    研发做的事:
    1 、根据产品提供的说明文档,编写设计文档,定具体的设计方案。
    2 、代码实现。
    3 、功能自测,并提供自测用例。
    4 、跟测试一起评审测试用例。

    测试做的事:
    1 、根据研发的设计方案、产品的说明文档、研发的自测用例、对需求的自我理解 多个因素结合编写测试用例,并进行测试。
    2 、遇到跟研发有歧义的问题,跟产品确认。
    ecloud
        17
    ecloud  
       2024-05-13 13:48:16 +08:00   1
    锅在 CEO ,因为他根本不懂软件工程生命周期,双 V 模型。需求->设计->用例->编码->测试。这个锅不在你们这层
    children009
        18
    children009  
       2024-05-13 14:14:20 +08:00
    其实这锅是你们整个团队的问题,每个人都有责任,产品文档不清晰或者表达不规范,在评审文档中没有明确,占责任 10-20% , 开发已经提前知道 API 的作用,并没有着重反馈到测试团队,占责任 30-40%,同样,测试占 40% - 60%,其实业务模式强的测试很早就应该发现这个问题。
    changf
        19
    changf  
       2024-05-13 14:34:31 +08:00   2
    1 、项目质量,不是靠 QA 测出来的,是靠产研测共同努力才能得来。
    2 、只有在有严格分工,规范流程的大前提下,讨论谁的责任才是有意义的。
    3 、很多团队其实研发流程,质量管理,项目排期本身乱成一锅粥。所以出了线上问题,团队应该想的是尽快修复,后面复盘也是为了避免出现同类型问题,而不是明确出来谁来背锅,没一点意义。
    4 、小团队更应该有事一起背,本来就可能一人分饰多角,还玩谁来背锅这套,凝聚力全没了。
    Sanshi4396
        20
    Sanshi4396  
    OP
       2024-05-13 15:26:14 +08:00
    @changf #19 认同你说的,确实在小团队里,往往是多做多错的。我本身作为研发侧,发这个贴也是为了 解我自己的心结,有时候出现 bug 什么的,总是在想是不是我写的就是我背锅,虽然领导可能并不会因此指责我。
    Sanshi4396
        21
    Sanshi4396  
    OP
       2024-05-13 15:27:28 +08:00
    @changf #19 可能没在大公司呆过,对责任划分这一块真的很模糊。
    chinaguaiu
        22
    chinaguaiu  
       2024-05-13 16:07:39 +08:00
    几个人的团队还分出测试岗位不太现实。小团队基本上是谁写的谁负责到底。
    xiaoHuaJia
        23
    xiaoHuaJia  
       2024-05-13 17:43:06 +08:00
    要不测试写代码,开发测吧。既要又要,想想开发为什么叫开发,测试为什么叫测试。如果测试负责不了那就全裁了,把钱交给开发让开发自己测。就喜欢在哪里叫叫叫
    Tinet
        24
    Tinet  
       2024-05-13 18:32:31 +08:00
    @zephyru 一看就是工作 10 年以上的大佬
    huigeer
        25
    huigeer  
       2024-05-13 18:55:39 +08:00
    这还能怎么甩,没有测试参与,研发全锅;有测试,55 分。项目管理先扛下来
    walkeronway
        26
    walkeronway  
       2024-05-13 18:56:27 +08:00
    @Sanshi4396 #15
    ??? 测试用例覆盖到了但是没有执行????测试用例没有完全执行,测试负责人有向项目组同步这个风险吗?项目组负责人点头同意带这个风险上线了吗?
    如果没有提前同步到项目组,这个严重性已经升级了啊,有用例但不执行也不告知风险,测试全责了,没有讨论的必要了
    lenglengyuchen
        27
    lenglengyuchen  
       2024-05-13 18:58:32 +08:00
    上周的阮一峰周刊正好提到”无罪文化“,感觉把错误归结到个人并没有什么意义

    软件公司应该提倡"无罪文化"。

    发生产品事故或者服务中断时,不要认定罪人并惩罚他们,而要假设相关个人出于良好意图,只是没有得到正确的信息来做出更好的决策,或者没有工具及时制止他们犯错。
    《关于无罪文化》 https://www.gybe.ca/a-few-words-about-blameless-culture/
    walkeronway
        28
    walkeronway  
       2024-05-13 18:59:05 +08:00
    你说的这个用例,是指发版前最后改的那个问题,还是线上那个问题对应的用例?
    qooweds
        29
    qooweds  
       2024-05-13 20:54:12 +08:00
    小团队讨论谁的锅没有意义,本身就是小步快跑的开发模式,效率高自然会牺牲质量.
    改进方案稍微复盘一下就可以看出来:
    1.产品设计尽可能考虑每一个细节,包括 API 的适配;需求文档加上评审环节
    2.开发需要做设计评审,code review
    3.测试用例需要细化到每一个细节,包括 API 适配的回归测试用例,并且需要产品和开发参与评审

    每一项都会增加开发成本,降低开发效率,看你们团队的取舍了.
    成本最低的是第一项
    Sanshi4396
        30
    Sanshi4396  
    OP
       2024-05-14 09:50:24 +08:00
    @walkeronway #28 线上问题对应的用例,本次上线其实时间上是有点紧的,测试也确实提前有知会过上线前可能不能把用例全部走完。。
    dododada
        31
    dododada  
       2024-05-14 11:38:43 +08:00
    发版时间改掉吧,周二发大版本,周四发小版本,有时间回滚
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3421 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:31 PVG 12:31 LAX 20:31 JFK 23:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86