No More Manual Tests Evaluating and Improving ChatGPT for Unit Test Generation
No More Manual Tests? Evaluating and Improving ChatGPT for Unit Test GenerationABSTRACT摘要—单元测试在检测功能独立的程序单元(例如,方法)中的错误中发挥着重要作用。手工编写高质量的单元测试既耗时又劳累。尽管传统技术能够生成覆盖率合理的测试,但它们显示出低可读性,实际上还不能被开发者直接采用。最近的研究显示,大型语言模型(LLMs)在单元测试生成中具有很大潜力。通过预训练在大量开发者编写的代码库上,这些模型能够生成更加人性化和有意义的测试代码。ChatGPT,作为最新的LLM,进一步融合了指令调优和强化学习,已在各种领域表现出卓越的性能。迄今为止,ChatGPT在单元测试生成中的有效性仍不明确。
在这项工作中,我们进行了第一次实证研究来评估ChatGPT生成单元测试的能力。特别是,我们进行了量化分析和用户研究,系统地调查了其生成测试的质量,包括正确性、充分性、可读性和可用性。我们发现ChatGPT生成的测试仍存在正确性问题,包括各种编译错误和执行失败(主要由不正确的断言引起);但是,通过ChatGPT ...
深度洞察 |关于JavaScript开源生态中安全漏洞的研究
深度洞察 |关于JavaScript开源生态中安全漏洞的研究NPMNpm模块安装机制如何?
NPM模块安装
官方的一些漏洞修复工具: npm audit 和 Dependabot
[1] PLUMBER: Boosting the Propagation of Vulnerability Fixes in the npm Ecosystem 2023 TSE
论文详解:https://linli1724647576.github.io/2023/03/04/PLUMBER/
Keyinsight:文章解决的主要问题是npm生态系统中漏洞修复传播的延迟。尽管60.6%的包在发现漏洞后及时发布了修复版本,工具如npm audit和Dependabot被推出以提醒依赖于有漏洞包版本的项目,但在漏洞修复在npm生态系统中的传播仍然存在严重滞后。通过调查,发现20%的活跃npm包通过依赖关系引入了漏洞,尽管涉及的有漏洞包已经发布了修复版本超过一年。
keyinsight: 1、识别阻塞包以及总结了一些修复模式 (生态系统端的检测和修复)
[2] Demystifying the vul ...
Detecting Logic Bugs in Graph Database Management Systems via Injective and Surjective Graph Query Transformation
Detecting Logic Bugs in Graph Database Management Systems via Injective and Surjective Graph Query Transformation开源代码: https://github.com/YuanchengJiang/GraphGenie
Basic Information:
Title: Detecting Logic Bugs in Graph Database Management Systems via Injective and Surjective Graph Query Transformation (通过单射和满射图查询转换检测图数据库管理系统中的逻辑错误)
Authors: Yuancheng Jiang, Jiahao Liu, Jinsheng Ba, Roland H.C. Yap, Zhenkai Liang, and Manuel Rigger
Affiliation: National University of Singapore (新加坡国立大学)
Keywor ...
Finding Bugs in Gremlin-Based Graph Database Systems via Randomized Differential Testing
Finding Bugs in Gremlin-Based Graph Database Systems via Randomized Differential TestingBasic Information:
Title: Finding Bugs in Gremlin-Based Graph Database Systems via Randomized Differential Testing (通过随机差异测试在基于Gremlin的图数据库系统中发现错误)
Authors: Yingying Zheng, Wensheng Dou, Yicheng Wang, Zheng Qin, Lei Tang, Yu Gao, Dong Wang, Wei Wang, and Jun Wei
Affiliation: State Key Lab of Computer Science at ISCAS, University of CAS, China (中国科学院计算技术研究所)
Keywords: Graph database systems, differential testi ...
Detecting Logic Bugs of Join Optimizations in DBMS
Detecting Logic Bugs of Join Optimizations in DBMSBasic Information:
Title: Detecting Logic Bugs of Join Optimizations in DBMS (在DBMS中检测连接优化的逻辑错误)
Authors: XIU TANG, SAI WU, DONGXIANG ZHANG, FEIFEI LI, GANG CHEN
Affiliation: Zhejiang University, China (中国浙江大学)
Keywords: Database, logic bug, join optimization
URLs: Paper , [GitHub: None]
论文简要 :
本文提出了一种新的测试框架TQS,用于检测涉及多表连接的查询中的逻辑错误。通过数据引导的模式和查询生成以及知识引导的查询空间探索,TQS在四个流行的DBMS上成功检测到了115个连接优化的逻辑错误。
背景信息:
论文背景: 过去的研究表明,基于生成的测试技术在检测DBMS的逻辑错误方面具有有效性,而这些 ...
Testing Database Systems via Differential Query Execution
Testing Database Systems via Differential Query ExecutionBasic Information:
Title: Testing Database Systems via Differential Query Execution (通过差异查询执行测试数据库系统)
Authors: Jiansen Song, Wensheng Dou, Ziyu Cui, Qianwang Dai, Wei Wang, Jun Wei, Hua Zhong, Tao Huang
Affiliation: State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences; University of Chinese Academy of Sciences; Nanjing College; Nanjing Institute of Software Technology
Keywords: Database system, DBM ...
DynSQL: Stateful Fuzzing for Database Management Systems with Complex and Valid SQL Query Generation
DynSQL: Stateful Fuzzing for Database Management Systems with Complex and Valid SQL Query GenerationBasic Information:
Title: DynSQL: Stateful Fuzzing for Database Management Systems with Complex and Valid SQL Query Generation (DynSQL: 基于状态的模糊测试用于具有复杂和有效SQL查询生成的数据库管理系统)
Authors: Zu-Ming Jiang, Jia-Ju Bai, Zhendong Su
Affiliation: ETH Zurich (Zu-Ming Jiang), Tsinghua University (Jia-Ju Bai), ETH Zurich (Zhendong Su)
Keywords: database management systems, fuzzing, SQL query generation, stateful fu ...
Detecting Logical Bugs of DBMS with Coverage-based Guidance
Detecting Logical Bugs of DBMS with Coverage-based GuidanceBasic Information:
Title: Detecting Logical Bugs of DBMS with Coverage-based Guidance (使用基于覆盖率的引导检测DBMS的逻辑错误)
Authors: Yu Liang, Song Liu, Hong Hu
Affiliation: Pennsylvania State University (宾夕法尼亚州立大学)
Keywords: DBMS, logical bugs, coverage-based guidance, validity-oriented mutations, oracles (DBMS, 逻辑错误, 基于覆盖率的引导, 有效性导向的变异, 神谕)
URLs: Paper, GitHub Code
论文简要 :结构脉络大概如下:
引言:介绍了数据库管理系统(DBMS)的重要性和逻辑错误的危害,回顾了现有的检测逻辑错误的技术,如Oracle和覆盖率引导的模糊测试, ...
Squirrel Testing Database Management Systems withLanguage Validity and Coverage Feedback--对于DBMS的模糊测试技术介绍
Squirrel Testing Database Management Systems withLanguage Validity and Coverage Feedback——对于DBMS的模糊测试技术介绍数据库管理系统(DataBase Management System)与其他的大型复杂系统一样,存在着许多漏洞。 其 中的内存错误漏洞往往可能导致远程代码执行、数据泄露、拒绝服务攻击等。 由于数据库管理系统的重要性,这些攻击的影响往往十分重大。 本文将基于 Squirrel [1] 这篇文章,来介绍对于 DBMS 的模糊测试技术。 简单来说,对于 DBMS 的模糊测试的目标是找到一些 SQL 语句,将其输入到 DBMS 后会触发 DBMS 的异常行为(一般是崩溃)。
DBMS 在接收到一条 SQL 查询语句的时候,会依次进行词法分析、语法分析(上图中的 parse)、语义检查(validation)、语句优化和执行(optimization & execution)等流程。在词法分析阶段,DBMS 会识别 SQL 语句中的关键字、标识符等记号(token),然后在语法分 ...
LearnedSQLGen Constraint-aware SQL Generation using Reinforcement Learning
d9eba399523fe401e434f6396d459a7a735596707e1aa1664e34b3a934e193fbdb80fe50c533135c8471d55cad6aeab7aef889d3fefe218831e4e18066cde6fe1a75acb0b094125da698085a699febe1312d7c3b222b1cb6c6888ee829afc95d345381a1b586e0fec5fe281cb3b4009b8a0b36491d562836cb685e74fa465909a30d2f0ebfc7339aee1a69d1ea8fd9329786a3ed9bb96e181f7c32275a194a44404bfaa730c1037db70c890d8ae2bead988b8ab5bc68e853c762b0f4b77cad2c1f0abb0333e4928ae6f5e99883bcc3911e6ec6ddd3ddc023807804a9c6c5c82b73738e9cce0ca89cd53b60dbc5d1cd8640ab2d5802333d72b ...