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

19 小时 45 分钟前
 ChrisFreeMan

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

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

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

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

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

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


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

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

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

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

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

© 2021 V2EX