Handling Constraints in Combinatorial Interaction Testing in the presence of Multi Objective Particle Swarm and Multithreading
背景:组合测试策略最近由于其不同的应用而受到了广泛的关注。在其简单的形式中,组合策略可以基于它们的相互作用(或组合)将系统的几个输入参数(配置)减少到一个小集合中。在实践中,软件系统的输入配置受到约束,特别是在高度可配置的系统的情况下。要在策略中实现这一功能,会给构造带来许多困难。虽然现在有很多组合交互测试策略,但很少有支持约束的。目的:本文提出了一种新的策略,在存在约束条件的情况下构造组合交互测试集。方法:给出了详细的设计和算法.为了克服多个判断标准的最优解,多目标粒子群优化和多线程。该战略及其相关的算法进行了广泛的评估,使用不同的基准和比较。结果:我们的结果是有前途的评价结果显示了每个算法的效率和性能的战略。基准测试的结果也表明,该策略可以有效地生成约束测试套件相比,国家的最先进的战略。结论:该策略为约束组合交互测试集的构建提供了一种新的思路。该战略可为今后的执行工作奠定新的有效基础。
2018-04-20 cs.SE
Achievement of Minimized Combinatorial Test Suite for Configuration-Aware Software Functional Testing Using the Cuckoo Search Algorithm
软件已经成为当今科学和工程中许多应用和方法的创新解决方案。确保软件的质量和正确性具有挑战性,因为每个程序都有不同的配置和输入域。为了确保软件的质量,所有可能的配置和输入组合都需要根据其预期输出进行评估。然而,由于输入和配置的大范围所导致的时间和资源限制,这种详尽的测试是不切实际的。因此,不同的采样技术已被用于对这些输入域和配置进行采样。目的:组合测试可以有效地检测被测软件中的错误。该技术使用组合优化概念,通过考虑输入的组合来系统地最小化测试用例的数量。提出了一种利用布谷鸟搜索概念生成组合测试用例集的新策略。方法:布谷鸟搜索用于设计和实现的策略,以构建优化的组合集。该策略由不同的构造算法组成。这些算法结合起来为布谷鸟搜索服务。结果:通过不同的实验组证明了新技术的效率和性能。该策略的有效性进行评估,通过应用所生成的测试套件对一个真实世界的案例研究功能测试的目的。结论:结果表明,生成的测试集可以有效地检测故障。此外,该策略还为布谷鸟搜索在软件工程背景下的应用开辟了新的方向。
2019-03-25 cs.SE
Generalized Coverage Criteria for Combinatorial Sequence Testing
针对以动作与断言序列为测试向量的系统,提出广义序列覆盖准则、测试套件生成工具及贝叶斯风险量化框架,并实证验证其缺陷发现、风险评估与覆盖效果。
2023-10-31 cs.SE
Constrained Detecting Arrays: Mathematical Structures for Fault Identification in Combinatorial Interaction Testing
检测阵列是一种数学结构,其目的是在组合交互测试中识别故障。然而,它们不能直接应用于在测试参数之间具有约束的系统。这样的约束在现实世界的系统中是普遍存在的。目的:本文提出了约束检测阵列(CDA),检测阵列的扩展,可用于系统的约束。方法:本文通过严格的论证来考察CDA的性质和能力。本文还提出了两种构造CDA的算法:一种是以生成最小CDA为目标的算法,另一种是以快速生成CDA为目标的启发式算法。通过实验使用基准数据集的算法进行评估。结果如下:实验结果表明,第一种算法可以在足够长的生成时间内生成最小的CDA,第二种算法可以在合理的时间内生成最小或接近最小的CDA。结论:CDAs增强了检测阵列在有约束系统中的应用。这两种算法在数组大小和生成时间上具有不同的优势
2021-10-13 cs.SE
Code-Aware Combinatorial Interaction Testing
组合交互测试(CIT)是解决软件系统中输入参数交互的有效测试技术。在许多应用中,该技术已被用作一种系统的抽样技术,对测试用例的巨大可能性进行抽样。在过去的十年中,大多数的研究活动集中在CIT测试套件的生成,因为它是一个计算复杂的问题。虽然有希望,但在应用CIT方面付出的努力较少。一般来说,要应用CIT,从业者必须确定被测软件(SUT)的输入参数,将这些参数提供给CIT工具以生成测试套件,然后在应用程序上运行这些测试,并使用某些通过和失败标准进行验证。使用这种方法,CIT被用作黑盒测试技术,而不知道内部代码的效果。虽然有用,但实际上,并非所有参数对SUT具有相同的影响。本文介绍了一种不同的方法来使用CIT作为一个灰盒测试技术,通过考虑内部代码结构的SUT知道每个输入参数的影响,从而使用这种影响在测试生成阶段。我们将我们的方法应用于五个可靠的案例研究。结果表明,该方法将有助于检测新的故障相比,等影响参数的方法。
2019-07-21 cs.SE
Constrained locating arrays for combinatorial interaction testing
本文介绍了约束定位阵列(CLAs)的概念,它是一种可用于软件测试中故障定位的数学对象。CLA扩展了普通的定位数组,使其适用于测试参数有约束的系统的测试。这样的限制是常见的,在现实世界的系统,因此CLA增强了定位阵列的实际测试问题的适用性。本文还提出了一种构造CLAs的算法。实验结果表明,该算法可扩展到实际规模的问题。
2019-05-31 cs.DM cs.SE
An Extensive Empirical Study on Evaluation Metrics for Combinatorial Interaction Testing
School of Computer Science and Engineering, Macau University of Science and Technology(澳门科技大学计算机科学与工程学院);Macau University of Science and Technology Zhuhai MUST Science and Technology Research Institute(澳门科技大学珠海澳门科技大学研究院);School of Information Science and Technology, Dalian Maritime University(大连海事大学信息科学与技术学院);School of Science, University of Tokyo(东京大学理学部);Department of Electrical and Computer Engineering, University of Alberta(阿尔伯塔大学电气与计算机工程系)
本研究系统综述组合交互测试的黑盒评估指标,并通过涵盖32个测试场景和295,624个测试套件的实证分析,发现值组合覆盖率(VCC)是有效的预测指标,且基于分布的指标计算成本更低,最终为从业者提供了指标选择指南。
2026-10-05 cs.SE
Systematic Training and Testing for Machine Learning Using Combinatorial Interaction Testing
National Security Institute, Virginia Tech(弗吉尼亚理工学院国家安全研究所);The MITRE Corporation(米特雷公司)
本文演示了系统地使用组合覆盖来选择和表征机器学习模型的测试和训练集。所提出的工作适应组合交互测试,这已成功地利用在软件测试中识别故障,表征数据用于机器学习。MNIST手写数字数据用于证明组合覆盖可用于选择强调机器学习模型性能的测试集,选择导致鲁棒模型性能的训练集,以及选择用于微调模型到新领域的数据。因此,结果证明了组合覆盖作为机器学习训练和测试的整体方法。与以前的工作集中在使用覆盖方面的内部神经网络,本文认为覆盖简单的功能来自输入和输出。因此,本文解决了机器学习模型的测试和训练集的供应商对模型本身没有知识产权的情况。最后,本文解决了先前的批评组合覆盖,并提供了一个反驳,主张在机器学习应用程序中使用的覆盖度量。
2022-01-28 cs.LG cs.SE stat.ML
Can Pairwise Testing Perform Comparably to Manually Handcrafted Testing Carried Out by Industrial Engineers?
测试是工业软件工程中的一项重要活动。对于这样的软件,测试通常是手动执行的手工制作测试套件的基础上特定的设计技术和特定领域的经验。为了支持开发人员进行测试,已经提出了不同的方法来生成良好的测试套件。在过去的几年中,组合测试已经被探索,其目标是基于一定的策略自动组合软件的输入值。成对测试是一种组合技术,用于通过改变系统的每对输入参数的值直到创建这些参数的所有可能组合来生成测试套件。有一些证据表明,这类技术是有效的,相对较好地检测软件故障。不幸的是,几乎没有实验证据的比较,这些组合测试技术,被认为是严格的手工制作的测试。在这项研究中,我们比较成对的测试套件与手动创建的测试套件的工程师为45个工业程序。测试套件进行了评价的故障检测,代码覆盖率和测试数量。这项研究的结果表明,成对测试,而实现高代码覆盖率和故障检测的大多数程序是有用的,几乎是有效的手动测试在故障检测方面。结果还表明,在64%的程序中,成对测试在故障检测方面与手动测试一样好。
2017-06-06 cs.SE
Avocado: Open-Source Flexible Constrained Interaction Testing for Practical Application
本文介绍了学术界和工业界之间的研究合作的成果,以实现和利用工业规模应用的开源工具的约束交互测试的能力。该项目有助于提高生成约束交互测试套件、执行它们以及设置测试Oracle来报告它们的灵活性--所有这些都在同一个名为Avocado的工具中。Avocado采用约束求解器和计算算法来生成约束交互测试套件。被测应用程序的环境可以设置为以最小的工作量执行生成的测试套件。该工具可以设置一个测试预言机来报告执行的测试用例的状态和结果。Avocado代表了一种全面而灵活的解决方案,用于在工业应用中进行组合交互测试(CIT)和约束CIT。在本文中,我们提出了该工具的结构和我们的方法来实现算法的详细。
2020-02-02 cs.SE
A Benchmark Generator for Combinatorial Testing
Universitat de Lleida(莱里达大学)
组合测试(CT)工具对于正确测试各种系统(训练系统、图形用户界面(GUI)、自动驾驶系统等)至关重要。虽然有一个积极的研究社区致力于开发CT工具,矛盾的是,很少有人注意到提供足够的资源来测试CT工具本身。特别是,评估其正确性、有效性和效率的一套可用基准相当有限。在本文中,我们介绍了一个新的生成器的CT基准,基本上借用了结构中包含的过多的可用组合问题从其他研究社区,以创建有意义的基准。我们还使用这些新的基准对CT工具进行了广泛的评估。由于这项研究,我们提供了一些见解,在何种情况下应使用特定的CT工具。
2023-01-24 cs.AI cs.SE
Combinatorial Testing for Deep Learning Systems
Harbin Institute of Technology(哈尔滨工业大学);Nanyang Technological University(南洋理工大学);New York University Shanghai(上海纽约大学);University of Illinois at Urbana–Champaign(伊利诺伊大学厄巴纳-香槟分校);Kyushu University(九州大学)
深度学习(DL)在过去十年中取得了显著的进展,并被广泛应用于许多安全关键型应用。然而,DL系统的鲁棒性最近受到了极大的关注,例如对抗计算机视觉系统的示例,这可能会导致严重的后果。采用测试技术可以帮助评估DL系统的健壮性,从而在早期阶段发现漏洞。测试这类系统的主要挑战是它的运行时状态空间太大:如果我们将每个神经元视为DL的运行时状态,那么DL系统通常包含大量状态,几乎不可能测试每个状态。对于传统的软件来说,组合测试(CT)是一种有效的测试技术,它可以在获得较高缺陷检测能力的同时减少测试空间。在本文中,我们进行了探索性的研究CT DL系统。我们适应CT的概念,并提出了一套覆盖标准的DL系统,以及CT覆盖引导的测试生成技术。我们的评估表明,CT提供了一个很有前途的途径测试DL系统。我们进一步提出了几个开放的问题和有趣的方向DL系统的组合测试。
2018-06-20 cs.AI cs.CR cs.SE
Fuzzy Adaptive Tuning of a Particle Swarm Optimization Algorithm for Variable-Strength Combinatorial Test Suite Generation
组合交互测试是一种重要的软件测试技术,近年来引起了广泛的关注。它可以通过考虑输入参数组合之间的相互作用来减少测试用例的数量。经验证据表明,它可以有效地检测故障,特别是高度可配置的软件系统。在实际的软件测试中,输入变量之间的交互作用可能会有所不同,变强度组合交互测试(VS-CIT)可以利用这一点来提高测试效率。变强度测试集的生成是一个非确定性的多项式时间(NP)计算难题\cite{BestounKamalFuzzy2017}。研究表明,与VS-CIT问题的替代方案相比,粒子群优化(PSO)等基于随机种群的算法可能是有效的。然而,它们需要对开发和探索权衡进行详细控制,以避免过早收敛(即陷入局部最优)以及提高解决方案的多样性。在这里,我们提出了一个新的变种的PSO Mamdani模糊推理系统\cite{Camastra2015,TSAKIRIDIS2017257,KHOSRAVANIAN2016280}的基础上,允许自适应选择其全局和局部搜索操作。我们详细介绍了这种组合算法的设计,并通过多个合成和基准问题的实验进行评估。我们的结论是,模糊自适应选择的全局和局部搜索操作,至少是可行的,因为它只执行第二个最好的离散变异的PSO,称为DPSO。在获得最佳平均测试集规模方面,模糊自适应有时甚至优于DPSO。我们讨论了这种性能背后的原因,并概述了未来工作的相关领域。
2018-10-13 cs.SE
Using binary decision diagrams for constraint handling in combinatorial interaction testing
组合交互测试中测试参数之间的约束关系对测试用例生成的性能有着重要的影响。本文研究了使用二元决策图(BDD)的约束处理的有效性。BDD是一种用于表示和操作布尔函数的数据结构。约束处理程序的核心作用是执行检查,以确定具有未指定参数值的部分测试用例是否满足约束。在生成测试套件的过程中,这种检查会被执行多次;因此,检查的效率会显著影响测试用例生成所需的总时间。在本文中,我们研究了两种不同的方法。第一种方法通过计算布尔函数的逻辑与来执行这种检查,布尔函数代表所有满足约束的完整测试用例和给定的部分测试用例。第二种方法使用一种新的技术来构造一个BDD,表示所有的约束满足部分测试用例。使用此BDD,可以通过简单地从根到接收器遍历BDD来执行检查。我们开发了一个程序,将这两种方法到IPOG,一个著名的测试用例生成算法。使用这个程序,我们经验性地评估这些基于BDD的约束处理方法的性能,共使用62个问题的实例。在评估中,这两种方法进行了比较,三种不同的约束处理方法,即基于布尔可满足性(SAT)解决,最小禁止元组(MFTs),和约束满足问题(CSP)解决。评估结果表明,这两个BDD为基础的方法通常优于其他约束处理技术和BDD为基础的方法,使用新的技术表现出最好的性能。
2019-07-03 cs.SE
Generating Pairwise Combinatorial Interaction Test Suites Using Single Objective Dragonfly Optimisation Algorithm
组合交互测试作为一种有效的软件测试技术,近年来得到了广泛的关注。它显示了它的能力,以减少测试用例的数量,必须考虑的被测软件的参数的组合作为一个相互作用的输入。这种组合可以被认为是不同软件系列的输入配置。成对组合测试集考虑了两个输入参数的交互作用,而不是多个参数的交互作用。有证据表明,该测试套件可以检测到大多数的故障在测试中的软件相比,更高的相互作用。本文提出了一种生成两两组合测试集的新技术。并对一种新的群智能优化算法--龙飞算法(DF)进行了评价.文中详细介绍了算法的设计和自适应过程。该算法通过不同的实验和基准测试进行了广泛的评估。评估表明,所提出的技术的效率测试套件生成和DF优化算法的有用性,为今后的调查。
2019-04-09 cs.SE
Towards Statistical Prioritization for Software Product Lines Testing
由于要考虑的产品数量的组合爆炸,软件产品线(SPL)本质上很难测试。为了减少要测试的产品的数量,已经提出了诸如组合交互作用测试的采样技术。它们通常从特征模型开始,并应用覆盖标准(例如成对特征交互或相异性)来生成易于处理的、故障查找的待测试配置列表。优先级也可以用于排序/生成这样的列表,优化覆盖标准或分配给特征的权重。然而,目前的采样/优先级技术几乎没有考虑到产品的行为。我们探讨如何统计测试的想法,使用模型(马尔可夫链)的基础上,可以用来提取配置的兴趣,根据他们的执行的可能性。这些执行被收集在特征转换系统中,紧凑地表示SPL行为。我们讨论了可能的情况下,并给出了一个例子说明的优先顺序的程序。
2014-01-23 cs.SE
Bypassing the Combinatorial Explosion: Using Similarity to Generate and Prioritize T-wise Test Suites for Large Software Product Lines
软件产品线(SPLs)是一系列产品,其共性和可变性可以通过特征模型(FM)来捕获。t-wise测试旨在发现由t个特征之间的所有交互触发的错误,从而大大减少要测试的产品数量。SPL的T-方式测试方法仅限于小的t值-这会错过错误的交互-或者受到FM大小的限制。此外,它们既没有对要测试的产品进行优先级排序,也没有提供精细控制生成过程的方法。本文提供了(a)一种基于搜索的方法,能够生成大型SPL的产品,形成一个可扩展的和灵活的替代目前的技术和(b)优先级算法的任何一组产品。在124个功能模块(包括Linux内核等大型功能模块)上进行的实验证明了该方法的可行性和实用性。
2012-11-23 cs.SE
Constrained Adversarial Learning for Automated Software Testing: a literature review
ISep
本综述梳理了应用于对抗学习与软件测试的约束数据生成方法研究现状,体系化分析不同测试场景方法的优劣势,为用对抗测试优化测试工具、提升系统鲁棒性提供指导。
2025-05-19 cs.LG cs.SE
Constrained Co-evolutionary Metamorphic Differential Testing for Autonomous Systems with an Interpretability Approach
School of EECS, University of Ottawa(渥太华大学电气与计算机工程学院);Lero SFI centre for Software Research, University of Limerick(利默里克大学Lero软件研究中心);Waterloo Research Center of Huawei Technologies Canada Co., Ltd.(华为技术有限公司加拿大分公司滑铁卢研发中心)
本文提出CoCoMagic方法,结合元形测试、差分测试和先进搜索技术,通过约束共进化搜索生成可解释的测试用例,有效识别自主系统版本间的行为差异。
2026-05-14 cs.SE
A Practical Approach to Combinatorial Test Design
本书系统介绍组合测试设计(CTD)方法,涵盖建模、约束定义、覆盖需求及工具构建算法,并通过练习帮助读者掌握高效测试设计。
2024-10-25 cs.SE
Random Grammar-based Testing for Covering All Non-Terminals
在软件测试的上下文中,生成复杂的数据输入经常使用基于语法的规范来执行。由于组合的原因,详尽地生成给定大小的数据实际上是不可能的,大多数方法要么基于随机技术,要么基于覆盖标准。在本文中,我们将展示如何结合这两种技术,通过偏置随机生成,以优化满足覆盖标准的概率。
2013-11-26 cs.SE
Supplementary Material for the Information Sciences Paper: An Experimental Study of Hyper-Heuristic Selection and Acceptance Mechanism for Combinatorial t-way Test Suite Generation
软件测试涉及到根据某些定义的规范访问程序功能的过程。为了确保一致性,测试工程师通常会生成一组测试用例来验证用户需求。由于软件的复杂性不断增加,并且越来越多地扩散到各种应用领域,软件项目在多个地点甚至分布在多个大陆上的测试团队已经不再罕见。由于许多软件开发活动的相互依赖性及其地理和时间问题,可能会有许多重叠的测试用例,这可能会导致共享模块之间的不必要的冗余(即,一项要求的测试可能被多项测试覆盖)。在本文中,我们探讨了我们新开发的超启发式,称为模糊推理选择(FIS),解决测试冗余减少问题的应用。本文介绍了对发表在《信息科学》上的论文《超启发式选择和接受机制在组合测试集生成中的实验研究》的补充结果。
2017-02-15 cs.SE
DeepPerform: An Efficient Approach for Performance Testing of Resource-Constrained Neural Networks
UT Dallas(德克萨斯大学达拉斯分校);UC Riverside(加州大学河滨分校)
如今,越来越多的自适应深度神经网络(AdNN)被用于资源受限的嵌入式设备。我们观察到,类似于传统的软件,冗余计算存在于AdNN,导致相当大的性能下降。性能下降取决于输入,被称为输入相关性能瓶颈(IDPB)。为了确保AdNN满足资源受限应用的性能要求,必须进行性能测试以检测AdNN中的IDPB。现有的神经网络测试方法主要关注正确性测试,而不涉及性能测试。为了填补这一空白,我们提出了DeepPerform,这是一种可扩展的方法来生成测试样本,以检测AdNN中的IDPB。我们首先演示了如何生成性能测试样本检测IDPB的问题可以制定为一个优化问题。接下来,我们将展示DeepPerform如何通过学习和估计AdNN的计算消耗分布来有效地处理优化问题。我们在三个广泛使用的数据集上对五个流行的AdNN模型进行了DeepPerform评估。结果表明,DeepPerform生成的测试样本会导致更严重的性能下降(FLOPs:增加到552%)。此外,DeepPerform在生成测试输入方面比基线方法更有效(运行时开销:仅6-10毫秒)。
2022-10-20 cs.CL cs.LG cs.SE
CGDTest: A Constrained Gradient Descent Algorithm for Testing Neural Networks
University of Waterloo(滑铁卢大学)
本文提出受约束梯度下降算法 CGDTest,通过支持用户指定逻辑约束来测试 DNN 的对抗鲁棒性与偏差,在视觉和 NLP 领域优于 32 种方法,展现出更高的表达性、可扩展性与通用性。
2023-04-04 cs.LG cs.SE
Testing Global Constraints
UCLouvain(鲁汶天主教大学)
每个约束编程(CP)求解器都暴露了一个用于解决组合问题的约束库。为了有用,CP求解器需要没有bug。因此,求解器的测试对于使开发人员和用户有信心至关重要。我们提出了一个Java库,允许任何基于JVM的求解器来测试各个约束的实现是正确的。该库可以用于在持续集成工具中执行的测试套件中,也可以用于发现违反某些属性(弧一致性等)的最低限度实例,以帮助开发人员使用标准调试器识别问题的根源。
2018-07-11 cs.AI cs.SE