摘要 - 软件缺陷预测是软件质量保证的关键方面,因为它可以早期识别和缓解缺陷,从而降低了软件故障的成本和影响。在过去的几年中,量子计算已成为一种令人兴奋的技术,能够改变多个领域。量子机学习(QML)是其中之一。QML算法比其经典同行可以利用量子计算的能力以更好的效率和有效性解决复杂问题。但是,仍需要探索其在软件工程中对软件缺陷进行应用的研究。在这项研究中,我们通过比较20个软件缺陷数据集中的三种QML和五种经典机器学习(CML)算法的性能来填补研究差距。我们的调查报告了QML与CML算法的综合场景,并确定了预测软件缺陷的表现更好和一致的算法。我们还强调了基于我们在进行此调查时所面临的经验,在实际软件缺陷数据集中采用QML算法的挑战和未来方向。这项研究的发现可以通过使软件系统可靠且无漏洞来帮助从业人员和研究人员进一步进步。索引术语 - Quantum机器学习,支持向量分类器,软件缺陷预测,量子古典级,性能比较
这项研究调查了大型语言模型用于测试案例生成的利用。该研究使用Llama提供的大型语言模型和嵌入模型,特别是7B尺寸的Llama2,以生成定义输入的测试用例。这项研究涉及一种使用称为检索产生(RAG)和及时工程的自定义技术的信息。rag是本研究中在本地存储组织信息的一种方法,该信息用于创建测试用例。除了大型语言模型已准备好培训的预训练数据外,该存储的数据被用作互补数据。通过使用此方法,实现可以收集特定的组织数据,因此对所需域有更深入的了解。该研究的目的是研究AI驱动的测试案例生成如何影响整体软件质量和开发效率。这是通过比较基于AI的系统的输出与手动创建测试用例来评估的,因为这是研究时的公司标准。AI驱动的测试用例主要以覆盖范围和时间的形式进行分析,这意味着我们比较了AI系统可以生成测试用例与手动创建的测试案例相比。同样,考虑时间来了解如何影响发展效率。
背景:软件开发是以人为中心的活动,因此容易受到人为错误的影响。人为错误是人类思维过程中的错误。为了确保软件质量,从业者了解如何管理这些人为错误非常重要。组织经常在需求工程过程中引入变更,以防止发生人为错误或减轻发生这些错误时造成的危害。虽然其他学科也有关于人为错误管理的研究,但关于软件工程(特别是需求工程)中人为错误的预防和缓解的研究却很有限。目前软件工程的研究并没有提供关于需求工程中最有效的变更类型的有力结果。目标:本文的目标是根据从需求工程专业人员收集的数据,制定人为错误预防和缓解策略的分类法。方法:我们对两项关于需求工程实践的从业者调查数据进行了定性分析,以确定和分类预防和缓解人为错误的策略。结果:我们根据变化主要影响人员、流程还是环境,将人为错误管理策略组织成一个分类法。在每个高级类别中,我们进一步将策略组织成低级类别。结果显示,超过 50% 的
1. 简介 具有先进计算能力和连接能力的移动设备(如智能手机和平板电脑)正变得越来越普遍。与此同时,在这些设备上运行的专用程序(称为应用程序)的开发和采用也呈激增态势。应用程序几乎渗透到从休闲到关键任务的所有活动中。因此,在应用程序生命周期的所有阶段(包括开发、测试、审计和部署)对软件质量工具的需求日益增长。应用程序具有许多使静态分析具有挑战性的特性:庞大的软件开发工具包 (SDK)、异步、进程间通信、数据库和图形用户界面 (GUI)。因此,许多现有的应用程序分析方法都是基于动态分析(例如 [7、9、10])。任何动态分析有效性的核心问题是如何获得相关的程序输入。应用程序最不可分割和最常规的输入是事件。设备触摸屏上的点击、设备键盘上的按键和短信都是事件的实例。本文介绍了一种算法和系统,用于生成用于锻炼应用程序的输入事件。应用程序可以(实际上通常确实如此)拥有除事件之外的输入,例如磁盘上的文件和安全的 Web 内容。我们的工作与提供此类输入的方法正交且互补。应用程序是一类程序的实例,我们称之为事件驱动程序:程序 em
1. 简介 具有先进计算能力和连接能力的移动设备(如智能手机和平板电脑)正变得越来越普遍。与此同时,在这些设备上运行的专用程序(称为应用程序)的开发和采用也呈激增态势。应用程序几乎渗透到从休闲到关键任务的所有活动中。因此,在应用程序生命周期的所有阶段(包括开发、测试、审计和部署)对软件质量工具的需求日益增长。应用程序具有许多使静态分析具有挑战性的特性:庞大的软件开发工具包 (SDK)、异步、进程间通信、数据库和图形用户界面 (GUI)。因此,许多现有的应用程序分析方法都是基于动态分析(例如 [7、9、10])。任何动态分析有效性的核心问题是如何获得相关的程序输入。应用程序最不可分割和最常规的输入是事件。设备触摸屏上的点击、设备键盘上的按键和短信都是事件的实例。本文介绍了一种算法和系统,用于生成用于锻炼应用程序的输入事件。应用程序可以(实际上通常确实如此)拥有除事件之外的输入,例如磁盘上的文件和安全的 Web 内容。我们的工作与提供此类输入的方法正交且互补。应用程序是一类程序的实例,我们称之为事件驱动程序:程序 em
1. 简介 具有先进计算能力和连接能力的移动设备(如智能手机和平板电脑)正变得越来越普遍。与此同时,在这些设备上运行的专用程序(称为应用程序)的开发和采用也呈激增态势。应用程序几乎渗透到从休闲到关键任务的所有活动中。因此,在应用程序生命周期的所有阶段(包括开发、测试、审计和部署)对软件质量工具的需求日益增长。应用程序具有许多使静态分析具有挑战性的特性:庞大的软件开发工具包 (SDK)、异步、进程间通信、数据库和图形用户界面 (GUI)。因此,许多现有的应用程序分析方法都是基于动态分析(例如 [7、9、10])。任何动态分析有效性的核心问题是如何获得相关的程序输入。应用程序最不可分割和最常规的输入是事件。设备触摸屏上的点击、设备键盘上的按键和短信都是事件的实例。本文介绍了一种算法和系统,用于生成用于锻炼应用程序的输入事件。应用程序可以(实际上通常确实如此)拥有除事件之外的输入,例如磁盘上的文件和安全的 Web 内容。我们的工作与提供此类输入的方法正交且互补。应用程序是一类程序的实例,我们称之为事件驱动程序:程序 em
软件系统日益复杂,开发周期不断加快,对管理代码错误和实施业务逻辑提出了重大挑战。传统技术虽然是软件质量保证的基石,但在处理复杂的业务逻辑和广泛的代码库方面却存在局限性。为了应对这些挑战,我们引入了智能代码分析代理 (ICAA),这是一个结合了人工智能模型、工程流程设计和传统非人工智能组件的新概念。ICAA 利用 GPT-3 或 GPT-4 等大型语言模型 (LLM) 的功能来自动检测和诊断代码错误和业务逻辑不一致。在对这一概念的探索中,我们观察到错误检测准确率有了显着提高,将误报率从基线的 85% 降低到 66%,召回率有望达到 60.8%。然而,与 LLM 相关的代币消耗成本,尤其是分析每行代码的平均成本,仍然是广泛采用的重要考虑因素。尽管面临这一挑战,但我们的研究结果表明,ICAA 具有巨大的潜力,可以彻底改变软件质量保证,显著提高软件开发过程中错误检测的效率和准确性。我们希望这项开创性的工作能够激发该领域的进一步研究和创新,重点是完善 ICAA 概念并探索降低相关成本的方法。
AGI 通用人工智能 AI 人工智能 AI HLEG 人工智能高级专家组 API 应用程序编程接口 CEN 欧洲标准化委员会 CENELEC 欧洲电工标准化委员会 CL 通用逻辑 CPU 中央处理单元 ETSI 欧洲电信标准协会 EU 欧洲联盟 GDP 国内生产总值 GOFAI 传统的人工智能 GPS 通用问题求解器(第 1 章) GPS 全球定位系统(第 2 章) GPU 图形处理单元 HCI 人机界面 HMM 隐马尔可夫模型 ICT 信息和通信技术 IEC 国际电工委员会 IEEE 电气电子工程师协会 IoT 物联网 ISG 行业规范组 ISO 国际标准化组织 IT 信息技术 ITU-T 国际电信联盟 - 电信标准化部门 JTC 1 联合技术委员会 1(ISO 和 IEC) kNN K-最近邻居 ML 机器学习 NLP 自然语言处理 OECD 经济合作与发展组织 OWL Web 本体语言 PaaS 平台即服务 RAM 随机存取存储器 RPA 机器人过程自动化 SC 小组委员会 SG 研究组 SQuaRE 系统和软件质量要求和评估 SVM 支持向量机 TLO 顶级本体 TPU 张量处理单元 TR 技术报告 TS 技术规范 W3C 万维网联盟 WG 工作组 WIPO 世界知识产权组织
背景:软件开发是以人为中心的活动,因此容易出现人为错误。人为错误是人类思维过程中的错误。为了确保软件质量,从业者了解如何管理这些人为错误非常重要。组织经常在需求工程过程中引入变更,以防止发生人为错误或减轻发生这些错误时造成的危害。虽然其他学科也有关于人为错误管理的研究,但关于软件工程(特别是需求工程)中人为错误的预防和缓解的研究却很有限。目前软件工程的研究并没有提供关于需求工程中最有效的变更类型的有力结果。目标:本文的目标是根据从需求工程专业人员收集的数据,制定人为错误预防和缓解策略的分类法。方法:我们对两项关于需求工程实践的从业者调查数据进行了定性分析,以确定和分类预防和缓解人为错误的策略。结果:我们根据变化主要影响人员、流程还是环境,将人为错误管理策略组织成一个分类法。在每个高级类别中,我们进一步将策略组织成低级类别。结果显示,超过 50% 的报告策略需要改变流程,23% 需要改变环境,21% 需要改变人员,其余 5% 太模糊而无法分类。此外,超过 50% 的策略侧重于需求工程的管理活动。结论:人为错误管理分类法为预防和缓解人为错误提供了系统的分类和组织。
图 1-1:成熟软件工程过程的好处 15 图 2-1:自我评估图 - 1 21 图 2-2:自我评估图 - 2 23 图 2-3:来自 SEI 软件能力评估的样本 25 问卷 [TR23] 图 2-4:来自 [Pressman88] 的样本问题 26 图 3-1:行动计划结构 30 图 3-2:生成行动计划的活动顺序 34 图 3-3:行动计划所有者 35 图 3-4:过程改进的组织架构 35 图 7-1:信息传递机制 58 图 7-2:软件过程改进策略示例 59 图 7-3:实施技术变革的机制 61 图 10-1:典型矩阵组织中的位置 72 图 B-1:质量保证技术的演变 96 图B-2:Shewart 计划-执行-检查-行动循环 98 图 B-3:过程管理方法 99 图 B-4:软件质量功能 100 图 D-1:上下文分析 116 图 D-2:映射技术 117 图 D-3:边界跨越者角色 118 图 G-1:1989 年 SEPG 研讨会上进行的问卷调查 134 图 G-2:SEPG 人员配备 135 图 G-3:技术工作组 136 图 G-4:工作组数据摘要 137 图 G-5:SEPG 的年龄 138 图 G-6:SEPG 服务的软件专业人员数量 138 图 G-7:SEPG 服务的地理位置 139 图 G-8:SEPG 的级别和赞助 140 图 G-9:SEPG 级别和赞助摘要 141 图G-10:SEPG 行动“