iGen: Dynamic Interaction Inference for Configurable Software
为了开发、分析和发展当今高度可配置的软件系统,开发人员需要深入了解系统的配置选项,例如,如何设置选项以到达特定位置、使用什么配置进行测试等。如今,获取这些详细信息需要人工努力,这是困难的、昂贵的且容易出错的。在本文中,我们提出了iGen,一种新的,轻量级的动态分析技术,自动发现一个程序的\emph{interactions} -表达逻辑公式,让开发人员丰富和详细的信息,如何系统的配置选项设置映射到特定的代码覆盖率。iGen采用迭代算法,在一小组配置下运行系统,捕获覆盖数据;处理覆盖数据以推断潜在的交互;然后生成新的配置以进一步改进下一次迭代中的交互。我们评估了iGen的29个程序跨越五种语言,这项研究的广度将无法实现使用以前的交互推理工具。我们的研究结果表明,iGen发现精确的相互作用的基础上的一个非常小的一部分的可能的配置。此外,iGen的结果证实了几个早期的假设典型的相互作用分布和结构。
2019-03-28 cs.SE
CPAchecker: A Tool for Configurable Software Verification
可配置软件验证是一个新的概念,表达不同的程序分析和模型检验方法在一个单一的形式主义。本文介绍了CPAcchecker,一个工具和框架,旨在轻松集成新的验证组件。可配置程序分析接口的实现需要每个抽象域及其相应的操作。主算法可配置为对现有CPA的任意组合执行可达性分析。开发过程中的主要设计目标是为开发人员提供一个灵活且易于扩展的框架。我们希望研究人员发现使用这个平台实现新的验证思想和算法是方便和富有成效的,并且它通过使实际实验更容易来推进该领域。该工具以Java实现,并作为命令行工具或Eclipse插件运行。我们评估我们的工具的效率,从软件模型检查器BLAST的基准测试。CPAcchecker的第一个发布版本实现了谓词抽象、八边形和显式值域的CPA。二进制文件和CPAcchecker的源代码作为自由软件公开提供。
2009-01-30 cs.PL cs.SE
Transfer Learning for Improving Model Predictions in Highly Configurable Software
现代软件系统被构建为在动态环境中使用,使用配置功能来适应变化和外部不确定性。在自适应环境下,我们经常感兴趣的推理不同配置下的系统的性能。通常,我们根据实际测量来学习黑盒模型,以预测给定特定配置的系统性能。然而,随着现代系统变得越来越复杂,有许多配置参数可能会相互作用,我们最终会学习到一个指数级大的配置空间。当然,当依赖于实际变化环境中的真实测量时,这不会扩展。我们提出了一个不同的解决方案:我们不是从真实系统中进行测量,而是使用来自其他来源的样本来学习模型,例如以低成本近似真实系统性能的模拟器。我们定义了一个成本模型,将模型学习的传统观点转化为一个多目标问题,不仅考虑模型的准确性,而且还考虑测量工作。我们使用真实世界的可配置软件来评估我们的成本感知迁移学习解决方案,包括(i)机器人系统,(ii)3种不同的流处理应用程序,以及(iii)NoSQL数据库系统。实验结果表明,我们的方法可以实现(a)高预测精度,以及(b)高模型可靠性。
2017-04-20 cs.SE
Detecting Performance-Relevant Changes in Configurable Software Systems
ConfFLARE通过识别数据流交互和相关软件特性,有效减少性能测试成本,准确检测性能退化。
2025-11-21 cs.SE
Applying Model Checking to Highly-Configurable Safety Critical Software: The SPS-PPS PLC Program
许多粒子加速器的一个重要方面是不断发展和频繁的配置变化,需要执行它们设计的实验。这通常会导致可配置软件的设计,可以吸收这些变化,并执行所需的控制和保护行动。这种设计策略最大限度地降低了工程和维护成本,但它使软件验证活动更具挑战性,因为必须保证任何可能的配置的安全属性。软件模型检验是一种广泛应用的自动化验证技术。这种验证方法探索系统模型的所有可能组合,以保证其符合某些属性或规范。这对于高度可配置的软件来说是一种非常合适的技术,因为通常有大量的组合需要检查。本文介绍了如何PLCverif,欧洲核子研究中心的模型检验平台,已被应用到一个高度可配置的可编程逻辑控制器(PLC)程序,SPS人员保护系统(PPS)。这种验证方法的好处和挑战也进行了讨论。
2022-03-30 cs.SE cs.SY eess.SY
Small Yet Configurable: Unveiling Null Variability in Software
Institut Polytechnique de Paris(巴黎理工学院);Univ Rennes, CNRS, Inria, IRISA(雷恩大学、法国国家科学研究中心、法国国家信息与自动化研究所、IRISA实验室);EssilorLuxottica(依视路陆逊梯卡)
本文通过分析GNU coreutils中的108个程序,发现小型软件存在显著的编译时和运行时变异性,且变异性随时间增加而提升,提出空变异性软件概念,表明高可配置性不局限于大规模系统,减少冗余变异性可使软件更轻量易维护。
2026-04-17 cs.SE
A Large-Scale Study on Developer Engagement and Expertise in Configurable Software System Projects
本研究通过挖掘25个CSS项目仓库的45万余次提交,分析开发者对可变/强制代码的参与度、可变代码工作量集中度及专业知识指标有效性,发现可变代码责任高度集中且传统指标识别效果差,为CSS项目任务分配提供改进方向。
2025-08-25 cs.SE
Causality in Configurable Software Systems
检测和理解软件中的缺陷和无意行为的原因是具有挑战性的,因为它们越来越复杂。在可配置的软件系统中,由用户可能从中选择的众多特征产生的组合学增加了另一层复杂性。我们引入了特征因果关系的概念,它是基于反事实推理,并受到Halpern和Pearl对实际因果关系的开创性定义的启发。特征因果关系在系统配置的层面上运作,能够识别特征及其相互作用,这些特征及其相互作用是出现功能和非功能属性的原因。我们提出了各种方法来解释这些原因,特别是完善的责任和责备的概念,我们扩展到面向功能的设置。建立一个密切的联系,特征因果关系的主要蕴涵,我们提供了算法,有效地计算特征原因和因果解释。通过对广泛的可配置软件系统(包括社区基准测试和现实系统)进行评估,我们证明了我们方法的可行性:我们说明了因果关系的概念如何有助于识别根本原因,估计功能的影响,并检测功能交互。
2022-02-28 cs.LO cs.SE
Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times
针对Linux内核补丁测试中现有配置方案构建耗时长且难保证补丁覆盖的问题,提出krepair方法,仅对快速构建但补丁覆盖差的配置做少量修改,即可实现平均98.5%的补丁覆盖率,同时保持构建速度比最大覆盖配置快10.5倍。
2024-04-27 cs.SE
GuiLiner: A Configurable and Extensible Graphical User Interface for Scientific Analysis and Simulation Software
大多数用户每天与之交互的计算机程序由图形用户界面(GUI)驱动。然而,许多科学应用程序都使用命令行界面(CLI),以方便开发并增加此模式提供的灵活性。科学应用程序开发人员将受益于能够为他们的CLI程序轻松提供GUI,从而保留两种交互模式的优点。GuiLiner是一个通用的、可扩展的和灵活的前端,旨在“托管”各种各样的数据分析或模拟程序。科学应用程序开发人员可以生成一个正确格式化的XML文件,描述他们的程序选项和一些文档,他们可以立即使用GuiLiner为他们的分析或模拟程序生成一个精心实现的GUI。
2008-06-02 cs.HC cs.SE
Whence to Learn? Transferring Knowledge in Configurable Systems using BEETLE
随着软件系统复杂性的增长和可能配置的空间呈指数级增长,找到软件系统的接近最优配置变得具有挑战性。最近的方法通过基于配置样本集学习性能模型来解决这一挑战。然而,收集足够的样本配置可能非常昂贵,因为每个这样的样本都需要使用复杂的测试套件来配置、编译和执行整个系统。当学习新数据的成本太高时,可以使用\textit{Transfer Learning}将旧课程“转移”到新的上下文。传统的迁移学习有许多挑战,具体来说,(a)从过多的数据中学习需要花费过多的时间,以及(b)通过迁移构建的模型的性能可能会因为从不良源学习而恶化。为了解决这些问题,我们提出了一种新的迁移学习框架BEETLE,这是一个“领头羊”为基础的迁移学习者,专注于识别和学习最相关的来源,从旧的数据。本文评估BEETLE与57个不同的软件配置问题的基础上的五个软件系统(视频编码器,SAT求解器,SQL数据库,高性能的C编译器,流数据分析工具)。在每一种情况下,BEETLE发现的配置与其他最先进的迁移学习器发现的配置一样好或更好,而只需要其他方法所需的测量的一小部分($\frac{1}{7}$ th)。基于这些结果,我们说BEETLE是软件优化配置的一个新的高水位标志。
2020-03-25 cs.SE
A Tool for Automatically Cataloguing and Selecting Pre-Trained Models and Datasets for Software Engineering
Universitat Politècnica de Catalunya(加泰罗尼亚理工大学)
MLAssetSelection是一种自动归档和选择软件工程预训练模型和数据集的网页工具,提供排行榜、需求匹配、实时更新和用户定制功能。
2026-01-19 cs.SE
A Comparative Analysis of Backbone Algorithms for Configurable Software Systems
Universidad Nacional de Educacion a Distancia (UNED)(西班牙国家开放大学);ITIS Software, Universidad de Málaga(马拉加大学 ITIS 软件)
本文通过分析2371个来自真实世界可变性模型的公式,比较了5种先进算法在不同规模公式上的性能,发现算法2/3适合小规模公式,算法5在大规模公式中表现最佳,且过滤启发式对性能影响较小。
2026-03-16 cs.SE
Configuration-dependent Fault Localization
在一个有缺陷的可配置系统中,由于功能之间的意外交互,依赖于配置的缺陷只会在某些配置中导致失败。由于可配置系统的复杂性,手动定位可配置系统中的配置相关故障可能非常耗时。然而,现有的自动化故障定位技术并没有考虑到与配置相关的错误的原因,这些技术被设计用于定位不可配置代码中的错误。因此,它们的有效配置相关定位的能力是有限的。在这项工作中,我们提出了CoFL,一种新的方法来本地化配置相关的错误,通过识别和分析可疑的功能相互作用,可能会导致故障的可配置系统的错误。我们评估了CoFL在高度可配置系统中人工配置相关故障的故障定位中的效率。我们发现,CoFL显着改善了基线频谱为基础的方法。使用CoFL,平均而言,对错误语句进行排名的正确性提高了7倍以上,搜索空间显著缩小了约15倍。
2019-11-18 cs.SE
The Interaction between Inputs and Configurations fed to Software Systems: an Empirical Study
广泛使用的软件系统,如视频编码器,必然是高度可配置的,有数百甚至数千个选项可供选择。他们的用户通常很难找到这些选项的合适值(即找到软件系统的适当配置),以满足他们手头任务的目标,例如将视频压缩到一定大小。问题的一个方面当然是性能取决于输入数据:输入到x264编码器的视频或输入到xz工具的文件系统。因此,为了获得良好的性能,用户应该考虑(1)软件可变性和(2)输入数据这两个方面。在这篇问题陈述论文中,我们对8个可配置系统进行了大量研究,这些系统量化了输入数据和软件系统配置之间的现有交互。结果表明:(1)输入到软件系统与他们的配置选项以非单调的方式相互作用,显着影响他们的性能属性(2)调整一个软件系统的输入数据,使其性能增加了十倍(3)输入可变性可能会危及性能预测模型的相关性,现场部署。
2023-02-21 cs.SE
Uncertainty-Aware Performance Prediction for Highly Configurable Software Systems via Bayesian Neural Networks
RMIT University(皇家墨尔本理工大学);Huaqiao University(华侨大学);The University of Newcastle(纽卡斯尔大学)
可配置软件系统在许多重要的应用领域中被采用。了解系统在所有配置下的性能对于防止错误配置导致的潜在性能问题至关重要。然而,由于配置的数量可能非常大,因此不可能在所有配置下测量系统性能。因此,一种常见的方法是从有限的测量数据中构建预测模型,以预测所有配置的性能作为标量值。然而,已经指出,存在来自数据汇集或建模过程的不同来源的不确定性,这可能使标量预测不一定准确。为了解决这个问题,我们提出了一种基于贝叶斯深度学习的方法,即BDLPerf,它可以将不确定性纳入预测模型。BDLPerf可以提供配置性能的标量预测以及这些标量预测的相应置信区间。我们还开发了一种新的不确定性校准技术,以确保贝叶斯预测模型生成的置信区间的可靠性。最后,我们提出了一种有效的超参数调整技术,以便在合理的时间内训练预测模型,同时实现高精度。我们在10个真实系统上的实验结果表明,BDLPerf在标量性能预测和置信区间估计方面都比现有方法具有更高的准确性。
2022-12-27 cs.AI cs.LG cs.SE
Semantically Configurable Consistency Analysis for Class and Object Diagrams
检查对象图(OD)和类图(CD)之间的一致性是一个重要的分析问题。然而,CD和OD的语义中的几种变化,如在不同的上下文中和出于不同的目的所使用的,对分析工具造成了挑战。为了应对这一挑战,在本文中,我们研究语义可配置模型分析。我们形式化的语言语义的变化,使用一个功能模型:每个配置模型允许诱导不同的语义。此外,我们开发了一个参数化的分析,可以实例化,以符合每一个法律配置的特征模型。因此,分析是语义上的consolidated和其结果的变化,根据所选择的功能配置引起的语义。这些想法是使用Alloy的参数化转换实现的。这项工作可以被看作是一个案例研究的例子,一个正式的和自动化的方法来处理建模语言中的语义变化。
2014-09-08 cs.SE
Rethinking Performance Analysis for Configurable Software Systems: A Case Study from a Fitness Landscape Perspective
University of Electronic Science and Technology of China(电子科技大学);University of Exeter(埃克塞特大学)
本文提出将可配置软件系统的配置空间建模为适应度景观,并设计开源图数据挖掘框架FLA,基于8600万配置的分析揭示了景观地形特征及其对配置调优和性能建模的启示。
2025-01-02 cs.DC cs.LG cs.PF
Feature-Interaction Aware Configuration Prioritization for Configurable Code
在一个可配置的软件系统中,功能之间的意外交互会导致大多数错误。详尽地分析所有指数数量的可能配置是成本过高的。因此,已经提出了各种采样技术来系统地缩小要分析的合法配置的指数数量。由于分析所有选定的配置可能需要大量的工作,基于故障的配置优先级,有助于更早地检测故障,可以在质量保证方面产生实际的好处。在本文中,我们提出了CoPro,一种新的配方功能交互错误通过共同的程序实体启用/禁用的功能。利用这一点,我们开发了一个有效的功能交互感知配置优先级技术的可配置系统的配置排名根据其潜在的错误总数。我们进行了几项实验来评估CoPro在公共基准测试中检测配置相关错误的能力。我们发现,当我们在高级采样算法上添加它们时,CoPro的性能优于最先进的配置优先级技术。在78%的情况下,CoPro将错误配置排在结果列表的前3位。有趣的是,CoPro能够检测到17个尚未发现的功能交互错误。
2019-11-18 cs.SE
Learning Software Configuration Spaces: A Systematic Literature Review
Univ Rennes(雷恩大学);Inria(法国国家信息与自动化研究所);CNRS(法国国家科学研究中心);IRISA(法国雷恩信息与系统研究所);University of Limerick(利默里克大学);Lero–The Irish Software Research Centre(Lero——爱尔兰软件研究中心);University College Dublin(都柏林大学学院)
大多数现代软件系统(Linux或Android等操作系统,Firefox或Chrome等Web浏览器,ffmpeg、x264或VLC等视频编码器,移动和云应用程序等)是高度可配置的可以组合数百个配置选项、功能或插件,每个都可能具有不同的功能,并对执行时间、安全性、能耗等产生影响。由于组合爆炸和执行软件的成本,几乎不可能穷尽整个配置空间。因此,许多工作已经调查的想法,学习它从一个小样本的配置的测量。模式“采样,测量,学习”已经出现在文献中,有几个实际利益的软件开发人员和最终用户的可配置系统。在本调查中,我们报告了不同的应用目标(例如,性能预测、配置优化、约束挖掘)、用例、目标软件系统和应用领域。我们回顾了各种策略,以收集具有代表性和成本效益的样本。我们描述了自动化的软件技术,用于测量配置的功能和非功能属性。我们对机器学习算法进行分类,并说明它们与所追求的应用程序的关系。最后,我们还描述了研究人员如何评估学习过程的质量。本系统评价的结果表明,潜在的应用目标是重要的,有大量的案例研究报告在文献中的基础上的几个领域和软件系统。然而,可配置系统的巨大变量空间仍然具有挑战性,并呼吁进一步研究人工智能和软件工程之间的协同作用。
2019-06-07 cs.LG cs.SE
Transfer Learning for Performance Modeling of Configurable Systems: An Exploratory Analysis
现代软件系统提供了许多配置选项,这些选项显著地影响它们的非功能属性。为了理解和预测配置选项的效果,已经提出了几种采样和学习策略,尽管通常需要大量的成本来覆盖高维配置空间。最近,迁移学习已被应用于通过跨环境迁移有关性能行为的知识来减少构建性能模型的工作。虽然这一系列研究有望以较低的成本学习更准确的模型,但目前还不清楚迁移学习为什么以及何时适用于性能建模。为了阐明何时应用迁移学习是有益的,我们对四种流行的软件系统进行了实证研究,不同的软件配置和环境条件,如硬件,工作负载和软件版本,以确定可用于迁移学习的关键知识片段。我们的研究结果表明,在小的环境变化(例如,同构工作负载变化),通过对性能模型应用线性变换,我们可以理解目标环境的性能行为,而对于严重的环境变化(例如,剧烈的工作负载变化),我们可以仅传递使采样更有效的知识,例如,通过降低配置空间的维数。
2017-09-07 cs.PF cs.SE stat.ML
A Comprehensive Study on Automated Testing with the Software Lifecycle
本文综述了自动化测试在软件生命周期中的作用,分析其相较手动测试在效率、成本和质量评估方面的优势与差异,并探讨自动化测试工具的适用场景。
2024-05-02 cs.SE
Automated Software Testing Starting from Static Analysis: Current State of the Art
复杂软件的大规模生产使得人工测试其安全漏洞变得不可能。自动化安全测试工具有各种各样的风格,在软件开发的各个阶段发挥作用,并针对不同类别的软件漏洞。我们有大量的自动化工具可供选择,这很好,但问题是它们的采用和认可并不突出。本研究的目的是探索现有技术的可能性,同时也通过探索安全测试工具和相关技术的未来来拓宽视野。
2023-01-15 cs.SE
BOA: Framework for Automated Builds
管理大型软件产品是一项复杂的软件工程任务。软件开发、发布和分发过程的自动化在大型协作中最为有利,其中大量开发人员、多平台和分布式环境是典型因素。本文介绍了在CMS中开发的构建和输出分析器框架及其组件,以方便软件维护和提高软件质量。该系统允许生成、控制和分析各种类型的自动化软件构建和测试,例如开发代码的定期重建、现有版本的发布和安装的软件集成。
2003-06-14 cs.SE
Automated flakiness detection in quantum software bug reports
针对量子软件领域缺乏不稳定测试相关研究的问题,本文梳理了量子软件错误报告中不稳定测试自动检测的挑战与潜在方案,呼吁学界关注并协作解决该新兴问题。
2024-08-09 cs.SE
A Viable Paradigm of Software Automation: Iterative End-to-End Automated Software Development
本文提出AutoSW范式,通过AI系统作为人类伙伴,实现端到端自动化软件开发,展示了其在各类案例中的可行性。
2025-11-23 cs.SE
Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack
许多测试可配置软件系统的方法都是从同一个假设开始的:不可能测试所有的配置。这激发了可变性感知抽象和采样技术的定义,以应对大的配置空间。然而,如果这样做所需的努力仍然可以接受,则没有理论障碍阻止通过简单地列举它们来对所有配置进行详尽测试。不仅如此:我们相信,通过系统地、详尽地测试一个可配置系统,我们可以学到很多东西。在这个案例研究中,我们报告了有史以来第一次努力测试所有可能的配置的行业实力,开源的可配置软件系统,JHipster,一个流行的代码生成器的Web应用程序。我们为JHipster的26,000多个配置构建了一个测试框架,使用了80台机器的集群,在4个晚上总共使用了4,376小时(182天)的CPU时间。我们发现,35.70%的配置失败,我们确定的功能相互作用,导致错误。我们表明,采样策略(如相异度和2明智的):(1)是更有效地找到故障比12个默认配置中使用的JHipster连续集成;(2)可能是太昂贵,超过可用的测试预算。我们将这种定量分析与JHipster主要开发人员的定性评估相结合。
2018-06-11 cs.SE
HINNPerf: Hierarchical Interaction Neural Network for Performance Prediction of Configurable Systems
Sun Yat-sen University(中山大学)
现代软件系统通常是高度可配置的,通过各种配置选项为用户提供定制的功能。了解系统性能如何随不同选件组合而变化对于确定满足特定要求的最佳配置非常重要。由于多个选项之间的复杂的相互作用和巨大的配置空间下的性能测量的高成本,这是具有挑战性的研究如何不同的配置影响系统的性能。为了解决这些挑战,我们提出了HINNPerf,一种新的分层交互神经网络的可配置系统的性能预测。HINNPerf采用嵌入方法和层次网络块来建模配置选项之间复杂的相互作用,提高了方法的预测精度。此外,我们设计了一个层次的正则化策略,以提高模型的鲁棒性。在10个真实可配置系统上的实证结果表明,我们的方法在统计上显著优于最先进的方法,预测精度平均提高了22.67%。此外,结合集成的属性方法,设计的层次结构提供了一些关于交互复杂性和配置选项的重要性的见解,这可能有助于用户和开发人员更好地理解可配置系统的工作原理,并有效地识别影响性能的重要选项。
2022-04-08 cs.AI cs.SE
Mining Software Repair Models for Reasoning on the Search Space of Automated Program Fixing
本文通过分析软件仓库中数以千计的错误修复事务来理解错误修复的本质。然后,它将这些学习到的知识放在自动程序修复的上下文中。我们给出了大量的经验结果,在大规模和细粒度的抽象语法树差异的性质,人类的错误修复。我们建立了数学推理的搜索空间的自动修复和时间,通过应用我们的方法对14个存储库的Java软件和89,993版本事务,我们表明,并非所有的概率修复模型是等价的。
2013-11-14 cs.SE
Modularity and Architecture of PLC-based Software for Automated Production Systems: An analysis in industrial companies
自适应和灵活的生产系统需要模块化和可重复使用的软件,特别是考虑到它们长达50年的长期生存周期。介绍了一种自动化生产系统软件成熟度度量方法SWMAT4aPS。该方法确定了各公司在自动化生产系统(aPS)设计中软件模块化解决方案的弱点和优点。首先,一个自我评估的问卷是用来评估大量的公司关于他们的软件成熟度。其次,我们分析了PLC的代码,建筑水平,工作流程和能力,自动配置代码的工程信息在四个选定的公司。在本文中,问卷调查结果,从16个德国世界领先的公司在机器和设备制造和四个案例研究验证的结果,从详细的分析,以证明该方法的适用性,并给出了一个调查的最先进的工业。
2022-12-07 cs.SE
MultiRefactor: Automated Refactoring To Improve Software Quality
本文提出了一种新的软件维护自动化方法。该工具能够执行26种不同的重构。它还包含大量的度量标准来衡量重构对软件的影响,以及六种不同的基于搜索的优化算法来改进软件。该工具包含用于软件改进的单目标和多目标搜索技术,并完全自动化。本文介绍了该工具的各种功能,它的独特之处,并提出了一些实验研究结果。在五个不同的代码库中对各个指标进行测试,以推断出最有效的质量改进指标。发现与代码的更具体元素相关的度量对于驱动搜索中的变化更有用。单目标的遗传算法也测试对多目标算法,看看如何比较所获得的结果与三个单独的目标。当比较每个目标的最佳解决方案时,多目标方法可以在更短的时间内产生适当的质量改进,从而实现快速的维护周期。
2017-10-16 cs.SE
Factors Influencing Performance of Students in Software Automated Test Tools Course
本研究通过分析社区学院软件测试研究生课程的学生数据,利用机器学习算法构建预测模型,发现逻辑回归模型准确率达90%,并识别出影响学生表现的关键因素。
2024-05-31 cs.SE
A framework for quantitative modeling and analysis of highly (re)configurable systems
本文介绍了我们的方法,定量建模和分析的高度(可重)配置的系统,如软件产品线。这样的系统的可选特征的不同组合在组合上产生许多单独的系统变体。我们使用一种正式的建模语言,使我们能够建模系统的概率行为,可能受到定量功能的约束,并能够动态安装,删除或替换功能。更确切地说,我们的模型定义在概率面向特征的语言QFLAN,一个丰富的域特定语言(DSL)的系统与功能定义的可变性。QFLAN规范自动编码的过程代数的操作行为与存储的约束,因此允许分离的系统配置系统行为。由此产生的概率配置和行为无缝收敛在基于离散时间马尔可夫链的语义,从而使定量分析。我们的分析是基于统计模型检验技术,这使我们能够扩展到更大的模型与精确的概率分析技术。我们可以进行的分析范围从特定行为的可能性到特定系统变体的预期平均成本(根据特征属性)。我们的方法是由一个新的基于Excel的工具,其中包括国家的最先进的DSL公用事业QFLAN的基础上的Xtext框架以及分析插件无缝运行统计模型检验分析的支持。我们提供了一些案例研究,推动和验证了我们的框架的发展。
2018-04-04 cs.SE
Towards Automated Governance: A DSL for Human-Agent Collaboration in Software Projects
本文提出一种领域特定语言(DSL),用于定义和强制执行涉及人类与AI智能体的软件项目中的治理政策,旨在实现更健壮、可适应且自动化的治理,以促进开源软件等项目的有效协作。
2025-10-16 cs.SE
A Survey on Automated Log Analysis for Reliability Engineering
日志是由软件源代码中的日志语句生成的半结构化文本。近几十年来,软件日志在许多软件系统的可靠性保证机制中已变得必不可少,因为它们通常是记录软件运行时信息的唯一可用数据。随着现代软件向大规模发展,日志的数量迅速增加。为了使现代软件日志在可靠性工程中的有效和高效的使用,已经进行了一些研究自动日志分析。本调查详细介绍了自动日志分析研究的概况,包括如何自动化和辅助日志语句的编写,如何压缩日志,如何将日志解析为结构化事件模板,以及如何使用日志来检测异常,预测故障和促进诊断。此外,我们还调查了发布开源工具包和数据集的工作。基于对最新进展的讨论,我们提出了几个有前途的未来方向,现实世界和下一代自动日志分析。
2021-06-01 cs.SE
Automated and manual testing as part of the research software development process of RCE
研究软件通常由个人研究人员或小型团队在研究工作的同时开发。越多的人和研究项目依赖于有问题的软件,软件更新正确实现新功能并且不引入回归就越重要。因此,研究软件的开发人员必须在实现新功能和彻底测试任何代码更改之间平衡他们有限的资源。我们提出的过程中,我们使用的开发分布式集成框架RCE在DLR。这些过程旨在在自动化和手动测试之间取得平衡,减少测试开销,同时尽早解决问题。我们还简要描述了这些测试过程如何与周围的开发和发布过程集成。
2022-04-12 cs.SE
Requirements-Driven Automated Software Testing: A Systematic Review
本文系统综述了需求驱动的自动化软件测试(REDAST),分析156篇文献后发现基于规则的方法占主导、机器学习探索不足,完全自动化罕见,并据此提出未来研究方向。
2025-08-23 cs.SE
Adaptive Automation: Leveraging Machine Learning to Support Uninterrupted Automated Testing of Software Applications
使用自动化软件工具检查软件应用程序的适用性已成为大多数组织的一个重要因素,无论他们是生产内部软件还是简单地定制现成的软件应用程序供内部使用。随着软件解决方案变得越来越复杂,行业越来越依赖于软件自动化工具,但可用软件自动化工具的脆弱性限制了它们的有效性。公司在获得和实现自动化软件方面投入了大量资金,但当维护有效的自动化测试套件的成本超过手动测试所花费的成本和时间时,大多数工具都无法交付。当前一代软件自动化工具的一个缺点是,它们不能在没有频繁(和时间昂贵)的手动干预的情况下适应意外的修改和障碍。这些问题在行业从业者中是公认的,但目前这一代工具都没有利用机器学习和人工智能的进步来解决这些问题。本文提出了一个框架解决方案,利用机器学习的概念,即模糊匹配和错误恢复。建议的解决方案应用自适应技术来从意外的障碍中恢复,否则这些障碍会阻止脚本继续执行。恢复细节在报告中呈现给用户,可以分析该报告以确定恢复程序是否可接受,并且框架将根据用户的决定调整未来的运行。使用这个框架,从业者可以在没有人为干预的情况下运行自动化套装,同时最大限度地降低了时间表延迟的风险。
2015-08-04 cs.SE
A Review on the Process of Automated Software Testing
对自动化、数字化和快速计算的需求使IT部门对高度可靠、高效和经济高效的软件寄予厚望。考虑到软件产品的测试、验证和确认过程消耗了总收入的50-75%,如果测试过程是无效的,则必须投入“n”倍的支出来修复所造成的破坏。项目完成的延迟通常归因于测试阶段,因为调试过程有许多周期。软件测试过程确定向用户发布的产品的外观。它设定了公司产品的标准和可靠性。随着复杂性的增加,测试变得越来越激烈,以便检查所有的离群值和处理流程的各个分支。测试过程是自动化的,使用软件工具,以避免繁琐的手动过程中的测试输入生成和验证标准,这证明程序只有在一定的置信水平,在存在离群值。
2022-09-07 cs.SE
Automated Software Testing Using Metahurestic Technique Based on An Ant Colony Optimization
软件测试是软件开发生存周期中重要而有价值的一部分。由于时间,成本和其他情况,详尽的测试是不可行的,这就是为什么有必要自动化的软件测试过程。状态转换测试(STT)是实时的、嵌入式的、基于Web的软件系统中常用的测试方法。本文的目的是提出一种算法,通过应用蚁群优化技术,生成最佳和最小的测试序列的行为规格说明的软件。本文提出的方法生成测试序列,以获得完整的软件覆盖率。本文还讨论了基于转换的测试的两种元启发式技术(遗传算法和蚁群优化)之间的比较
2011-06-14 cs.SE
Selene: Pioneering Automated Proof in Software Verification
本文介绍 Selene,这是第一个基于 seL4 微内核构建的项目级自动化证明基准,提供端到端证明生成框架和轻量级验证环境,并通过 GPT-3.5-turbo 和 GPT-4 等实验展示了LLM 在自动化证明生成领域的能力能力。
2024-06-05 cs.SE
Software Framework for Testing of Automated Driving Systems in a Dynamic Traffic Environment
自动驾驶系统(ADS)的虚拟测试已成为所有自动化水平测试程序的重要组成部分。由于自动化水平3及以上的ADS非常复杂,因此对此类系统进行虚拟测试是不可避免的。这些层次的复杂性在于对虚拟环境的建模和计算需求,虚拟环境包括道路、交通、静态和动态对象以及汽车本身的建模。对于ADS的安全性和性能分析,最重要的部分是道路交通参与者的建模和考虑。有多种交通流仿真软件(TFSS)用于再现真实的交通行为,并直接或通过接口与车辆仿真软件(VSS)集成。对于这些软件环境,以定义的方式操纵交通参与者的可能性是有益的,例如在被测车辆附近或实现用于交通车辆的定义的驾驶员模型。在本文中,我们提出了一个软件框架的基础上提供的外部驱动程序模型接口的Vissim。这个框架使得它可以很容易地操纵交通参与者的ADS测试的目的。
2021-03-24 cs.SE
ARTENOLIS: Automated Reproducibility and Testing Environment for Licensed Software
动机:自动测试代码变更是持续集成的一个基本特性。对于开源代码,没有许可的依赖关系,存在各种持续集成服务。基于约束的重建和分析(COBRA)是一套用于计算建模的开源代码,依赖于许可软件。一个新的自动化框架的持续集成在半许可证的环境中需要开发的COBRA社区和相关工具的COBRA。结果如下:ARTENOLIS是一个通用的基础设施软件应用程序,它实现了开源软件与许可依赖项的持续集成。它使用主从框架,在多个操作系统和多个版本的许可软件依赖项上测试代码。ARTENOLIS确保COBRA工具和相关工具中代码的稳定性、完整性和跨平台兼容性。可用性和实施:可通过artenolis.lcsb.uni.lu免费访问持续集成服务器,该服务器是再现性和测试基础设施的核心。持续集成框架代码位于/.ci目录中,位于存储库的根目录下,可在github.com/opencobra/cobratoolbox上免费获得。
2017-12-01 cs.SE
Towards Automated Data Integration in Software Analytics
软件组织希望能够根据最新的可用数据集以及从中获得的实时分析做出决策。为了支持软件组织的“实时企业”,并为不同的利益相关者提供信息透明性,我们整合了关于软件分析的异构数据源,如静态代码分析、测试结果、问题跟踪系统、网络监控系统等,以处理底层数据源的异构性,我们在本文中遵循基于本体的数据集成方法,并定义了一个本体,该本体捕获用于软件分析的相关数据的语义。此外,我们专注于这样的数据源的集成,提出了两种方法:静态和动态的。我们首先讨论了当前的静态方法与一组预定义的分析视图表示软件质量因素,并进一步设想如何将此过程自动化,以动态构建自定义用户分析使用半自动平台管理的分析基础设施的生命周期。
2018-08-16 cs.SE
Unlocking the Secrets of Software Configuration Landscapes-Ruggedness, Accessibility, Escapability, and Transferability
本文对三个真实软件系统在32个工作负载上的8600万个配置进行首次适应度景观分析,揭示配置景观崎岖但顶级局部最优可达、较差局部最优可逃逸且跨负载结构相似,为配置调优的元启发式设计提供基础。
2024-02-02 cs.NE cs.SE
Automated Extraction and Analysis of Developer's Rationale in Open Source Software
本研究基于Kantara架构实例化,结合预训练模型与大语言模型提出开源软件开发者设计理由的自动化提取分析方法,可检测推理冲突与设计退化问题,经Linux内核OOM-Killer模块及五个高活项目验证具备可行性与泛化潜力,助力开发者规避变更冲突。
2025-04-22 cs.SE
Prompts Matter: Insights and Strategies for Prompt Engineering in Automated Software Traceability
本文探讨了自动化软件可追溯性中的提示工程,提出了构建有效提示的方法与利用LLM生成可追溯性链接的多种策略,改进了零样本方法在候选链接排序上的表现,旨在启发未来研究。
2023-08-01 cs.SE
A Comprehensive Survey of Benchmarks for Automated Improvement of Software's Non-Functional Properties
针对软件非功能属性自动改进缺乏标准基准的问题,本调查系统梳理了386篇相关论文,发现执行时间最受关注(62%),多目标改进罕见(5%),并提供了基准选择建议,以促进该领域研究。
2022-12-16 cs.SE
Automated System-Level Software Testing of Industrial Networked Embedded Systems
嵌入式系统无处不在,在工业和交通管理系统中发挥着关键作用。这些领域中的软件故障可能导致生产损失甚至生命损失,因此这些系统中的软件需要可靠。软件测试是嵌入式软件质量保证的标准方法,许多软件开发过程都在努力实现测试自动化。在成功的软件测试自动化所面临的众多挑战中,本文解决了五个问题:(i)了解更新的软件如何到达测试环境,测试如何在测试环境中进行,以及测试结果如何到达最初更新软件的开发人员;(ii)在给定的可用时间和测试系统的约束下,选择哪些测试用例在测试套件中执行;(iii)假定测试用例在连接的设备的不同配置上运行,则选择哪个硬件用于要执行的每个测试用例;(iv)分析当随时间在演进的软件、测试件或硬件修订版上执行时看起来随机失败的测试用例;以及(v)利用测试结果探索和可视化使测试结果信息可操作。应对这些挑战的方式有几种。[摘要被截断。]
2021-11-16 cs.SE
SAFFRON: A Semi-Automated Framework for Software Requirements Prioritization
由于当前软件开发方法的动态性质,需求的变化被接受并给予适当的考虑。然而,这引发了排名颠倒问题,涉及到根据涉众的反馈重新确定需求的优先级。由于大量的人类交互所花费的时间,它产生了巨大的成本。针对这一问题,本文提出了一个软件需求优先级半自动化框架SAFFRON。对于特定的需求,SAFFRON预测适当的利益相关者的评级,以减少人类的互动。最初,项目-项目协同过滤是用来估计新的和以前引出的需求之间的相似性。利用这种相似性,确定最有可能对需求进行评级的利益相关者。然后,基于潜在因素模型的协同过滤被用来预测这些利益相关者的评级。在RALIC数据集上实现并测试了该方法。结果表明,与现有技术方法类似,与地面实况一致相关。此外,SAFFRON需要减少13.5-27%的人工交互来重新确定需求的优先级。
2017-12-31 cs.SE
Classification of automatic software build methods
从源代码和其他组件(如库、数据库文件等)创建工作软件的过程。被称为“软件构建”。除了链接和编译,它还可以包括其他步骤,如自动化测试,静态代码分析,文档生成,部署等。所有这些步骤都可以使用某种类型的构建描述(例如脚本)来自动化。本文对自动软件构建过程进行了分类,从构建脚本开始,一直到各种类型的持续集成。
2013-05-21 cs.SE
Automated Testing of the GUI of a Real-Life Engineering Software using Large Language Models
本文提出GERALLT系统,利用大型语言模型自动测试真实工程软件GUI,生成潜在不直观和不一致界面问题列表,经真实用例评估,能有效支持软件开发团队。
2025-05-23 cs.SE
Automated Test Case Generation using Petri Nets
软件测试是确定软件系统的精度、质量、完整性和安全性的过程。软件测试的一个重要步骤是测试用例的生成,测试用例的质量对测试的时间和成本起着至关重要的作用。在这项研究中,它表明,结构和行为图可以用来表示规格在一个单一的模型,使用高级Petri网(HLPN)。本文研究了基于Petri网的测试模型自动生成问题。此外,从非形式化模型(UML)生成一致的形式化模型(HLPN)是本研究的重点。
2015-09-28 cs.SE
Specialization of Run-time Configuration Space at Compile-time: An Exploratory Study
许多软件系统通过运行时间选项(如命令行参数)是高度可配置的。用户可以调整某些选项,以满足各种功能和非功能需求,如占用空间、安全性或执行时间。然而,有些选项从来没有为给定的系统实例设置过,无论系统的用例如何,它们的值都保持不变。在此,我们设计了一个受控实验,其中系统的运行时间配置空间可以在编译时专门化,并且可以根据需要删除选项的组合。我们对著名的x264视频编码器进行了深入的研究,并量化了其专业化对其非功能属性的影响,即二进制大小,攻击面和性能,同时确保其有效性。我们的探索性研究表明,系统的可配置专业化具有统计上的显着好处,其分析的非功能性的属性,这些好处取决于的debloated选项的数量。虽然我们的实证结果和见解表明,删除与未使用的运行时间选项,以改善软件系统的代码的重要性,一个开放的挑战是进一步自动化的专业化过程。
2022-10-25 cs.SE