中文

COCO:通过具体化指令测试代码生成系统

软件工程 2023-08-28 v1

摘要

近年来,代码生成系统被广泛开发,以基于自然语言指令生成源代码。然而,尽管取得了进展,这些系统仍面临鲁棒性问题:即便指令略有不同,也可能导致代码语义显著不同。鲁棒性对代码生成系统至关重要,因为它会对软件开发、软件质量以及对生成代码的信任产生重大影响。尽管现有的通用文本到文本软件测试技术能发现部分鲁棒性问题,但由于忽略了代码生成系统的特性,其效果有限。在本工作中,我们提出一种新技术COCO来测试代码生成系统的鲁棒性。它利用代码生成系统的使用场景,通过融入已知包含于原代码中的特征,使原始编程指令更加具体。鲁棒的系统应对具体化指令保持代码语义,而当未保持时,COCO即检测出鲁棒性不一致。我们在八个先进的代码生成系统(包括Copilot和ChatGPT等商业工具)上,使用两个广泛采用的数据集对COCO进行了评估。结果表明COCO在测试代码生成系统鲁棒性方面行之有效,分别比两种源自通用文本到文本软件测试的技术高出466.66%和104.02%。此外,由COCO生成的具体化指令可通过微调将鲁棒性不一致降低18.35%至53.91%。

关键词

引用

@article{arxiv.2308.13319,
  title  = {COCO: Testing Code Generation Systems via Concretized Instructions},
  author = {Ming Yan and Junjie Chen and Jie M. Zhang and Xuejie Cao and Chen Yang and Mark Harman},
  journal= {arXiv preprint arXiv:2308.13319},
  year   = {2023}
}