这周末终于完成 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 代码。到正式发布,还有很多用例要测,头大。
1
neoblackcap 2023-09-18 13:42:04 +08:00
像你这个情况,一般都是通过 CI 来实现的。很多 CI 服务都是支持多环境测试的。
当然了,这个也是需要你提供不同测试环境下的测试用例(如果不同环境调用的方法不一样的话) |
2
artnowben 2023-09-18 13:45:46 +08:00
比较流行的开源软件有很多用户,这些用户会帮忙测试到各种各样的场景。单靠自己去测试,也测不了这么充分。
我负责的 dperf 自己会测试很多,但是社区也发现了很多 Bug ,https://github.com/baidu/dperf |
3
LonnyWong OP @neoblackcap trzsz 不好搞,需要至少 2 台机,然后要 ssh 登录,再 trz 上传个文件,tsz 下载个文件,偶尔再来个 ctrl + c 的交互。
|
4
LonnyWong OP |
5
artnowben 2023-09-18 15:37:29 +08:00
@LonnyWong 自己还是要做充分测试的,如果软件质量不过硬,别人也不回去用,开源就失去意义了。
star 与用户数有关系,issue 与用户数关系更相关 |
6
nilai 2023-09-18 15:41:08 +08:00
electerm 的最近几个版本的 trz tsz 都不太稳定, 不过最新版本好像已经修复完成了
|
7
LonnyWong OP @nilai electerm 是升级了 electron ,然后做了一些调整,导致读写文件时有些问题,现在修复了。我好久没更新 trzsz.js 了,electerm 也不用改到 trzsz.js 就自己兼容了。
最近的周末都在集中精力完善 go 版 trzsz ,现在领先 py 版和 js 版很多了。同时也在让 tssh 尽量对齐 openssh 常用的功能,不知何时才有空继续搞 py 版和 js 版。go 版要结丹了 —— One down, two to go. |
9
Nazz 2023-09-18 19:28:30 +08:00
会做测试, 我的项目单元测试覆盖率已经达到了 95%
|
10
cnbatch 2023-09-18 19:51:49 +08:00
看程序用途而定
对于跨平台程序,我只测自己想测的平台,其中就有自己也用的平台。 通常我只测 Windows + BSD ,正式发布前再测 Linux 。至于 macos ,我连苹果电脑都没有,没法测试。 如果是 Client / Server 互联的程序,在功能稳定前我个人更偏向于每个版本都不相互兼容,如果恰好有兼容,那只是走运。 稳定后,可以考虑保证小版本之间兼容。 如果是生存存档的程序,那只需保持能够正确打开、保存存档文件就够了。 |
12
LonnyWong OP @nilai 哈哈,借你吉言。trzsz 对用惯了 rz / sz 的人是有吸引力的,不过老外用的少,还有不逛 v2 的人知道的也不多。
|
13
star7th 2023-09-19 09:51:06 +08:00
https://github.com/star7th/showdoc
我目前并没有做完整测试 就测试重点功能,以及自己新增以及修改影响到的部分功能。 至于说 多平台测试,我不会。因为是 web ,所以我测试 win 下即可。 |
14
star7th 2023-09-19 09:52:35 +08:00 1
不过实际走来看,我一般都向后兼容,出错还是比较少的。
主要是自己把握,我感觉我测试还算严谨,并且对 影响范围的评估还行。 |