Page 16 - 《软件学报》2026年第7期
P. 16

赵英全 等: 基于大语言模型的        Java 新特性测试程序生成                                           2701


                 常会包含展示新特性典型使用方法的代码示例, 这对于生成高质量、真实有效的新特性代码片段至关重要.

                              JEP 126: Lambda Expressions & Virtual Extension Methods   标题
                              …
                              Release 8                                              版本信息
                              Component tools / javac
                               Summary
                               Add lambda expressions (closures) and supporting features, including method references,
                               enhanced type inference, and virtual extension methods, to the Java programming  总结
                               language and platform…
                              Motivation
                              …
                              A prototypical example of the internal iteration style is a sequence of filter-map-reduce
                              operations such as:
                                                                                        动机
                              int maxFooWeight =
                                collection.filter ( /* isFoo Predicate as a lambda */)
                                    .map ( /* Map a Foo to its weight with a lambda */)
                                    .max (); /* Reduction step */…
                               Description
                               The in-progress OpenJDK project page for Project Lambda and corresponding JSR have the most  描述
                               up-to-date information about the details of the effort…
                               Goals  Non-Goals  Alternatives  Testing  Risks and Assumptions  Dependences  Impact
                                                 图 3 JEP 126  提案内容示例

                    然而, 直接将完整的      JEP  描述文本输入大模型进行处理, 往往会面临两个挑战: 一方面, JEP                 中包含大量背景
                 性、实现性或非关键性的信息, 容易干扰大模型对测试重点的识别, 削弱生成结果对目标语言特性的聚焦程度, 从
                 而影响测试的有效性; 另一方面, JEP         文本通常篇幅较长, 直接传入会显著增加             Token  消耗, 造成计算资源的浪费,
                 进而降低测试的效率. 因此, 有必要对          JEP  内容进行精炼和结构化处理, 过滤掉与目标无关的信息, 确保大模型能
                 够聚焦于被测语言特性本身. 为此, LumiX          充分利用大模型在自然语言理解与压缩方面的能力, 对                  Java 语言中新
                 引入特性的使用方式进行提炼与总结, 生成高度浓缩的使用描述, 从而在保证信息完整性的前提下显著提升测试
                 任务的针对性与效率. 具体来说, LumiX         设计了一套针对       JEP  解析的大模型提示词模板, 用于自动提取并总结对
                 JEP  的使用描述. 为了最大程度地保障提取信息的准确性和一致性, LumiX                  采用提示词工程 (prompt engineering)
                 中的常用实践方法, 系统化地构造提示词的不同要素, 包括角色设定、任务描述、提案内容以及输出格式的定义.
                 以此引导大模型正确、高效地理解            JEP, 并总结出新特性的使用描述, 为后续代码生成任务提供参考.
                    图  4  展示了  LumiX  生成新特性使用的总结提示词示例. 在该示例中, LumiX            首先将大模型设定为精通自然语
                 言处理, 编程语言以及软件工程的角色, 以确保大模型能够从专业的角度出发, 准确地捕获                           JEP  中的关键信息. 现
                 有研究表明    [37] , 合理的角色设定能够有效提升大模型的任务完成质量, 使其在特定的任务中表现更加出色. 通过
                 赋予其专家身份, 可以引导大模型用更精确的术语总结                  JEP  使用描述, 减少无关信息的干扰. 其次, LumiX        在提示
                 词中明确指定具体的任务, 即总结           JEP  中的新特性使用描述, 并强调总结的内容将用于后续的代码生成任务. 最
                 后, 为了确保总结结果的结构化和可用性, LumiX           定义了严格的输出格式, 输出内容包括新特性的标题、发布版本、
                 描述以及示例代码等信息.

                                 角色设定:    You are an expert in natural language processing, programming language theory, and
                                          software engineering with large-scale language models.
                                 任务描述:    Parse Java Enhancement Proposal (JEP) documents and extract key information about new
                                          language features, synthesize proposal information, and form a structured summary
                                          suitable for program generation tasks.
                                 提案内容:    “JEP 126: Lambda Expressions & Virtual Extension Methods…”

                                 输出格式:    Extract the key points and return them in JSON, for example: “…”

                                               图 4 JEP 126  提案总结提示词示例
   11   12   13   14   15   16   17   18   19   20   21