
引言SBFT研讨会International Workshop on Search-Based and Fuzz Testing是软件工程领域的顶会ICSE会议International Conference on Software Engineering下设的研讨会之一。SBFT全称中的Fuzz Testing指的是模糊测试又称Fuzzing。模糊测试是软件测试方法中的一种这种测试方法通过输入无效的、随机的或期望之外的数据来观察软件运行是否会出现故障从而发现软件中的缺陷和漏洞。SBFT研讨会今年即SBFT 2026设立了三项竞赛其中的一项竞赛是无人机测试竞赛SBFT Tool Competition 2026 – UAV Testing Track。该项竞赛已于今年四月份结束竞赛的组织人员来自欧洲和加拿大的几所大学。SBFT 2026无人机测试竞赛随着自主航行的无人机在交通、物流、农业、环境监测、应急响应、工业自动化、设备和设施检测等行业的应用日益广泛其可靠性与安全性也日益成为一个不容忽视的问题。针对ArduPilot、PX4等无人机飞控系统在软件仿真环境中进行测试可以较方便地覆盖飞控系统配置与环境之间的大量组合并且在实际飞行前有效发现飞控系统中可能存在的一些问题。为了提升软件测试社区对无人机仿真测试方向的关注度SBFT研讨会自2024年起已连续三年举办了无人机飞控系统的仿真测试竞赛。该系列竞赛为参赛团队提供无人机仿真开发环境要求参赛团队基于该仿真开发环境设计出能够生成高质量测试用例的工具并高效生成多样化、有难度的测试用例以发现PX4无人机飞控系统中自主避障功能即PX4-Avoidance的潜在缺陷和漏洞[1]。无人机仿真环境竞赛中的无人机仿真环境采用的是Aerialist[2][3]。该仿真环境的设计旨在简化、自动化无人机的测试流程。参赛团队使用Aerialist仿真环境时可以专注于测试用例生成工具的开发由Aerialist来完成环境设置、执行测试用例、模拟真实世界特性、生成、分析飞行日志文件等其它工作。Aerialist仿真环境支持PX4飞控系统。竞赛规则竞赛要求测试用例通过在仿真环境中设置不同大小、位置和朝向的矩形障碍物尽量使得无人机在自主避障时与障碍物发生碰撞或者形成与障碍物距离过近距离1.5米的情况。仿真环境中无人机与障碍物距离过近的一个示例其中灰色矩形代表障碍物红色线代表无人机飞行轨迹[1]今年竞赛的其它主要规则包括在每个测试用例中生成障碍物的数量最多是3个障碍物的大小有一定限制障碍物始终放置于地面且其顶部高于无人机飞行的最大高度障碍物的摆放应允许无人机按某种航线通过不应形成无人机不可能通过的布局例如形成长长的墙航点Waypoints为预先设定参赛团队将竞赛提供的github仓库进行复制Fork使用复制的仓库进行开发提交时提交参赛仓库的地址或参赛仓库的压缩文件夹。竞赛的评测今年的竞赛针对4个Case Studies可以理解为4个场景分别进行评测。每个Case Study设有不同的任务区域形状矩形或三角形、以及3到4个航点Waypoints。每个Case Study和每个参赛工具评测时最多允许进行100次仿真并选择至多20个导致自主避障失败即与障碍物发生碰撞、或者飞行轨迹与障碍物距离过近的测试用例从两个方面进行考核[1]。方面1记录在这些测试用例中飞行轨迹与障碍物之间的最近距离并根据生成障碍物的数量以及测试运行时间对最近距离进行调整。方面2衡量这些测试用例的多样性包括输入多样性和输出多样性输入多样性首先计算这些测试用例中障碍物所占地块的并集该并集的面积越大越好输入多样性还考核各测试用例中的障碍物所占地块是否大小不一大小不一的程度越高越好输出多样性鼓励各测试用例中的飞行轨迹存在差异性衡量这种差异性时首先采用动态时间规整Dynamic Time Warping、简称DTW来衡量各飞行轨迹时间序列之间的相似度然后依据该相似度在各条飞行轨迹中找出每条飞行轨迹的最近邻Nearest Neighbor、以及相应的最近DTW距离最后计算各条飞行轨迹的的平均值。基线方案竞赛的基线方案以无人机飞行轨迹与障碍物之间的最近距离为优化目标针对障碍物的设置进行自适应贪婪搜索从而生成测试用例[4]。基于LLM的参赛方案LLM曾被用于无人机的模糊测试具体场景是针对大量随机测试用例由LLM来评估哪些测试用例更有可能触发飞控系统的漏洞和缺陷应用的结果表明LLM的引入产生了明显优于传统方法的效果[5]。在SBFT 2026无人机测试竞赛中基于LLM的方案[6]再度亮相并且在竞赛排名、以及全部4个Case Studies的几乎所有评测项上展现了对基线方案的超越。这一基于LLM的参赛方案其公布的架构图如下所示[6]。该参赛方案由两个阶段组成。阶段1针对输入的、无障碍物时的假想正常航线由LLM生成初始的一批测试用例即障碍物意在阻碍假想正常航线的飞行。该阶段使用了以下的LLM提示语[6]其中包括对生成结果等的要求。阶段1中还包含以下的步骤检查、过滤生成的测试用例将过滤后的测试用例送至Aerialist仿真环境中运行运行结果较好的测试用例进入下一阶段。阶段2针对上一阶段输出的测试用例采用LLM进行变异Mutation即局部调整以增加测试用例在仿真环境中造成无人机自主避障失败的可能。相关的LLM提示语如下图所示[6]提示语中包括输入数据、以及对规则、变异Mutation策略、输出结果等的解释。阶段2中还包含以下的步骤对LLM生成的结果进行检查和过滤过滤后的生成结果送至Aerialist仿真环境中进行评测循环执行本阶段的各主要步骤直至用完竞赛分配的Aerialist仿真次数。该参赛方案所生成的两个测试用例如以下两图所示。图中可见障碍物的设置为无人机避障带来一定难度。参考文献[1]SBFT Tool Competition 2026 – UAV Testing Trackhttps://doi.org/10.1145/3786155.3795696使用许可协议CC BY 4.0https://creativecommons.org/licenses/by/4.0/[2]https://github.com/skhatiri/Aerialist[3]Simulation-based Testing of Unmanned Aerial Vehicles with Aerialisthttps://doi.org/10.1145/3639478.3640031使用许可协议CC BY 4.0https://creativecommons.org/licenses/by/4.0/[4]Simulation-based Test Case Generation for Unmanned Aerial Vehicles in the Neighborhood of Real Flightshttps://doi.org/10.1109/ICST57152.2023.00034[5]SAFLITE: Fuzzing Autonomous Systems via Large Language Modelshttps://arxiv.org/abs/2412.18727使用许可协议CC BY 4.0https://creativecommons.org/licenses/by/4.0/[6]CAAI-ST: Constraint-Aware AI-Guided Seed Generation and Mutation for CPS-UAV System Testinghttps://doi.org/10.1145/3786155.3795703使用许可协议CC BY 4.0https://creativecommons.org/licenses/by/4.0/封面图Annie Spratt、Unsplash