开源软件,大家会做完整的测试吗?会做与旧版本的兼容性测试吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
LonnyWong
V2EX    程序员

开源软件,大家会做完整的测试吗?会做与旧版本的兼容性测试吗?

  •  
  •   LonnyWong 2023-09-18 13:33:21 +08:00 2112 次点击
    这是一个创建于 757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这周末终于完成 go 版 trzsz 全部功能的开发,支持了隧道传输,配合 trzsz ssh ( tssh ) 使用,提高了传输速度和稳定性。比 rz / sz 好用的小目标算是完成了,也不是什么大成就,毕竟人家几十年不更新了。

    GitHub:
    https://github.com/trzsz/trzsz-go
    https://github.com/trzsz/trzsz-ssh

    然而要进行的测试,随着功能的增多,也越来越多用例了。涉及客户端服务端,还有跳板机的“中继”。

    客户端:( 2 * 3 * 2 = 12 种 )
    1 、 [ 新版本,旧版本 ] ,新版本用来测试新功能,旧版本用来测试与新版本的兼容性。
    2 、 [ Windows ,MacOs ,Linux ] ,不同平台的表现会不一样,特别是 Windows 很特殊。
    3 、 [ tssh ,trzsz ssh ] ,既可使用 tssh ,也可使用 trzsz ssh 。

    中继(跳板机):( 2 * 3 * 3 * 2 = 36 种 )
    1 、 [ 新版本,旧版本 ] ,同上。
    2 、 [ Windows ,MacOs ,Linux ] ,同上。
    3 、 [ 无 tmux ,tmux 普通模式,tmux 命令模式 ] ,是否使用 tmux ,以及什么模式。
    4 、 [ tssh ,trzsz -r ssh ] ,使用 tssh 会自动识别“中继”身份,使用 trzsz 要加上 -r 参数。

    服务端:( 2 * 3 * 3 * 2 * 8 = 288 种 )
    1 、 [ 新版本,旧版本 ] ,同上。
    2 、 [ Windows ,MacOs ,Linux ] ,同上。
    3 、 [ 无 tmux ,tmux 普通模式,tmux 命令模式 ] ,同上。
    4 、 [ trz ,tsz ] ,trz 上传,tsz 下载。
    5 、 [单文件,多文件,文件夹,二进制,取消,中断,暂停,无权限] 等等,trz / tsz 支持了很多的功能。

    以上所有组合在一起,再排除全部都是旧版本的情况,共有 108864 个测试用例。

    有很多都是涉及具体的环境的,单测也覆盖不到。你会如何精简测试用例?

    我是挑了一些重点来测,特别是 Windows 相关的发现了不少的问题。不过,挑重点的用例,也还是非常的多。花了很长的时间测完重点的用例,然后才 push 代码。到正式发布,还有很多用例要测,头大。

    14 条回复    2023-09-19 09:52:35 +08:00
    neoblackcap
        1
    neoblackcap  
       2023-09-18 13:42:04 +08:00
    像你这个情况,一般都是通过 CI 来实现的。很多 CI 服务都是支持多环境测试的。
    当然了,这个也是需要你提供不同测试环境下的测试用例(如果不同环境调用的方法不一样的话)
    artnowben
        2
    artnowben  
       2023-09-18 13:45:46 +08:00
    比较流行的开源软件有很多用户,这些用户会帮忙测试到各种各样的场景。单靠自己去测试,也测不了这么充分。
    我负责的 dperf 自己会测试很多,但是社区也发现了很多 Bug ,https://github.com/baidu/dperf
    LonnyWong
        3
    LonnyWong  
    OP
       2023-09-18 13:45:55 +08:00
    @neoblackcap trzsz 不好搞,需要至少 2 台机,然后要 ssh 登录,再 trz 上传个文件,tsz 下载个文件,偶尔再来个 ctrl + c 的交互。
    LonnyWong
        4
    LonnyWong  
    OP
       2023-09-18 13:51:11 +08:00
    @artnowben 尴尬,没那么多用户。不希望发布的版本,出现太多“一测就能发现的问题”,所以自己的测试工作量就会很大。

    PS:star 与用户数有关系吗?没关系吗?
    artnowben
        5
    artnowben  
       2023-09-18 15:37:29 +08:00
    @LonnyWong 自己还是要做充分测试的,如果软件质量不过硬,别人也不回去用,开源就失去意义了。
    star 与用户数有关系,issue 与用户数关系更相关
    nilai
        6
    nilai  
       2023-09-18 15:41:08 +08:00
    electerm 的最近几个版本的 trz tsz 都不太稳定, 不过最新版本好像已经修复完成了
    LonnyWong
        7
    LonnyWong  
    OP
       2023-09-18 16:21:21 +08:00
    @nilai electerm 是升级了 electron ,然后做了一些调整,导致读写文件时有些问题,现在修复了。我好久没更新 trzsz.js 了,electerm 也不用改到 trzsz.js 就自己兼容了。

    最近的周末都在集中精力完善 go 版 trzsz ,现在领先 py 版和 js 版很多了。同时也在让 tssh 尽量对齐 openssh 常用的功能,不知何时才有空继续搞 py 版和 js 版。go 版要结丹了 One down, two to go.
    LonnyWong
        8
    LonnyWong  
    OP
       2023-09-18 16:23:35 +08:00
    @artnowben 质量越高,issue 会越少,好像也不是特别强相关的样子。
    Nazz
        9
    Nazz  
       2023-09-18 19:28:30 +08:00
    会做测试, 我的项目单元测试覆盖率已经达到了 95%
    cnbatch
        10
    cnbatch  
       2023-09-18 19:51:49 +08:00
    看程序用途而定

    对于跨平台程序,我只测自己想测的平台,其中就有自己也用的平台。
    通常我只测 Windows + BSD ,正式发布前再测 Linux 。至于 macos ,我连苹果电脑都没有,没法测试。

    如果是 Client / Server 互联的程序,在功能稳定前我个人更偏向于每个版本都不相互兼容,如果恰好有兼容,那只是走运。
    稳定后,可以考虑保证小版本之间兼容。

    如果是生存存档的程序,那只需保持能够正确打开、保存存档文件就够了。
    nilai
        11
    nilai  
       2023-09-18 21:13:14 +08:00   1
    @LonnyWong 感谢,加油, 我有个预感, 这个项目以后会闻名世界
    LonnyWong
        12
    LonnyWong  
    OP
       2023-09-18 21:26:54 +08:00
    @nilai 哈哈,借你吉言。trzsz 对用惯了 rz / sz 的人是有吸引力的,不过老外用的少,还有不逛 v2 的人知道的也不多。
    star7th
        13
    star7th  
       2023-09-19 09:51:06 +08:00
    https://github.com/star7th/showdoc

    我目前并没有做完整测试

    就测试重点功能,以及自己新增以及修改影响到的部分功能。

    至于说 多平台测试,我不会。因为是 web ,所以我测试 win 下即可。
    star7th
        14
    star7th  
       2023-09-19 09:52:35 +08:00   1
    不过实际走来看,我一般都向后兼容,出错还是比较少的。
    主要是自己把握,我感觉我测试还算严谨,并且对 影响范围的评估还行。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3252 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:42 PVG 19:42 LAX 04:42 JFK 07:42
    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