引言
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 Track
https://doi.org/10.1145/3786155.3795696
使用许可协议:CC BY 4.0
https://creativecommons.org/licenses/by/4.0/
[2] https://github.com/skhatiri/Aerialist
[3] Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
https://doi.org/10.1145/3639478.3640031
使用许可协议:CC BY 4.0
https://creativecommons.org/licenses/by/4.0/
[4] Simulation-based Test Case Generation for Unmanned Aerial Vehicles in the Neighborhood of Real Flights
https://doi.org/10.1109/ICST57152.2023.00034
[5] SAFLITE: Fuzzing Autonomous Systems via Large Language Models
https://arxiv.org/abs/2412.18727
使用许可协议:CC BY 4.0
https://creativecommons.org/licenses/by/4.0/
[6] CAAI-ST: Constraint-Aware AI-Guided Seed Generation and Mutation for CPS-UAV System Testing
https://doi.org/10.1145/3786155.3795703
使用许可协议:CC BY 4.0
https://creativecommons.org/licenses/by/4.0/
封面图:Annie Spratt、Unsplash


502

被折叠的 条评论
为什么被折叠?



