中文

揭开正则表达式缺陷的迷雾:关于正则表达式缺陷成因、修复与测试的综合研究

软件工程 2021-04-21 v1

摘要

正则表达式会引发字符串相关缺陷,并带来面向DOS攻击的安全漏洞。然而,除ReDoS(正则表达式拒绝服务)外,人们对于正则表达式问题在多大程度上影响软件开发、以及这些问题在实践中如何被解决知之甚少。我们对来自Apache、Mozilla、Facebook与Google的GitHub仓库中356个已合并的正则表达式相关拉取请求缺陷进行了实证研究。我们识别并分类了正则表达式问题的性质、修复方式以及测试代码中的相关改动。本文最重要的发现如下:1) 不正确的正则表达式行为是正则表达式缺陷的主导性根因(165/356,46.3%)。其余根因为不正确的API使用(9.3%)以及修复中需要改动正则表达式的其他代码问题(29.5%);2) 修复正则表达式缺陷并非易事,与一般性拉取请求相比,修复它们需要更长时间与更多代码行;3) 大多数(51%)正则表达式相关拉取请求不包含测试代码改动。某些正则表达式缺陷类型(例如编译错误、性能问题、正则表示)比其他类型更不可能包含测试代码改动;4) 正则表达式相关拉取请求中测试代码改动的主导类型是测试用例增补(75%)。本研究的结果有助于更广泛地理解开发者在使用、修复与测试正则表达式时所面临的实际问题。

关键词

引用

@article{arxiv.2104.09693,
  title  = {Demystifying Regular Expression Bugs: A comprehensive study on regular expression bug causes, fixes, and testing},
  author = {Peipei Wang and Chris Brown and Jamie A. Jennings and Kathryn T. Stolee},
  journal= {arXiv preprint arXiv:2104.09693},
  year   = {2021}
}