请问怎么保证自己的项目不会每次更改一个地方就埋下数个新的 bug。

2024 年 12 月 4 日
 ChrisFreeMan

业余时间写了个个人项目(一个桌面 GUI 应用),代码量是自己个人项目中最大的,但目前没有多少用户,主要是自己在抽空开发和测试,经常因为功能改动或者优化导致出现一些难以发现的 bug ,很多时候 bug 要过好久才发现,绝大部分的用户宁愿直接卸载应用也懒得发一封反馈邮件。导致很多用户默默流失。

现在也做了一些补救措施,比如延长自行测试的时间,极大地简化反馈的流程并主动无打扰的情况下邀请反馈,尽可能的减少破坏性的更改,并且在考虑给予终身免费会员来邀请一些朋友来作为活跃用户。

我个人实在是认知有限,想恳请各位经验开发人士能够慷慨的指点一二。

2138 次点击
所在节点    程序员
17 条回复
h1298841903
2024 年 12 月 4 日
1. 是个单机应用,无法联网吗? 正常来说,会对每个操作路径都进行埋点,看哪一步操作中间断掉了,数据有异常,可以及时发现。
2. 另外,还是要完善自动化测试,编写 UI 点击脚本。
3. 此外,可以增加不同版本,比如:内测版、先遣版、稳定版。
ChrisFreeMan
2024 年 12 月 4 日
@h1298841903 感谢回复,应用是本地应用加可选的联网功能,我没有写过 UI 自动化测试脚步,因为处于早期频繁开发状态,担心工作量太大难以维护。应用是上架在 app store ,目前的话有 testFlight 版本,但是未邀请任何其他人参加,不知道怎么找到意愿测试用户。
fenglirookie
2024 年 12 月 4 日
Mac 软件呀
ChrisFreeMan
2024 年 12 月 4 日
@fenglirookie 是的
hdfg159
2024 年 12 月 4 日
单元测试全覆盖了吗
tf2
2024 年 12 月 4 日
你是否在寻找:

全链路、全界面免埋点事件跟踪还原监控系统。
Configuration
2024 年 12 月 4 日
无法绝对避免的,只能是多测试;也可以上 TestFlight 让用户帮你测
jeesk
2024 年 12 月 4 日
让 反馈更加容易呗, 增加一个按钮,可以直接上传日志,或者发送邮件,邮件中携带附件。
jeesk
2024 年 12 月 4 日
按钮旁边的文字最好温柔点:

如果您有什么建议和反馈亲随时联系我们, 然后弹出界面,发送邮件或者反馈文字框。


别忘了表达感谢,xx 应用离不开用户的支持。
反馈让应用变得更加好用。
ChrisFreeMan
2024 年 12 月 4 日
@jeesk 感谢回复🙏目前的话反馈按钮隐藏在 macOS 顶部菜单栏的帮助栏里面,为了不影响界面整洁,我在考虑怎么引入到更合适免打扰的位置,我会加上那些感谢信息的。
skydcnmana
2024 年 12 月 4 日
单元测试啊,高覆盖的单元测试,每次修改时都跑一遍,就行了
importmeta
2024 年 12 月 4 日
学过软件工程这门课吗? 可以选择适合自己的软件工程测试阶段常用的测试方法和覆盖标准, 可以找找软件工程书籍看看, 大致看看就行了. 然后再结合 AI 与你的项目代码实践一下, 估计学个几天就差不多了.
importmeta
2024 年 12 月 4 日
一定要找一个适合你的覆盖标准来写或者生成测试用例, 我也在开发自己的项目, 我也写了好多测试, 我用的路径覆盖, 但是花了我大量的时间
donaldturinglee
2024 年 12 月 4 日
可以去了解一下 TDD
ChrisFreeMan
2024 年 12 月 4 日
@importmeta 感谢回复,这方面知识确实薄弱,非科班,我主要也是怕写测试太花时间,本来能专注写代码时间不多,我会了解一下,希望能找到平衡的方法。
sampeng
2024 年 12 月 5 日
不写单元测试就是这样了,单元测试的最大价值就是保证你改一处不会买一送一。你的担心是多余的,维护单元测试时间和你延长 release 时间没区别。而且吧,现有 ai 最大的辅助地点就是秒写几百行单元测试用例,改吧改吧就能用了。单元测试后补工作量巨大,我的建议是发现一个 bug ,把这个 bug 涉及的函数进行单元测试。但是,后加单元测试有个巨坑:你的代码大概率不适合单元测试,就要重构。从目前来看,可能最合适的就是 ui 的自动化集成测试比较适合。这样一来只需要对 ui 进行黑盒测试。只需要解决数据的先后关系就行了。比对虽有函数都单元测试工作量小多了。相当于你延长发布时间用来写 ui 的单元测试。相当于给自己请了个测试工程师
ChrisFreeMan
2024 年 12 月 5 日
@sampeng 感谢回复,我还没搞过 UI 自动化测试,看来是有必要了解一下

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

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

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

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

© 2021 V2EX