首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
weo0
V2EX  ›  程序员

业务代码每行都需要单元测试覆盖吗?

  •  
  •   weo0 · 13 天前 · 3144 次点击
    34 条回复    2020-08-02 01:11:36 +08:00
    zsc8917zsc
        1
    zsc8917zsc   13 天前
    这么有时间,是家里有矿嘛
    whitehack
        2
    whitehack   13 天前
    一般就对大的逻辑做几个整体测试..结束..没那时间一个一个小功能的抠
    preyta
        3
    preyta   13 天前
    根据项目的规模和要求确定吧
    maichael
        4
    maichael   13 天前
    做取舍呗,根据该功能的重要性来决定覆盖率的要求。
    mmrx
        5
    mmrx   13 天前
    只能说理论说理论,实际论实际
    wenjy
        6
    wenjy   13 天前
    公司的项目,时间充裕的话尽量覆盖(因为维护的人是你自己,不想改代码瑟瑟发抖),外包的话,有单元测试吗??
    janxin
        7
    janxin   13 天前
    不一定,但是要有最低标准
    heguangyu5
        8
    heguangyu5   13 天前
    如果你把测试覆盖率当作开发者的辅助工具,而不是考核指标的话,这事就好办了。
    dilu
        9
    dilu   13 天前 via Android
    顺便说一句,行覆盖率≠开发质量
    jaylee4869
        10
    jaylee4869   13 天前
    不需要。核心关注一下 if else 、switch 。
    ShutTheFu2kUP
        11
    ShutTheFu2kUP   13 天前
    我反正之后都要做到了,昨天写了个憨逼循环,往公司生产库插入了几亿条数据...
    TtTtTtT
        12
    TtTtTtT   13 天前
    有必要性。
    但是看你们团队的取舍。
    单元测试用于确认你的代码符合你的 design,所以是一份非常有价值的文档和设计。
    一旦出现变更,单元测试和书面文档比,性价比非常高。
    尽管如此,如果测试资源便宜的话,或者变更时效性要求非常高的场合,都可以被省略的。
    FlushHip
        13
    FlushHip   13 天前
    行覆盖太扯了,业务代码多打点日志不香吗,对核心的底层模块也不用行覆盖,函数覆盖就够了。
    dinjufen
        14
    dinjufen   13 天前
    @ShutTheFu2kUP 结果怎样?
    Leigg
        15
    Leigg   13 天前 via Android
    @ShutTheFu2kUP 我笑了,有后续吗
    ZehaiZhang
        16
    ZehaiZhang   13 天前
    @ShutTheFu2kUP 问题不大,不用走人
    azcvcza
        17
    azcvcza   13 天前
    如果尊重开发规律的话,每个函数都加,每个流程都加,每个业务都加那肯定好,但是这样国内又不会算你的 KPI 。国内一般只注重 0->60 ; 60->100 没谁会记功
    nutting
        18
    nutting   13 天前
    怎么可能,测试的逻辑还能通吗。按方法吧
    ShutTheFu2kUP
        19
    ShutTheFu2kUP   13 天前
    @dinjufen 没咋样,昨天删了一天,今天再删一天应该就正常了。
    @Leigg 后续就是疯狂删数据
    @ZehaiZhang 确实,还不至于到要走人的地步...

    主要是 MySql 超过亿级以后查询太慢了,处理一个要等好久,庆幸的是这张表的数据占用字节都比较少..
    Umenezumi
        20
    Umenezumi   13 天前
    @ShutTheFu2kUP 要是进 hive 和正式数据耦合了 你就等死吧 哈哈
    msg7086
        21
    msg7086   13 天前
    最重要的是行为测试。单元测试看情况,本身分得太细的函数我觉得没必要精准覆盖。上层业务逻辑带到就行了。
    PainAndLove
        22
    PainAndLove   12 天前
    CY
    huluhulu
        23
    huluhulu   12 天前 via iPhone
    我司要求
    line coverage > 80%
    branch coverage> 60%
    kaneg
        24
    kaneg   12 天前 via iPhone   ❤️ 1
    单元测试是开发人员在自己可控范围对自己的一种保护。除了一些极端的边界情况只有在生产环境才会出现,其他大多数情况都是可以通过单元测试来确保其行为是符合预期的。
    你想,自己提交的代码上线后睡个安稳觉它不香吗?
    nianyu
        25
    nianyu   12 天前
    不需要
    nznd
        26
    nznd   12 天前
    我司 想进测试系统需要 UT>40% 分支
    想出测试系统,做 release 需要 UT>90% 分支 (好像不大于也没事 就是部门 boss 会被批 但是没人试过(
    不过周期一般比较长 一个季度 release 一次 最长的两年多
    lizytalk
        27
    lizytalk   12 天前 via iPhone
    @dilu 但是连行覆盖都保证不了不就是完全没有测试么...
    Perry
        28
    Perry   12 天前 via iPhone
    工具齐全的话,100% 不难
    dilu
        29
    dilu   12 天前 via Android
    @lizytalk 你覆盖了也不保证没有问题啊 覆盖率并不代表开发质量
    scnace
        30
    scnace   12 天前 via Android
    写单测其实可以从侧面帮开发者更好地抽象代码模块
    sariya
        31
    sariya   12 天前 via Android
    不存在的…比较独立的模块可以单测,大部分还是要集成测试,不然鸭子类要写到吐
    mreasonyang
        32
    mreasonyang   12 天前 via Android
    这要看你们有没有 QA 团队
    changwei
        33
    changwei   12 天前 via Android
    看你的用户群体,如果是对内部做的系统,用户通常不会提交太奇怪的数据,那就没必要做,如果是对外做的系统,什么人都用,甚至可能会有黑客来攻击,那肯定得覆盖各种异常输入的逻辑。另外,通常做开发都是防御式编程吧,得假设用户提交数据都有可能是错误或者超范围超值域的情况。
    fishCatcher
        34
    fishCatcher   11 天前 via iPhone
    有些错误场景非常刁钻根本没法定义,或者说测试的时候根本想不到那里会出错,100%覆盖是不可能的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3161 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:58 · PVG 18:58 · LAX 03:58 · JFK 06:58
    ♥ Do have faith in what you're doing.