当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
JEST:JavaScript引擎和规范的N + 1版本差异测试
arXiv - CS - Software Engineering Pub Date : 2021-02-15 , DOI: arxiv-2102.07498
Jihyeok Park, Seungmin An, Dongjun Youn, Gyeongwon Kim, Sukyoung Ryu

现代编程遵循连续集成(CI)和连续部署(CD)方法,而不是传统的瀑布模型。即使是现代编程语言的开发,也使用CI / CD方法迅速提供新的语言功能并适应新的开发环境。与传统方法不同,在现代CI / CD方法中,语言规范不再是语言语义的预言,因为规范及其实现可以共同发展。在这种设置下,规范和实现都可能有错误,并且保证其正确性是不平凡的。在本文中,我们提出了一种新颖的N + 1版本差分测试来解决该问题。与传统的差异测试不同,我们的方法包括三个步骤:1)自动根据给定语言规范的语法和语义指导合成程序,2)通过将断言注入到合成程序中以检查其最终程序状态来生成一致性测试,3)通过执行来检测规范和实现中的错误多个实现的一致性测试,以及4)使用统计信息来定位规范上的错误。我们通过JEST实现了JavaScript编程语言的方法,该方法对现代JavaScript引擎和ECMAScript执行了N + 1版本的差异测试,该语言规范描述了自然语言中JavaScript的语法和语义。我们使用支持所有现代JavaScript语言功能和最新版本的ECMAScript(ES11,2020)的四个JavaScript引擎对JEST进行了评估。JEST自动合成了1,700个程序,这些程序覆盖了ES11的97.78%的语法和87.70%的语义。通过使用断言注入,它检测到四个引擎中的44个引擎错误和ES11中的27个规范错误。



"点击查看英文标题和摘要"

更新日期:2021-02-16
down
wechat
bug