V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
enenaaa
V2EX  ›  程序员

我就问一下大家写代码都是测试驱动吗

  •  
  •   enenaaa · 2016-10-19 22:02:57 +08:00 · 4851 次点击
    这是一个创建于 2990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近看了一下测试驱动方式的介绍文章,感觉这种模式不错。 但不太清楚现在普及到了什么程度。 或者主动写测试用例的时候多不多。

    30 条回复    2016-10-24 18:04:08 +08:00
    indooorsman
        1
    indooorsman  
       2016-10-19 22:39:58 +08:00 via Android
    不是
    airyland
        2
    airyland  
       2016-10-19 22:59:21 +08:00 via iPhone
    是,商城的代码都必须过一遍测试才敢上线
    coa
        3
    coa  
       2016-10-19 23:01:25 +08:00
    曾经想尝试下来着,后来发现如果没有一定架构意识,属于想到哪写到哪的这种根本驱动不起来,会出现测试和开发不断两头改的憋屈情形。。还有就是真写起来光测试代码可能不一定比开发代码少多少。。代码量增加可观。。 so 。。。
    iyaozhen
        4
    iyaozhen  
       2016-10-19 23:12:59 +08:00 via Android
    推荐看看王垠的《测试的道理》 http://www.yinwang.org/blog-cn/2016/09/14/tests
    不能为了形式而形式。当需求不明确的时候就会出现楼上说的测试代码和业务代码两头一起改的窘态。还是要看公司项目流程
    ivvei
        5
    ivvei  
       2016-10-19 23:19:45 +08:00
    不是。其实我尝试过 TDD ,后来发现测试代码的 bug 比要测试的代码的 bug 还多,为了能正确地测试,我得先花很大精力折腾测试代码。回头一看比写了两份代码的工作量还多。然后,需求变了……
    guyskk
        6
    guyskk  
       2016-10-19 23:24:47 +08:00   ❤️ 1
    写完一个模块就测一个(自己写测试),测试让我有把握自己的代码就是按我预期的那样运行。
    skydiver
        7
    skydiver  
       2016-10-19 23:26:01 +08:00
    都是 PM 驱动开发……
    JhZ7z587cYROBgVQ
        8
    JhZ7z587cYROBgVQ  
       2016-10-19 23:34:04 +08:00
    在前公司的 web 项目上试过,对接口对模型层啥的做了测试,但是在现公司做得这个项目因为大量操作数据库,实际上很难写单元测试,也就没有用 TDD ,都是先测试环境下冒烟,然后校验数据正确性再去线上灰度最后全量上这种。
    enenaaa
        9
    enenaaa  
    OP
       2016-10-19 23:35:03 +08:00
    @iyaozhen 倒不是形式, 这一段在写脚本代码。重构的时候比较痛苦,连语法正确都不能保证。如果有完善的测试用例那就方便多了。

    @guyskk 测试当然都会测试。但你是先写测试用例再写代码呢, 还是先写代码再测试。用例会不会保留下来归入用例集。

    @ivvei 有些功能写测试很麻烦,而且容易产生 bug , 比如 UI 界面。 我就有点担心你说的情况。
    sfree2005
        10
    sfree2005  
       2016-10-19 23:46:14 +08:00 via iPhone
    我个人还是倾向测试驱动的。需求不明确的话 的确需要两边一起写或者改。但相对于业务代码来说,写测试代码所花费的时间可以很短 也让整个流程高效了很多 值得的
    exoticknight
        11
    exoticknight  
       2016-10-19 23:54:55 +08:00
    我认为非常需要,但是基本没试过……
    可能外企会更加着重?
    Just1n
        12
    Just1n  
       2016-10-20 00:01:30 +08:00
    我厂就是最典型的 TDD 。
    czheo
        13
    czheo  
       2016-10-20 02:42:56 +08:00
    王 yin 说的很对,这么简单的道理,你们怎么就不明白呢?
    lightening
        14
    lightening  
       2016-10-20 04:03:17 +08:00
    看情况。我认为这不能一概而论。

    对于很简单一看就懂,也不太会变动的东西,我不写测试。
    对于比较核心、一旦出错后果严重的代码,我事后写测试。
    对于很复杂、写的时候就容易出问题的代码,我做 TDD ,先写测试后写实际代码。

    另外出过 bug 的代码我会重新考虑补测试。

    我个人不追求 100% 测试覆盖,追求用最小的测试量达到最大的效能。
    df4VW
        15
    df4VW  
       2016-10-20 06:02:15 +08:00
    只写集成测试
    doubleflower
        16
    doubleflower  
       2016-10-20 07:59:49 +08:00
    基本只写集成测试,除非哪个单元部分很复杂,大部分都是事后写。

    设计 API 时可能会打打草稿具体 URL 形式,但那也不会是测试先行。

    对于基本不大动或一次性的代码从不写测试,人工测试。
    linux40
        17
    linux40  
       2016-10-20 08:19:34 +08:00 via Android
    一个相对独立的模块完成写吧
    mringg
        18
    mringg  
       2016-10-20 08:25:42 +08:00 via iPhone   ❤️ 1
    我是工资驱动的
    stnaw
        19
    stnaw  
       2016-10-20 09:21:08 +08:00
    @mringg +1
    g0thic
        20
    g0thic  
       2016-10-20 09:25:44 +08:00   ❤️ 1
    deadline 驱动
    garfee
        21
    garfee  
       2016-10-20 09:33:49 +08:00
    @g0thic 说的太对了
    akring
        22
    akring  
       2016-10-20 09:45:23 +08:00
    甲方驱动, TDD 什么的完全不管用, deadline 前一周改设计改需求什么的我们都习惯了
    garfieldWu
        23
    garfieldWu  
       2016-10-20 09:48:48 +08:00
    面向领导编程
    garfieldWu
        24
    garfieldWu  
       2016-10-20 09:49:41 +08:00
    bug 驱动开发,下午茶驱动开发,愧疚感驱动开发
    以上。
    zongren
        25
    zongren  
       2016-10-20 11:49:45 +08:00
    正经的开发肯定是 TDD 的,业务耦合紧密的地方可以人工测
    bugcode
        26
    bugcode  
       2016-10-20 12:03:16 +08:00 via iPhone
    发布会现场驱动🙄
    asj
        27
    asj  
       2016-10-20 13:36:39 +08:00
    本想说王喷子懂个 p 的 TDD ,读了一遍发现还是挺懂的。:)
    不过他那 12 条里除第 3 条和半个第 7 条外都和 TDD 没什么冲突。
    jun0205
        28
    jun0205  
       2016-10-20 13:44:35 +08:00
    TDD + SELENIUM
    adv007
        29
    adv007  
       2016-10-20 14:47:13 +08:00 via iPhone
    bdd 老板的行为驱动开发
    feiyuanqiu
        30
    feiyuanqiu  
       2016-10-24 18:04:08 +08:00
    刚还在写呢...

    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5488 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 08:58 · PVG 16:58 · LAX 00:58 · JFK 03:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.