Model-Based Testing for Dungeons & Dragons
4 days ago
- #Dungeons & Dragons
- #Model-Based Testing
- #Formal Specification
- 文章详细介绍了《龙与地下城》一个正式模型从单一生物扩展到战斗交互的过程,重点关注复杂机制如反制法术链、护盾术和传奇抗性。
- 它解释了攻击过程中的中断链,包含多个阶段(命中判定、伤害计算、施法、豁免检定),这些阶段可能改变结果并产生游戏状态的分支。
- 该规范对确定性机制进行建模,同时将非确定性方面(如掷骰、掩蔽判定、借机攻击触发)留作调用者提供的输入,以适应不同的游戏风格。
- 基于模型的测试在规范和实现中均发现了缺陷,如参数顺序错误、不变量违反和状态同步问题,这些问题常常被单元测试遗漏。
- 该项目采用一个质量保证流程,通过抓取社区问答条目并将其转化为断言,来测试规范是否符合实际规则解读和边界情况。
- 该规范包含62条安全不变量,这些性质在所有可达状态中均被证明成立,而不仅仅是随机输入测试,确保了如生命值限制等属性普遍有效。
- 基于SRD 5.2.1(以CC-BY-4.0发布)构建,该架构允许在不修改核心规范的情况下添加非SRD内容,并且该模型可以验证任何语言的实现。
- 该方法适用于其他具有正式规则和组合交互的领域,如金融法规或协议实现。