MiMIs: Simple, Efficient, and Fast Bounded-Exhaustive Test Case Generators

Kyle Dewey, Shant Hairapetian, M. Gavrilov
{"title":"MiMIs: Simple, Efficient, and Fast Bounded-Exhaustive Test Case Generators","authors":"Kyle Dewey, Shant Hairapetian, M. Gavrilov","doi":"10.1109/icst46399.2020.00016","DOIUrl":null,"url":null,"abstract":"Bounded-exhaustive test case generators are important bug-finding tools, epitomized with tools like Korat, UDITA, and SciFe. All such tools are practically limited by scale; a given testing problem may be too large to generate all tests within reasonable time, or prohibitive amounts of memory may be required for this generation. The tools themselves may have lengthy implementations which hide their own bugs, or they may require users to familiarize themselves with many operations. In this paper, we strive to push the boundaries of what test case generators can scale to, while preserving a simple implementation and user interface. To this end, we introduce a novel programming abstraction: Memoized Monadic Iterators (MiMIs). MiMIs combine the disparate ideas of ASTGen’s iterators, LogicT’s additive monad interface, and SciFe’s memoization into a single coherent programming abstraction. Our evaluation shows that MiMIs are typically faster than the state of the art with orders of magnitude less memory used, and that MiMIs overall scale better to big testing problems than any competitor. Thanks to their fundamental design, MiMIs are implemented in under 200 LOC (compared to thousands with most competitors), and require users to familiarize themselves with collectively only 7 operations and types (less than half as many as the state of the art), all without sacrificing generator conciseness.","PeriodicalId":235967,"journal":{"name":"2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST)","volume":"303 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE 13th International Conference on Software Testing, Validation and Verification (ICST)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/icst46399.2020.00016","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Bounded-exhaustive test case generators are important bug-finding tools, epitomized with tools like Korat, UDITA, and SciFe. All such tools are practically limited by scale; a given testing problem may be too large to generate all tests within reasonable time, or prohibitive amounts of memory may be required for this generation. The tools themselves may have lengthy implementations which hide their own bugs, or they may require users to familiarize themselves with many operations. In this paper, we strive to push the boundaries of what test case generators can scale to, while preserving a simple implementation and user interface. To this end, we introduce a novel programming abstraction: Memoized Monadic Iterators (MiMIs). MiMIs combine the disparate ideas of ASTGen’s iterators, LogicT’s additive monad interface, and SciFe’s memoization into a single coherent programming abstraction. Our evaluation shows that MiMIs are typically faster than the state of the art with orders of magnitude less memory used, and that MiMIs overall scale better to big testing problems than any competitor. Thanks to their fundamental design, MiMIs are implemented in under 200 LOC (compared to thousands with most competitors), and require users to familiarize themselves with collectively only 7 operations and types (less than half as many as the state of the art), all without sacrificing generator conciseness.
mimi:简单、高效、快速的有界穷举测试用例生成器
有界穷举测试用例生成器是重要的bug查找工具,以Korat、UDITA和SciFe等工具为代表。所有这些工具实际上都受到规模的限制;给定的测试问题可能太大,无法在合理的时间内生成所有测试,或者可能需要大量的内存来生成测试。这些工具本身可能有冗长的实现,隐藏了它们自己的缺陷,或者它们可能需要用户熟悉许多操作。在本文中,我们努力推动测试用例生成器可以扩展到的边界,同时保持简单的实现和用户界面。为此,我们引入了一种新的编程抽象:记忆一元迭代器(MiMIs)。mimi将ASTGen的迭代器、LogicT的加性单接口和SciFe的记忆等不同的思想结合到一个统一的编程抽象中。我们的评估表明,mimi通常比目前的技术更快,使用的内存要少几个数量级,而且总的来说,mimi比任何竞争对手都更适合大型测试问题。由于它们的基本设计,mimi在200 LOC以下实现(与大多数竞争对手的数千LOC相比),并且要求用户熟悉总共只有7种操作和类型(不到现有技术的一半),所有这些都不会牺牲生成器的简洁性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信