写点什么

利用生成式 AI 的产研流程:创新与效率的完美结合

作者:之家技术
  • 2023-11-14
    北京
  • 本文字数:4617 字

    阅读完需:约 15 分钟

利用生成式AI的产研流程:创新与效率的完美结合

1 背景和目标

生成式 AI(Generative AI)是一类人工智能技术,旨在生成新的、原创的数据、图像、音频、视频或其他形式的内容。它通过机器学习算法来学习和模拟现实世界中的数据分布,然后使用这些模型来生成新的、具有相似特征的数据。比如,在软件开发领域,生成式 AI 可以自动化代码生成、协助开发人员理解和修改代码、改善代码质量、提升软件可靠性、快速构建原型等。二手车技术团队通过紧跟业界的新趋势结合自身需求,成功地将生成式 AI 整合到产品研发的工作流程中。技术团队采用生成式 AI,显著减少了繁琐低效的工作量,并且极大地提高了自动化程度和准确性。通过将生成式 AI 应用于产品研发的全过程,团队实现了质量和效率的双提升。这不仅提高了产品的性能和可靠性,而且加快了软件研发的时间,满足了业务侧的更高需求。此外,通过生成式 AI 的应用还降低了产品的研发成本,提高了团队的竞争力。二手车技术团队的成功经验表明,将行业新技术整合到产品研发的工作流程中是实现质量和效率双提升的重要途径。

2 问题与挑战

生成式 AI 由于上下文信息不足、无法理解或捕捉到复杂的语言结构和逻辑、知识缺失等原因,可能会导致生成式 AI 在生成过程中出现偏差或错误,生成的结果与预期可能存在一定的差异。为了减少这种差异,在实践过程中需要解决几个核心问题:意图精确输出:明确告知模型所需关注的特定方面或要求,以便减少模型输出的偏差和不稳定性。复杂问题处理:由于模型对话长度有限制,为了克服这种限制,我们将较复杂的任务分解成多个子任务,充分利用模型的能力来处理各个子任务,提高了任务处理的质量和效率。同时拆解的任务可以实现并行处理,从而优化了资源分配和任务执行计划。领域知识补充:通过补充产品文档内容和领域专业知识,AI 可以更好地理解复杂的业务规则和业务需求,从而提高生成内容的准确度。

3 探索和实践

3.1 产研 AI 伴随 MVP 构建

通过以产品文档为核心、测试用例为基础,并结合 AI 的辅助,我们能够更快速地完成需求的理解和测试用例的生成,确保开发过程中的一致性和准确性。这样可以大大提高研发过程的效率和质量,进一步推动产品的成功开发和交付。在二手车技术部,已经基本完成 AI 伴随 MVP 构建。

产品知识查询:通过产品知识整合并向量化存储,结合 LLM 帮助用户回答有关产品的问题。需求质量评估:根据已有的需求文档,分析评估其质量,并给出反馈和改进建议。需求内容完善:基于现有需求文档,生成式 AI 可以生成补充信息,完善和细化需求内容。测试用例生成:根据给定的需求文档和规范,自动生成一系列测试用例,覆盖各种可能情况,提高测试效率和用例覆盖度。测试脚本生成:自动根据测试用例和测试框架要求,生成相应的测试脚本,减少手动编写测试脚本的工作量。单测代码生成:根据需求和规范,自动生成针对单个模块或函数的测试代码,验证其正确性和稳定性。开发代码生成:基于需求规范和设计要求,生成式 AI 可以自动生成部分开发代码,加快开发速度,减少重复工作。需求文档管理:提供需求文档的存储、搜索和版本控制功能,方便用户管理和跟踪需求变更。测试用例管理:提供测试用例的归档、分类和检索功能,帮助用户组织和管理测试用例,提高测试效率。Prompt 库管理:提供一个 Prompt 库,方便用户在需要时快速找到并选择合适的 Prompt,以引导生成式 AI 生成期望的输出结果。

3.2 产研 AI 技术实现

产研 AI 整个流程较长,其中文档评分、完善文档、召回文档片段、用例生成都会与 LLM 进行多次对话,要想利用 AI 得到预期优质的结果,Prompt 不断的调优至关重要,整个过程根据 Prompt 设置会经历几轮甚至几十轮对话,这里让我们来通过需求文档生成测试用例来简单介绍产研 AI 技术实现过程,以下是主要流程


领域知识库: 为了让 AI 能够更准确地解决问题,需要将一些 AI 不具备的知识提供给它,保障生成用例的准确性和完整度提供数据支持。知识库所涉及的主要内容包括公司业务和技术领域的知识:业务名词: 为了更精准召回业务知识信息,我们针对不同业务线提取业务名词解释形成知识库,这些名词解释库包含了业务专有名词和行业术语的解释,帮助 AI 更好地理解和处理相关问题。业务领域: 为了解决不同业务类型文档中涉及的业务领域多样性问题,针对每个业务线创建了独立的知识库,如 C1、C2、数科、大客、车小妹等。这些知识库提供了特定业务领域的相关知识。通过构建业务领域知识库来弥补 AI 缺失的信息。技术领域: 针对不同的专业知识制定了一些标准规范,包括生成用例边界值的设定和性能测试用例的标准,这些规范和知识输出旨在提高 AI 生成的方式和方法,促进结果准确性提升。任务处理: 对于用例生成这种复杂的任务由于 AI 的特性,生成用例的完整度和准确性较差。针对问题,我们将用例生成过程进行任务拆分:首先在处理不同业务需求时,第一步是确定文档的类型,以便获取相关角色和场景信息。通过确定文档类型,我们可以获得特定业务领域的专有名词解释知识库序列。这样,我们能够更准确地帮助 AI 理解业务问题,并提高生成用例的可用性。在用例生成的过程中,我们需要考虑多个角度的问题。除了已有文档中覆盖的知识点外,我们还需要提供多个知识库给 AI,以提高用例生成的完整性和可用性。为了实现这一目标,我们将用例生成过程拆解成三个任务:功能用例、边界用例和性能用例。功能用例可能涉及到一些隐含的业务知识。为了辅助生成功能用例,我们会获取业务基础知识库,并结合预设的 Prompt 来生成新的功能测试评估 prompt,调用 LLM 进行评估,并输出结果。边界用例和性能用例的处理方式类似,但是所需的技术领域知识不同。边界用例需要优先获取边界值用例的技术知识库,而性能用例则需要优先获取性能技术知识库作为基础知识。通过这样的任务拆分和综合利用不同的知识库,我们可以更精确定义生成用例标准,提高其完整性和可用性。汇总结果:经过复杂任务的拆分处理,我们将各个子任务的用例结果存储在内存中。然后,对各个任务的结果进行整合、归类和排重的处理。最终,我们将用例结果进行结构化存储。依靠领域知识库结合任务拆解,我们将大文档分割成小文档,并针对不同的文档类型和用例类型进行多维度的业务知识和技术知识填充。通过这种方式,最大限度地提升了用例生成的准确性和完整度。

需求文档列表

3.3 产研 AI 伴随效果度量

衡量 AI 用例生成的准确性和实践成果可以通过人工评估、自动评估、A/B 测试、领域专家反馈、用户调查和反馈等多种方法。二手车在实践中设置了多个可量化指标,通过指标洞察原因,帮助改进实践方案。可用率 =(AI 生成测试用例总数-AI 测试用例不用可数)/AI 生成测试用例总数完整度 = AI 测试用例可用数/(AI 测试用例可用数+AI 未覆盖用例数)提效效率 = [AI 测试用例可用数*(人工写单个测试用例平均耗时-AI 生成单个测试用例的平均耗时)-评估 AI 测试用例时间(分钟)]/人工编写测试用例的耗时提效时间 = (AI 生成测试用例总数-AI 测试用例不用可数)*(人工写单个测试用例平均耗时-AI 生成单个测试用例的平均耗时)-评估 AI 测试用例时间人工写单个测试用例平均耗时(分钟)= 人工编写测试用例的耗时(分钟)/人工编写测试用例总数 AI 测试用例可用数 = AI 生成测试用例总数-AI 测试用例不用可数

3.4 产研 AI 伴随效果改进

3.4.1 让 AI 精准理解用户意图

在计算机科学和人工智能领域,"Prompt"通常指用户与计算机系统或程序进行交互时,系统提供给用户的输入或指导性文本。它可以是一个问题、一段文字或一系列指令,作为用户启动对话或操作的触发器。在人工智能语言模型的上下文中,"Prompt"用于指代用户向模型提供的初始文本或提示,以期望模型基于该输入生成相应的输出。通过给定合适的"Prompt",可以引导模型生成符合预期的回复、文章、代码或其他类型的输出。"Prompt"在使用生成式预训练模型进行自然语言处理任务时具有重要意义,因为它能够帮助和指导模型生成与特定上下文相关且满足需求的内容。编排高质量的 Prompt 可以按照以下步骤进行:设定角色和能力:为生成式 AI 设定一个角色或者模仿对象,让它能够从特定的角度回答问题或提供解决方案。这样可以使回答更加准确和有针对性。描述任务:清晰具体地告诉生成式 AI 要做什么,包括任务的目标、要求和限制条件。这是 Prompt 的核心部分,需要尽可能详细和明确,以确保生成的内容符合预期。约束输出:限定生成式 AI 输出的格式、长度、数量等信息,以满足预期。例如,可以设置最大输出长度,规定输出结果的结构或格式。通过优化后的 Prompt,可以更清晰地指导生成式 AI 进行测试用例的生成,并且减少误差。同时约束输出的格式和数量,使得结果更符合预期。A/B Test 测试结果:Prompt 优化后生成的测试用例要比 Prompt 优化前生成的测试用例可用率平均提升了 8%,完整度平均提升了 10%。

3.4.2 完善需求文档内容

想让 AI 生成一个可用率和完整度较高的测试用例,除了依靠优质的 Prompt 模板外还需要一个合格的需求内容。通过对需求文档进行优化,生成的测试用例具有更加清晰的逻辑性。这样的测试用例会让人更容易理解需求,并且能够提高执行测试用例的效率。需求文档标准的结构:需求背景、需求目标、专业名词解释、需求描述。文档内容编写逻辑:功能模块-> 再子功能 ->再到功能需求细节;编写页面展示字段及边界;编写页面交互逻辑;编写接口或服务改动;本次需求对其他功能的影响范围。A/B Test 测试结果:按照需求模板规则生成的测试用例要比之前的需求生成的测试用例可用率平均提升了 19%,完整度平均提升了 22%。

3.4.3 为 AI 补充缺少的领域知识

为了提高测试用例生成结果的可用率和完整度还需要给 AI 提供需求中的专业名词、对话的上下文、对应角色技能要求、工作处理流程等方便它去理解需求。

专业名词示例:车源状态分为:在售、已售、退库、已预定;库存状态分为:在厅、在途、整备、已出库;上架状态分为:已上架、未上架有无专业名词库 A/B Test 测试结果:使用了专业名词库比没有使用专业名词库生成的测试用例可用率平均提升了 15%,完整度平均提升了 0.5%。

3.4.4 对复杂任务进行拆解

与 AI 进行对话时,通常对话会有长度限制,面对比较复杂问题时需要进行拆解,将复杂问题按照任务意图分解为多个步骤或子问题,并逐步进行处理。每个步骤都可以单独执行,进行多次对话迭代。将已获取的信息传递给下一次对话,通过递归逐步构建完整的解决方案。

4 阶段性成果

二手车技术部基于 AI 开发的用例生成工具,生成测试用例的可用性可以稳定在 70%以上;覆盖率可以保持在 60%以上;测试用例编写效率可平均提升 40%。生成的多维度测试用例涵盖了边缘情况和特殊情况,提升了问题和漏洞的发现率,保障产品质量的同时也提高了测试效率。同时通过需求知识查询、需求质量评估,需求内容完善、代码生成等工具,促进了软件研发流程工作的质量和效率提升。


5 未来与展望

生成式 AI 在产研领域具有广泛的应用。它可以自动化代码生成,减少开发时间,提高工作效率。同时,它还可以帮助开发人员更容易地理解和修改代码,改善代码质量,提升软件可靠性。此外,生成式 AI 还可以用于软件测试,自动发现和修复错误,大大缩短测试时间。另外,它还可以协助开发人员快速构建原型,实现需求分析和设计,有效提升软件开发过程的效果。总之,生成式 AI 为产品研发领域带来了一种全新的模式,它可以极大地改善撰写需求文档、产品开发效率和软件质量,使产品经理、研发工程师更快速、准确地完成开发任务。生成式 AI 技术的发展对软件行业无疑更多体现的是促进作用。虽然该技术还处于发展的初级阶段,但随着技术的不断进步和完善,相信它将会为软件研发领域带来更多的惊喜和突破。

用户头像

之家技术

关注

铸精品·释产能·启未来 2010-04-07 加入

汽车之家技术官方账号

评论

发布
暂无评论
利用生成式AI的产研流程:创新与效率的完美结合_测试_之家技术_InfoQ写作社区