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

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

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

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