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

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

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

    这周末终于完成 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   ·   实用小工具   ·   2627 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:55 · PVG 22:55 · LAX 06:55 · JFK 09:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.