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

大家平时写完代码都是怎么做自测的

  •  3
     
  •   jzyff · 2019-06-04 11:27:47 +08:00 · 14387 次点击
    这是一个创建于 2004 天前的主题,其中的信息可能已经有所发展或是发生改变。
    104 条回复    2019-06-05 16:32:20 +08:00
    1  2  
    alpha2016
        1
    alpha2016  
       2019-06-04 11:29:28 +08:00   ❤️ 43
    目测的 捂脸.jpg
    ddxx200
        2
    ddxx200  
       2019-06-04 11:30:32 +08:00
    TDD
    wozhizui
        3
    wozhizui  
       2019-06-04 11:32:35 +08:00
    单元测试,重要,有空也会自己跑一下业务测试。
    CocaColf
        4
    CocaColf  
       2019-06-04 11:32:37 +08:00 via Android
    对着测试用例来
    yamasa
        5
    yamasa  
       2019-06-04 11:32:57 +08:00
    比不上 ls TDD 大佬,但是越来越发现多写 UT 能解决不少问题。好些没注意到的问题 ut 一跑就出来了。不要怕繁琐。
    ksedz
        6
    ksedz  
       2019-06-04 12:06:12 +08:00
    单元测试能明显提升代码质量、开发效率
    尽量提升行覆盖率
    不止需要正常运行的用例,也需要引发错误 /异常的用例
    luckyqiang
        7
    luckyqiang  
       2019-06-04 12:11:51 +08:00 via iPhone
    postman 调接口测试
    ben1024
        8
    ben1024  
       2019-06-04 12:20:14 +08:00   ❤️ 1
    PHPUnit 单元测试
    Postman 接口测试
    jasonyang9
        9
    jasonyang9  
       2019-06-04 12:27:15 +08:00   ❤️ 15
    it compiled, awesome, ship it~~
    loading
        10
    loading  
       2019-06-04 12:29:04 +08:00 via Android
    楼上+1,只要 go 能编译,妥了。
    unicorn1390
        11
    unicorn1390  
       2019-06-04 12:34:18 +08:00
    找 qa 拿一个基本用例跑一下看看有没有阻塞。
    9420JackT
        12
    9420JackT  
       2019-06-04 12:35:05 +08:00 via iPhone
    找个测试女朋友,不分彼此
    beastk
        13
    beastk  
       2019-06-04 12:36:42 +08:00 via iPhone
    随缘了
    susunus
        14
    susunus  
       2019-06-04 12:46:55 +08:00 via iPhone
    我觉得没问题😊
    shawndev
        15
    shawndev  
       2019-06-04 12:50:31 +08:00   ❤️ 7
    如果面试这么问我,我会回答 TDD, BDD 和 DDD。如果是朋友问我,我会回答 XJB 点。
    MrGba2z
        16
    MrGba2z  
       2019-06-04 12:52:15 +08:00
    别问 问就是 print 一把梭
    via
        17
    via  
       2019-06-04 12:56:09 +08:00
    单元测试写出来比原代码还要长,有时候要设置十几组 data provider 才能 cover 所有的行,确实枯燥,现在是在测试环境做人工测试。
    via
        18
    via  
       2019-06-04 12:57:35 +08:00
    @MrGba2z 你说的是调试,楼主问的是测试,好像不是一回事😅
    harde
        19
    harde  
       2019-06-04 13:09:58 +08:00
    单元测试、回归测试。
    n1dragon
        20
    n1dragon  
       2019-06-04 13:25:15 +08:00
    把测试拉过来说,来来来,给我提前试一下。。。
    icylogic
        21
    icylogic  
       2019-06-04 13:28:57 +08:00 via iPhone
    bdd
    ryanzheng
        22
    ryanzheng  
       2019-06-04 13:46:36 +08:00
    测试用例加 postman
    wlfeng
        23
    wlfeng  
       2019-06-04 13:48:55 +08:00
    单元测试+postman
    jiejiss
        24
    jiejiss  
       2019-06-04 14:06:20 +08:00   ❤️ 1
    无副作用的函数扔进 console runtime 里跑一下
    有副作用的写测试用例,小项目直接用 assert,中 /大项目上专门的测试框架
    JRay
        25
    JRay  
       2019-06-04 14:12:45 +08:00
    让测试测?
    luozic
        26
    luozic  
       2019-06-04 14:53:05 +08:00
    TDD/DDD 實際長期堅持能加快效率
    OldPanda
        27
    OldPanda  
       2019-06-04 14:56:39 +08:00
    本地跑单元测试+集成测试,目测偶尔也是有的
    wysnylc
        28
    wysnylc  
       2019-06-04 14:57:43 +08:00
    本地编译避免报错,测试服测试接口有效性以及接口数据是否正常
    然后和前端对接,和测试联调
    cdafsd
        29
    cdafsd  
       2019-06-04 14:58:10 +08:00
    swagger!
    tyrantZhao
        30
    tyrantZhao  
       2019-06-04 15:01:48 +08:00
    游戏服务端里面测就是点点点,但感觉总有问题出现,感觉不太好。。。
    wyz123723
        31
    wyz123723  
       2019-06-04 15:04:02 +08:00
    写测试,我司要求分支覆盖 80%以上
    TommyLemon
        32
    TommyLemon  
       2019-06-04 15:06:39 +08:00   ❤️ 1
    单元测试代码工作量太大了,而且改了业务,还得同步修改测试代码。
    现在用 APIJSONAuto 自动化接口测试,不用写任何代码,点几下按钮就行了



    自动化接口管理工具,自动生成代码、自动静态检查、自动化回归测试、自动生成文档与注释等。
    * 自动生成接口文档,清晰可读永远最新
    * 自动校验与格式化,支持高亮和收展
    * 自动生成各种语言代码,一键下载
    * 自动管理与测试接口用例,一键共享
    * 自动给请求 JSON 加注释,一键切换
    * 自动保存历史请求记录,一键恢复

    代码已开源,可以点 Star 支持下哦 ^_^
    https://github.com/TommyLemon/APIJSONAuto
    TommyLemon
        33
    TommyLemon  
       2019-06-04 15:11:18 +08:00
    moodasmood
        34
    moodasmood  
       2019-06-04 15:14:59 +08:00
    XJB 点 +1
    javaWeber
        35
    javaWeber  
       2019-06-04 15:25:00 +08:00
    IDEA,用 JUnitGenerator V2.​ 0 做单元测试。。
    如果是 SpringBoot,测试类上面加注解
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringBootTest(classes = MySpringBootApplication.class)
    MySpringBootApplication 是指 Application 启动类的类名。
    然后再用 @Autowired 注入对象就可以测试服务层。
    控制层用 postman 测试。
    msg7086
        36
    msg7086  
       2019-06-04 15:26:09 +08:00 via Android
    我个人很少做 ut 和 tdd,只做 bdd。
    javaWeber
        37
    javaWeber  
       2019-06-04 15:26:57 +08:00
    IDEA 的 JUnitGenerator V2.​ 0 插件装了以后,直接在类里面右键,generate,选 Junit 就可以生成测试类了。
    Chowe
        38
    Chowe  
       2019-06-04 15:33:34 +08:00
    能用 == 测试通过
    FelixLiu
        39
    FelixLiu  
       2019-06-04 15:33:43 +08:00
    疯狂输入+疯狂输出
    JohnDoeChou
        40
    JohnDoeChou  
       2019-06-04 15:34:14 +08:00
    不可能有 bug 的 不存在的不用测了
    KyleZ
        41
    KyleZ  
       2019-06-04 15:40:54 +08:00
    能用 == 测试通过
    greatghoul
        42
    greatghoul  
       2019-06-04 15:41:33 +08:00
    TDD
    inoizyz
        43
    inoizyz  
       2019-06-04 15:48:29 +08:00 via Android
    希望使用单元测试进行测试,但是之前可能需要测试单元测试…
    jsjgjbzhang
        44
    jsjgjbzhang  
       2019-06-04 15:49:12 +08:00   ❤️ 1
    自测是不可能自测的,一般都是目测完直接给 qa,然后装死
    svenFeng
        45
    svenFeng  
       2019-06-04 16:05:01 +08:00 via Android
    用形式化验证,代码一分钟,证明十小时,懒的时候就写 quickCheck。
    wxl1380610
        46
    wxl1380610  
       2019-06-04 16:30:20 +08:00
    啥是测试 ?
    qq976739120
        47
    qq976739120  
       2019-06-04 16:32:42 +08:00
    我现在在的九章....代码的确是 90%以上的单元测试覆盖率
    love2328
        48
    love2328  
       2019-06-04 16:33:53 +08:00
    目测,给前端测.......
    Yiki
        49
    Yiki  
       2019-06-04 16:41:03 +08:00
    目测 /乱点 /给上级测...
    cuebyte
        50
    cuebyte  
       2019-06-04 16:47:02 +08:00
    UT + 手測,然後丟給 QA。正負測試用例盡量覆蓋到,不然有麻煩的還是自己。
    kiwier
        51
    kiwier  
       2019-06-04 16:48:56 +08:00
    go_test.go
    glaucus
        52
    glaucus  
       2019-06-04 16:52:33 +08:00
    给客户测试(手动滑稽
    lbunderway
        53
    lbunderway  
       2019-06-04 16:54:02 +08:00
    bdd 还是不错的
    TimPeake
        54
    TimPeake  
       2019-06-04 17:11:02 +08:00
    对测试人员说一句:你测下。
    pmispig
        55
    pmispig  
       2019-06-04 17:15:08 +08:00
    编译通过即可
    GoTop
        56
    GoTop  
       2019-06-04 17:39:49 +08:00
    oneman 的 side project,半桶水程序员

    自己手动运行,看起来没问题就行,哈哈
    pancl
        57
    pancl  
       2019-06-04 17:52:04 +08:00
    随便点点
    snowfuck
        58
    snowfuck  
       2019-06-04 18:13:21 +08:00
    与其手动调接口测试,从 UI 界面测试,不如多花点时间来写单元测试,用 TDD。
    carpe
        59
    carpe  
       2019-06-04 18:25:41 +08:00
    @glaucus 去掉滑稽,我们目前就是这样来的。
    shiny
        60
    shiny  
       2019-06-04 18:27:25 +08:00
    uTOmOuk3L6sb4MSI
        61
    uTOmOuk3L6sb4MSI  
       2019-06-04 18:42:20 +08:00 via iPhone
    @shawndev #15 D 中 D
    mogami95
        62
    mogami95  
       2019-06-04 18:43:33 +08:00
    不测,等着 oncall
    ArrayBuffer
        63
    ArrayBuffer  
       2019-06-04 18:52:39 +08:00
    能运行就可以交给测试部门了 😀
    yonglanyouyou
        64
    yonglanyouyou  
       2019-06-04 18:56:48 +08:00 via Android
    菜鸡嵌入式表示都是一把梭
    phpcxy
        65
    phpcxy  
       2019-06-04 18:58:10 +08:00 via Android
    自从开始写单元测试,交付时候自信多了
    bigmercu
        66
    bigmercu  
       2019-06-04 19:01:25 +08:00
    spock tdd + postman
    justin2018
        67
    justin2018  
       2019-06-04 22:35:25 +08:00
    我最讨厌 UI 方面的兼容问题 😅
    roronoaws
        68
    roronoaws  
       2019-06-04 22:39:34 +08:00 via Android
    观察法
    ctsua
        69
    ctsua  
       2019-06-04 23:01:06 +08:00
    打开测试佬的 im 窗口:“在吗?现在忙不?”
    lithiumii
        70
    lithiumii  
       2019-06-04 23:09:52 +08:00
    我邪道,我拿 jupyter 写,边写边测
    param
        71
    param  
       2019-06-04 23:21:41 +08:00
    @lithiumii #70 还有这种操作,学习了
    naeco
        72
    naeco  
       2019-06-04 23:30:22 +08:00
    前端测试太麻烦了
    dyllen
        73
    dyllen  
       2019-06-05 00:10:01 +08:00   ❤️ 1
    搞单元测试感觉好麻烦,没那么多时间呀,所以我是一直想搞,一直没搞。
    api 的话我都是写好自己用 postman 那种输入点参数简单测试一下。
    kaedea
        74
    kaedea  
       2019-06-05 00:26:15 +08:00 via Android
    1. 单元测试跑边界测试,然后集成跑一下
    2. 框架代码核心公有接口写单元测试,覆盖率不够没关系,主要以为了发现 bug 后,比较好针对性地测试出问题的地方
    Kahnn
        75
    Kahnn  
       2019-06-05 00:27:46 +08:00
    业务变化快的话,写单元测试不划算
    lonelygo
        76
    lonelygo  
       2019-06-05 01:34:37 +08:00
    @shawndev 如果面试回答测试是:debug。肿么办?
    ericgui
        77
    ericgui  
       2019-06-05 06:06:02 +08:00
    @Kahnn 是的,写代码的速度赶不上拍脑袋的速度
    p1094358629
        78
    p1094358629  
       2019-06-05 06:54:15 +08:00 via iPhone
    @moodasmood 啥玩意儿,百度也没看出来
    p1094358629
        79
    p1094358629  
       2019-06-05 06:54:54 +08:00 via iPhone
    @javaWeber 控制层可以用 mock,配合事务回滚
    yuanfnadi
        80
    yuanfnadi  
       2019-06-05 08:26:44 +08:00 via iPhone
    开源项目会写测试,有时候 tdd 开发。
    业务代码就等着测试来了。
    linvaux
        81
    linvaux  
       2019-06-05 08:28:36 +08:00 via Android
    @alpha2016 目测+1
    oneisall8955
        82
    oneisall8955  
       2019-06-05 08:39:38 +08:00 via Android
    目测😐
    pengjl
        83
    pengjl  
       2019-06-05 09:44:16 +08:00
    运行成功,上传到测试服务器,然后让测试测一下
    zsc8917zsc
        84
    zsc8917zsc  
       2019-06-05 09:45:49 +08:00
    用易经占一下卜,第六感玄学测试
    supuwoerc
        85
    supuwoerc  
       2019-06-05 09:45:51 +08:00   ❤️ 1
    自己能用 ==测试通过,交给测试的发现一堆问题打回来 (狗头)
    lihongjie0209
        86
    lihongjie0209  
       2019-06-05 09:49:54 +08:00
    说单元测试的,
    如果涉及到数据库,那么就不属于单元测试
    如果涉及到网络,那么就不属于单元测试
    securityCoding
        87
    securityCoding  
       2019-06-05 10:06:57 +08:00
    mock 业务层测试,接口层集成测试
    jiangliuli
        88
    jiangliuli  
       2019-06-05 10:18:33 +08:00 via Android
    @lihongjie0209 单元测试可以 mock
    lihongjie0209
        89
    lihongjie0209  
       2019-06-05 10:37:28 +08:00
    @jiangliuli mock 之后代码怎么重构? mock 就是在测试代码的实现细节
    leafShimple
        90
    leafShimple  
       2019-06-05 10:41:11 +08:00
    觉得复杂的方法,和整体单元测试.测完,发测试环境叫测试测
    chenqh
        91
    chenqh  
       2019-06-05 10:43:39 +08:00
    @lihongjie0209 那这种算什么?
    haaro
        92
    haaro  
       2019-06-05 10:44:10 +08:00 via iPhone
    客户端开发真的很难做单元测试,当然主要还是因为代码太耦合,有别人的锅也有自己的锅。所以,一般都是优化编译过程,让时间少一点,然后装在手机上点点点…至于编译的时候干啥,一般都是刷 v2
    aoom
        93
    aoom  
       2019-06-05 10:45:02 +08:00
    目测 +1
    lihongjie0209
        94
    lihongjie0209  
       2019-06-05 10:45:52 +08:00
    @chenqh 集成测试
    jiangliuli
        95
    jiangliuli  
       2019-06-05 10:47:45 +08:00
    @lihongjie0209 #89 我也是没用多久可能理解不大对,我个人的理解是 mock 是用来代替一些 http request,数据读取之类的东西,省去一些做真正读取的时间。为什么会跟重构挂钩呢?望指正。
    lihongjie0209
        96
    lihongjie0209  
       2019-06-05 10:52:02 +08:00
    @jiangliuli 代码只要涉及到 io, 那就是集成测试, 写单元测试就是找虐.
    lihongjie0209
        97
    lihongjie0209  
       2019-06-05 10:59:40 +08:00   ❤️ 2
    @jiangliuli mock 数据库, 那么前期要写多少配置代码?
    假如说你有一个数据库接口返回 10 个对象, 每个对象有 15 个字段, 你怎么初始化这 10 个对象?
    写个 for 循环? 那你有怎么保证你这个 for 循环没有 bug?
    随机生成? 单元测试要的就是固定输入和固定输出.
    手写? 这只是 150 个字段而已, 假如有 100 对象呢? 假如需求改动呢?

    mockHTTP 请求?
    上述的问题都会存在, 而且你没有办法测试全部状态. http 光状态码就有多少个, 更不用说接口内部的错误代码.



    总的来说, 单元测试对于代码设计的意义大于测试的意义. 为了测试而写单元测试, 首先你写不完, 其次没法改.
    TommyLemon
        98
    TommyLemon  
       2019-06-05 11:00:00 +08:00
    @javaWeber @love2328 @snowfuck @bigmercu @dyllen @Kahnn @ericgui @lihongjie0209
    全自动化 API 测试,不用写任何代码,不用填任何配置
    https://www.v2ex.com/t/570669#r_7431950
    shawndev
        99
    shawndev  
       2019-06-05 12:08:57 +08:00
    @lonelygo XJB 点的 debug 方式就是 XJB 改。
    moodasmood
        100
    moodasmood  
       2019-06-05 12:26:35 +08:00 via Android
    @p1094358629 瞎 jb 点
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5811 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.