【论文阅读】HITS: High-coverage LLM-based Unit Test Generation via Method Slicing

在这里插入图片描述

HITS: High-coverage LLM-based Unit Test Generation via Method Slicing

1. 来源出处

本文是发表在2024年39th IEEE/ACM International Conference on Automated Software Engineering (ASE)上的论文。作者包括Zejun Wang, Kaiibo Liu, Ge Li和Zhi Jin,他们来自北京的PKU Key Lab of HCST (MOE)。

2. 先前方法存在的不足

2.1 大语言模型(LLMs)生成单元测试的局限性

尽管LLMs在生成Java项目单元测试方面表现出色,但在覆盖复杂方法时的性能较差。这些复杂方法通常包含许多条件和循环,需要测试用例足够多样以覆盖所有行和分支。然而,现有的基于LLM的测试生成方法没有提供输入分析的辅助,这使得LLM难以推断出覆盖所有条件的测试输入,从而导致遗漏行和分支。

2.2 现有工具的不足

例如,ChatUniTest是一个基于LLM的测试生成工具,但在测试复杂方法时表现不佳。实验结果显示,ChatUniTest在测试复杂方法时的行覆盖率和分支覆盖率显著下降。此外,Evosuite等传统基于搜索的软件测试(SBST)工具在处理复杂方法时也

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915873.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多模态大模型开启AI社交新纪元,Soul App创始人张璐团队亮相2024 GITEX GLOBAL

随着AI在全球范围内的加速发展和广泛应用,各行业纷纷在此领域发力。作为全球最大的科技盛会之一,2024年的GITEX GLOBAL将目光再次聚焦于人工智能的飞速发展,吸引了超过6700家来自各个领域的企业参与。在这样的背景下,Soul App作为国内较早将AI技术应用于社交领域的平台,首次亮相…

爬虫开发工具与环境搭建——使用Postman和浏览器开发者工具

第三节:使用Postman和浏览器开发者工具 在网络爬虫开发过程中,我们经常需要对HTTP请求进行测试、分析和调试。Postman和浏览器开发者工具(特别是Network面板和Console面板)是两种最常用的工具,能够帮助开发者有效地捕…

Zabbix中文监控指标数据乱码

1)点击主机,选择Zabbix server 中的 图形 一项,可以看到当前显示的为乱码 2) 下载字体文件: https://gitcode.com/open-source-toolkit/4a3db/blob/main/SimHei.zip 解压unzip -x SimHei.zip 3) 替换字体文…

HBase理论_HBase架构组件介绍

近来有些空闲时间,正好最近也在开发HBase相关内容,借此整理一下学习和对HBase组件的架构的记录和个人感受,付出了老夫不少心血啊,主要介绍的就是HBase的架构设计以及我的拓展内容。内容如有不当或有其他理解 matirx70163.com HB…

微信小程序自定义顶部导航栏(适配各种机型)

效果图 1.pages.js,需要自定义导航栏的页面设置"navigationStyle": "custom" 2.App.vue,获取设备高度及胶囊位置 onLaunch: function () {// 系统信息const systemInfo uni.getSystemInfoSync()// 胶囊按钮位置信息const menuButtonInfo uni.…

ArkTs简单入门案例:简单的图片切换应用界面

在鸿蒙 OS 应用开发的过程中,我们常常需要通过组合各种组件和编写相应的逻辑来实现丰富多样的功能。今天,我就来和大家详细解析一段实现简单图片切换功能的代码,希望能帮助到那些刚接触鸿蒙 OS 应用开发的朋友们。 一、代码导入部分 Entry …

【项目组件】第三方库——websocketpp

目录 第三方协议:websocket websocket简介 websocket特点 websocket协议切换 websocket协议格式段 websocketpp库介绍 endpoint server connection websocketpp库搭建服务器流程 基本框架实现 业务处理回调函数的实现 http_callback open_callback …

【手撕 Spring】 -- Bean 的创建以及获取

🌈手写简化版 Spring 框架:通过构建一个精简版的 Spring 框架,深入理解 Spring 的核心机制,掌握其设计思想,进一步提升编程能力 🌈项目代码地址:https://github.com/YYYUUU42/mini-Spring 如果该…

Jdbc学习笔记(四)--PreparedStatement对象、sql攻击(安全问题)

目录 (一)使用PreparedStatement对象的原因: 使用Statement对象编写sql语句会遇到的问题 ​编辑 (二)sql攻击 1.什么是sql攻击 2.演示sql攻击 (三)防止SQL攻击 1.PreparedStatement是什么 …

Jmeter中的定时器(二)

5--JSR223 Timmer 功能特点 自定义延迟逻辑:使用脚本语言动态计算请求之间的延迟时间。灵活控制:可以根据测试数据和条件动态调整延迟时间。支持多种脚本语言:支持 Groovy、JavaScript、BeanShell 等多种脚本语言。 支持的脚本语言 Groov…

【Istio】Istio原理

第一章 Istio原理 一、服务网格(servicemesh)1、六个时代2、服务网格定义及优缺点二、Istio1、Istio定义2、Istio安装3、Istio架构1.5版本之前1.5版本之后4、bookinfo案例架构部署5、CRD一、服务网格(servicemesh) 微服务:架构风格,职责单一,api通信 服务网格:微服务时代的…

4.远程访问及控制

SSH 简介: SSH(Secure Shell)协议是一种安全通道协议,对通信数据进行了加密处理,用于远程管理。 OpenSSH简介 OpenSSH 服务名称:sshd 服务端主程序:/usr/sbin/sshd 服务端配置文件&#xf…

精通rust宏系列教程-入门篇

Rust最令人敬畏和强大的特性之一是它使用和创建宏的能力。不幸的是,用于创建宏的语法可能相当令人生畏,并且对于新开发人员来说,这些示例可能会令人不知所措。我向你保证Rust宏非常容易理解,本文将为你介绍如何创建自己的宏。 什么…

设计模式之装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)

前言: 两个本想描述一样的意思的词,只因一字只差就让人觉得一个是好牛,一个好搞笑。往往我们去开发编程写代码时也经常将一些不恰当的用法用于业务需求实现中,但却不能意识到。一方面是由于编码不多缺少较大型项目的实践&#xff…

kubernetes简单入门实战

本章将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其访问 Namespace Namespace是k8s系统中一个非常重要的资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下,k8s集群中的所有的Pod都是可以相…

webpack5 + vue3 从零配置项目

前言 虽然在实际项目当中很少会从 0 到 1 配置一个项目,毕竟很多重复工作是没有必要的,脚手架将这些重复性的工作进行了整合,方便开发者使用。也正因如此,导致部分开发者过于依赖脚手架,却不清楚其内部的实现流程&…

Linux git-bash配置

参考资料 命令提示符Windows下的Git Bash配置,提升你的终端操作体验WindowsTerminal添加git-bash 目录 一. git-bash配置1.1 解决中文乱码1.2 修改命令提示符 二. WindowsTerminal配置git-bash2.1 添加git-bash到WindowsTerminal2.2 解决删除时窗口闪烁问题 三. VS…

(RK3566驱动开发 - 1).pinctrl和gpio子系统

一.设备树 pinctrl部分可以参考 rockchip 官方的绑定文档 :kernel/Documentation/devicetree/bindings/pinctrl PIN_BANK:引脚所属的组 - 本次例程使用的是 GPIO3_A1 这个引脚,所以所属的组为 3; PIN_BANK_IDX:引脚的…

基于OpenFOAM和深度学习驱动的流体力学计算与应用

在深度学习与流体力学深度融合的背景下,科研边界不断拓展,创新成果层出不穷。从物理模型融合到复杂流动模拟,从数据驱动研究到流场智能分析,深度学习正以前所未有的力量重塑流体力学领域。近期在Nature和Science杂志上发表的深度学…

uniapp设置tabBar高斯模糊并设置tabBar高度占位

1、设置tabBar高斯模糊 2、设置tabBar高度占位 (1)需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度(2)在全局样式文件/uview-ui/libs/css/style.vue.scss中定义一个全局样式 3、在需…