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

我们写的代码需要测试,也需要测试测试的测试,那需要测试测试的测试的测试吗?

  •  1
     
  •   q3011893 · 2019-09-05 15:22:00 +08:00 · 3047 次点击
    这是一个创建于 1900 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之所以想出这个问题是看了《程序员修炼之道》如下的话: “因为我们不可能编写出完美的软件,所以我们也不可能编写出完美的测试软件。我们需要对测试进行测试。” “ Use Saboteurs to Test Your Testing. 通过“蓄意破坏”测试你的测试。”

    23 条回复    2019-09-07 15:58:00 +08:00
    mumbler
        1
    mumbler  
       2019-09-05 15:28:34 +08:00 via Android
    就因为无法做到无限递归,所以大厂生产的软件也会有 bug
    T3RRY
        2
    T3RRY  
       2019-09-05 15:30:45 +08:00
    hhhhh
    hh4646908
        3
    hh4646908  
       2019-09-05 15:37:34 +08:00
    需要治治口吃。。。。
    janwarlen
        4
    janwarlen  
       2019-09-05 15:40:21 +08:00
    需要,next
    DANG
        5
    DANG  
       2019-09-05 15:41:51 +08:00
    第一个精密的仪器肯定是用相对粗糙的仪器制造的,所以我理解他这段话的意思是说:在制造相对精密仪器的时候,首先需要提高粗糙仪器的精度。这种东西还是要看时间人力成本的,够用了就行了。
    jowan
        6
    jowan  
       2019-09-05 15:42:10 +08:00
    所以开发驱动测试
    lihongjie0209
        7
    lihongjie0209  
       2019-09-05 15:44:06 +08:00   ❤️ 4
    这么说的话你觉得 tcp 三次握手够吗
    tiaod
        8
    tiaod  
       2019-09-05 15:48:57 +08:00 via Android
    所以测试要尽量保持简单
    wqzjk393
        9
    wqzjk393  
       2019-09-05 15:52:56 +08:00
    多个独立的测试做投票不就好了
    MushiUta
        10
    MushiUta  
       2019-09-05 15:54:38 +08:00
    @hh4646908 下次你直接点头就行了
    MinQ
        11
    MinQ  
       2019-09-05 15:58:03 +08:00 via Android
    念完标题,差点猝死
    anabigabeu
        12
    anabigabeu  
       2019-09-05 16:06:38 +08:00   ❤️ 1
    套娃👮‍出动,不许套娃
    Alex5467
        13
    Alex5467  
       2019-09-05 16:11:49 +08:00
    无聊
    niknik
        14
    niknik  
       2019-09-05 16:19:44 +08:00
    需要,next()
    bilibilifi
        15
    bilibilifi  
       2019-09-05 16:25:59 +08:00 via iPhone
    看起来你需要 formal proof
    akmissxt
        16
    akmissxt  
       2019-09-05 16:35:06 +08:00
    测试是为了评估软件的质量,不是找 bug,不要本末倒置了。
    xjlnjut730
        17
    xjlnjut730  
       2019-09-05 16:37:59 +08:00
    所以不需要测试,开发人员本身就需要保证交付的质量。
    tz894305532
        18
    tz894305532  
       2019-09-05 16:49:36 +08:00
    达到一定可靠度就行了比如说 95%,不用 100%没问题。
    expkzb
        19
    expkzb  
       2019-09-05 16:49:39 +08:00
    看完标题不认识"测"这个字了
    alexk
        20
    alexk  
       2019-09-05 16:53:03 +08:00
    禁止套娃
    wqzjk393
        21
    wqzjk393  
       2019-09-05 16:55:54 +08:00
    基于统计学假设检验可以这么理解,我们没法证明代码是可以正常运行的,但是我们可以在一定的置信度下证明代码是不会出错的。所以测试就是干这活的啊,基于大部分使用习惯业务功能测试程序,如果发现出现错误了,即原假设代码存在问题是 true 的,那就否定了备择假设即代码可以正常运行,就打回去重写;如果在这些业务使用场景下依然能够正常运行,那就说明原假设代码存在问题是 false(基于置信区间或者说就是基于业务场景),也就证明了代码没问题。
    测试不是说要得到完美的代码,而是保证常规业务逻辑能跑通,保证代码能够适应绝大多数业务场景,所以其实没必要把问题复杂化的。没有完美无缺的代码的,就看你能接受多大范围的 bug
    Honker
        22
    Honker  
       2019-09-05 16:58:09 +08:00
    你这是要递归测试吗
    maxbon
        23
    maxbon  
       2019-09-07 15:58:00 +08:00
    hhh,想到了最近项目上讨论的一个话题,我们准备做一个监控守护进程,再做一个监控守护那个监控,再做一个监控守护监控的监控
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2767 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 507ms · UTC 08:01 · PVG 16:01 · LAX 00:01 · JFK 03:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.