我们写的代码需要测试,也需要测试测试的测试,那需要测试测试的测试的测试吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
q3011893
V2EX    程序员

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

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

之所以想出这个问题是看了《程序员修炼之道》如下的话: “因为我们不可能编写出完美的软件,所以我们也不可能编写出完美的测试软件。我们需要对测试进行测试。” “ 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     Solana     861 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 26ms UTC 22:23 PVG 06:23 LAX 15:23 JFK 18:23
Do have faith in what you're doing.
ubao 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