Page 293 - 《软件学报》2021年第6期
P. 293

软件学报 ISSN 1000-9825, CODEN RUXUEW                                        E-mail: jos@iscas.ac.cn
         Journal of Software,2021,32(6):1867−1881 [doi: 10.13328/j.cnki.jos.006254]   http://www.jos.org.cn
         ©中国科学院软件研究所版权所有.                                                          Tel: +86-10-62562563


                                                ∗
         面向 ROS 的差分模糊测试方法

               1,2
                       1,2
                                1,3
                                         1,2
         王   颖 ,   王冰青 ,   关   永 ,   李晓娟 ,   王   瑞  1,2
         1
          (首都师范大学  信息工程学院,北京  100048)
         2 (轻型工业机器人与安全验证北京市重点实验室(首都师范大学),北京  100048)
         3 (电子系统可靠性与数理交叉学科国家国际科技合作示范型基地(首都师范大学),北京  100048)
         通讯作者:  关永, E-mail: guanyong@cnu edu.cn

         摘   要:  机器人操作系统(robot operating system,简称 ROS)是一种广泛应用于机器人开发的开源系统,它可以为
         开发者提供硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能,应用前景广阔.ROS 集成
         了可以实现不同功能的功能包,例如定位绘图、行动规划、感知、模拟等等,但其中可能存在一些漏洞,破坏整个机
         器人系统的安全性和可靠性.提出了一种差分模糊测试方法对 ROS 不同版本的功能包进行测试,找出其中的漏洞.
         该方法包括测试用例生成和差分模糊测试执行两个模块:首先,对于输入文件进行加载、处理,并基于策略生成的方
         法生成测试用例文件;其次,节点间使用话题通信机制实现通信,使用上一模块生成的测试用例文件作为统一的模糊
         输入,对 ROS 不同版本的功能包进行差分模糊测试;接着,对测试结果中的不一致输出进行差异计算并评估,符合评
         估指标的种子将被保留并反馈给用例生成模块循环生成测试用例,有效提高了种子质量及代码覆盖率;最后分析不
         一致输出原因,找出漏洞.将该方法应用在机器人坐标转换的实验中,实现对不同参考系下坐标转换的功能包 TF 和
         TF2 的测试.最终的实验结果表明:与 TF2 相比,TF 在功能实现上更加准确.TF2 实现坐标旋转变换的函数存在漏洞.
         关键词:  差分模糊测试;机器人操作系统;功能包;漏洞检测;可靠性
         中图法分类号: TP311

         中文引用格式:  王颖,王冰青,关永,李晓娟,王瑞.面向 ROS 的差分模糊测试方法.软件学报,2021,32(6):1867−1881. http://www.
         jos.org.cn/1000-9825/6254.htm
         英文引用格式: Wang Y, Wang BQ, Guan Y, Li XJ, Wang R. Differential fuzz testing of robot operating system. Ruan Jian Xue
         Bao/Journal of Software, 2021,32(6):1867−1881 (in Chinese). http://www.jos.org.cn/1000-9825/6254.htm

         Differential Fuzz Testing of Robot Operating System

                                                  1,3
                                                                1,2
                                     1,2
                   1,2
         WANG Ying ,   WANG Bing-Qing ,   GUAN Yong ,   LI Xiao-Juan ,   WANG Rui 1,2
         1 (College of Information Engineering, Capital Normal University, Beijing 100048, China)
         2 (Beijing Key Laboratory of Light Industrial Robot and Safety Verification (Capital Normal University), Beijing 100048, China)
         3 (National International Science and Technology Cooperation Demonstration Base of Interdisciplinary of Electronic System Reliability
          and Mathematics (Capital Normal University), Beijing 100048, China)
         Abstract:    Robot operating system (ROS) is an open source system widely used in Robot development. It can provide developers with
         hardware abstraction, device driver, library function, visualization, messaging, software package management, and other functions, which



            ∗  基金项 目 :  国家重点 研发 计 划 (2019YFB1309900);  国家自 然 科学基 金 (61877040);  首都师 范 大学交 叉研 究 院项目
         (19530012005);  上海控安开放课题
              Foundation item: National Key R&D Plan of China (2019YFB1309900); National Natural Science Foundation of China (61877040);
         Cross Research Institute of Capital Normal University (19530012005); Shanghai Security Open Project
              本文由“形式化方法与应用”专题特约编辑姜宇副教授推荐.
               收稿时间: 2020-08-31;  修改时间: 2020-10-26;  采用时间: 2020-12-19; jos 在线出版时间: 2021-02-07
   288   289   290   291   292   293   294   295   296   297   298