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

2023-09-18 13:33:21 +08:00
 LonnyWong

这周末终于完成 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 代码。到正式发布,还有很多用例要测,头大。

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

PS:star 与用户数有关系吗?没关系吗?
artnowben
2023-09-18 15:37:29 +08:00
@LonnyWong 自己还是要做充分测试的,如果软件质量不过硬,别人也不回去用,开源就失去意义了。
star 与用户数有关系,issue 与用户数关系更相关
nilai
2023-09-18 15:41:08 +08:00
electerm 的最近几个版本的 trz tsz 都不太稳定, 不过最新版本好像已经修复完成了
LonnyWong
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
2023-09-18 16:23:35 +08:00
@artnowben 质量越高,issue 会越少,好像也不是特别强相关的样子。
Nazz
2023-09-18 19:28:30 +08:00
会做测试, 我的项目单元测试覆盖率已经达到了 95%
cnbatch
2023-09-18 19:51:49 +08:00
看程序用途而定

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

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

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

我目前并没有做完整测试

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

至于说 多平台测试,我不会。因为是 web ,所以我测试 win 下即可。
star7th
2023-09-19 09:52:35 +08:00
不过实际走来看,我一般都向后兼容,出错还是比较少的。
主要是自己把握,我感觉我测试还算严谨,并且对 影响范围的评估还行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/974822

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX