北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率

简介: 【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。

最近,北京大学的李戈团队在人工智能领域取得了一项重要突破。他们提出了一种名为HITS(High-coverage LLM-based Unit Test Generation via Method Slicing)的新方法,用于生成大型语言模型(LLM)的单元测试。这一方法显著提升了代码测试的覆盖率,为软件开发和测试领域带来了新的希望。

HITS方法的核心思想是将待测方法分解为多个切片,然后使用大型语言模型逐个生成测试用例。这种分而治之的策略有效地简化了分析的复杂性,使得大型语言模型能够更好地理解和覆盖每个切片中的代码逻辑。相比于传统的测试生成方法,HITS能够更有效地处理复杂方法,从而提高测试的覆盖率。

为了验证HITS方法的有效性,李戈团队进行了一系列的实验。他们选择了十个开源项目作为测试对象,并使用HITS与当前最先进的测试生成工具进行了比较。实验结果表明,HITS在代码覆盖率方面显著超过了其他工具,尤其是在处理复杂方法时。这一结果表明,HITS方法具有很大的潜力,可以成为未来软件测试领域的重要工具。

然而,HITS方法也存在一些局限性。首先,它依赖于大型语言模型的能力,因此对于一些规模较小或复杂度较低的项目,可能无法充分发挥其优势。其次,HITS方法的实现和优化需要一定的技术门槛,对于一些小型团队或个人开发者来说,可能不太容易上手。

尽管如此,HITS方法的提出仍然具有重要的意义。它不仅为软件测试领域带来了新的思想和方法,而且为大型语言模型在实际应用中的应用提供了新的思路。相信随着技术的不断进步和完善,HITS方法将能够克服自身的局限性,在更多的场景中发挥作用,为软件开发和测试领域带来更多的创新和变革。

论文地址:https://www.arxiv.org/pdf/2408.11324

目录
相关文章
|
13天前
|
测试技术 API 项目管理
API测试方法
【10月更文挑战第18天】API测试方法
26 1
|
30天前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
53 1
|
11天前
|
测试技术 UED
软件测试中的“灰盒”方法:一种平衡透明度与效率的策略
在软件开发的复杂世界中,确保产品质量和用户体验至关重要。本文将探讨一种被称为“灰盒测试”的方法,它结合了白盒和黑盒测试的优点,旨在提高测试效率同时保持一定程度的透明度。我们将通过具体案例分析,展示灰盒测试如何在实际工作中发挥作用,并讨论其对现代软件开发流程的影响。
|
3天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
8 2
|
17天前
|
设计模式 关系型数据库 测试技术
进阶技巧:提高单元测试覆盖率与代码质量
【10月更文挑战第14天】随着软件复杂性的不断增加,确保代码质量的重要性日益凸显。单元测试作为软件开发过程中的一个重要环节,对于提高代码质量、减少bug以及加快开发速度都有着不可替代的作用。本文将探讨如何优化单元测试以达到更高的测试覆盖率,并确保代码质量。我们将从编写有效的测试用例策略入手,讨论如何避免常见的测试陷阱,使用mocking工具模拟依赖项,以及如何重构难以测试的代码。
45 4
|
18天前
|
人工智能 前端开发
大模型体验体验报告:OpenAI-O1内置思维链和多个llm组合出的COT有啥区别?传统道家理论+中学生物理奥赛题测试,名不虚传还是名副其实?
一个月前,o1发布时,虽然让人提前体验,但自己并未进行测试。近期终于有机会使用,却仍忘记第一时间测试。本文通过两个测试案例展示了o1的强大能力:一是关于丹田及练气的详细解答,二是解决一道复杂的中学生物理奥赛题。o1的知识面广泛、推理迅速,令人印象深刻。未来,或许可以通过赋予o1更多能力,使其在更多领域发挥作用。如果你有好的测试题,欢迎留言,一起探索o1的潜力。
|
18天前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
|
25天前
|
机器学习/深度学习 测试技术
ACL杰出论文奖:GPT-4V暴露致命缺陷?JHU等发布首个多模态ToM 测试集,全面提升大模型心智能力
【10月更文挑战第6天】约翰斯·霍普金斯大学等机构提出了一项荣获ACL杰出论文奖的研究,旨在解决大模型在心智理论(ToM)上的不足。他们发布了首个MMToM-QA多模态ToM测试集,并提出BIP-ALM方法,从多模态数据中提取统一表示,结合语言模型进行贝叶斯逆规划,显著提升了模型的ToM能力。这一成果为机器与人类自然交互提供了新思路,尽管仍面临一些局限性和技术挑战。论文详情见:https://arxiv.org/abs/2401.08743。
39 6
|
23天前
|
测试技术 Python
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
本文介绍了使用Python的unittest框架来加载测试用例的四种方法,包括通过测试用例类、模块、路径和逐条加载测试用例。
48 0
自动化测试项目学习笔记(三):Unittest加载测试用例的四种方法
|
23天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
44 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法