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

234 天前
 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 代码。到正式发布,还有很多用例要测,头大。

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

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

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

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

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

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

我目前并没有做完整测试

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

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

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

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

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

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

© 2021 V2EX