Formal modelling is a powerful tool for developing complex systems. At MongoDB, we use TLA+ to model and verify multiple aspects of several systems. Ensuring conformance between a specification and its implementation can add value to any specification; it can avoid transcription errors, prevent bugs as a large organization rapidly develops the specified code, and even keep multiple implementations of the same specification in sync. In this paper, we explore model-based testing as a tool for ensuring specification-implementation conformance. We attempted two case studies: model-based trace-checking (MBTC) in the MongoDB Server's replication protocol and model-based test-case generation (MBTCG) in MongoDB Realm Sync's operational transformation algorithm. We found MBTC to be impractical for testing that the Server conformed to a highly abstract specification. MBTCG was highly successful for Realm Sync, however. We analyze why one technique succeeded and the other failed, and advise future implementers making similar attempts at model-based testing.


翻译:正式建模是开发复杂系统的有力工具。 在MongoDB, 我们使用 TLA+ 来建模和验证多个系统的多个方面。 确保规格及其执行的一致可以增加任何规格的价值; 它可以避免抄录错误, 防止作为大型组织错误的错误迅速开发指定代码, 甚至保持同一规格的多重执行同步。 在本文中, 我们探索基于模型的测试作为确保规格与执行相符的工具。 我们尝试了两个案例研究: 在MongoDB服务器的复制协议中基于模型的微量检查(MBTC)和在MOngoDB Realm Sync的操作变异算法中基于模型的立体生成(MBTCG ) 。 我们发现MBTC在测试服务器是否符合非常抽象的规格时不切实际。 但是, MBTCG 在 Realm Sync 中非常成功。 我们分析了一种技术为什么成功, 而另一种技术失败了, 我们建议未来的实施者在模型测试中进行类似的尝试 。

0
下载
关闭预览

相关内容

因果图,Causal Graphs,52页ppt
专知会员服务
238+阅读 · 2020年4月19日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
56+阅读 · 2019年10月17日
【深度学习视频分析/多模态学习资源大列表】
专知会员服务
90+阅读 · 2019年10月16日
强化学习最新教程,17页pdf
专知会员服务
167+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
Transferring Knowledge across Learning Processes
CreateAMind
25+阅读 · 2019年5月18日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
【推荐】Python机器学习生态圈(Scikit-Learn相关项目)
机器学习研究会
6+阅读 · 2017年8月23日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Learning in the Frequency Domain
Arxiv
11+阅读 · 2020年3月12日
Adversarial Metric Attack for Person Re-identification
Arxiv
3+阅读 · 2018年4月5日
Arxiv
9+阅读 · 2018年3月28日
VIP会员
相关VIP内容
因果图,Causal Graphs,52页ppt
专知会员服务
238+阅读 · 2020年4月19日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
56+阅读 · 2019年10月17日
【深度学习视频分析/多模态学习资源大列表】
专知会员服务
90+阅读 · 2019年10月16日
强化学习最新教程,17页pdf
专知会员服务
167+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
相关资讯
Transferring Knowledge across Learning Processes
CreateAMind
25+阅读 · 2019年5月18日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
强化学习的Unsupervised Meta-Learning
CreateAMind
17+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
分布式TensorFlow入门指南
机器学习研究会
4+阅读 · 2017年11月28日
【推荐】自然语言处理(NLP)指南
机器学习研究会
35+阅读 · 2017年11月17日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
【推荐】Python机器学习生态圈(Scikit-Learn相关项目)
机器学习研究会
6+阅读 · 2017年8月23日
Auto-Encoding GAN
CreateAMind
7+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员