您好,Discourse 社区! ![]()
我一直在从事一项名为 Colimit 的技术工作,该技术可以帮助人们将 基于模型的测试 应用于测试他们的 Web/浏览器/DOM 前端、API 后端,甚至 ORM 模型或视图模型。如果您不熟悉这个概念,您基本上可以定义一个关于您的应用程序应该做什么的高级规范,其中包含可以执行的可能操作,然后从中获得成百上千个有效用户操作序列(即用户流程),这些序列可以智能地遍历广阔的可能性状态空间,并发现与手动编写的测试用例相比难以触及的 bug。
我刚刚完成了在小型示例上使用 Colimit 的阶段,并认为 Discourse 可能是一个很好的候选对象,可以在其上进行尝试,因为它既是一个在生产环境中运行的复杂应用程序,又是一个完全开源的项目,便于进行修改。有趣的是,Colimit 以一种抽象的方式编写,因此您可以通过编写适配器来重用相同的规范/模型,以执行不同风格的测试,例如通过 gem 进行 Discourse API 测试,与使用 Capybara 进行集成测试,以及使用 Puppeteer 进行冒烟测试等。
在开始之前,我想知道 Discourse 社区中是否有人能想到应用程序中目前存在重大 bug 或覆盖率较低的领域,可以更有价值地集中精力进行测试?
另外,仅仅是出于好奇,我将非常感谢社区中那些认为这听起来很有趣并且看到了测试 Discourse 项目的潜在价值的人的回复,或者如果大家的观点是目前的测试状态已经足够好(在这种情况下,通过用模型自动生成的测试替换手动编写的测试,仍然至少具有可能的维护价值)。
谢谢!