Page 67 - 《软件学报》2026年第1期
P. 67

64                                                         软件学报  2026  年第  37  卷第  1  期


                 结合智能软件系统任务目标特征与应用场景特征时, 如何为各类智能软件系统生成真实有效的测试输入, 如何解
                 决测试预言缺失问题, 以及如何引导测试用例生成以提高测试效率. 此外, 本文区别于以往泛化面向机器学习或深
                 度学习模型的测试流程, 强调领域特异性问题的解决. 具体来说, 本文首先从应用领域以及完成的任务目标对智能
                 软件系统进行分类, 再对面向各类智能软件系统的测试用例生成方法进行梳理和总结, 最后对该研究领域的未来
                 提出展望, 以此帮助研究人员系统了解不同类型智能软件系统测试用例生成方法的研究现状及发展趋势.
                    本文第   1  节从智能软件系统的概念定义、智能软件系统测试存在的挑战等方面系统介绍背景知识. 第                             2  节介
                 绍本文的文献收集、筛选以及汇总的过程. 第               3–7  节分别从图像处理应用、自然语言处理应用、语音处理应用、
                 点云处理应用以及多模态数据处理应用这               5  个软件类型的角度详细地梳理总结面向不同类型智能软件系统的测
                 试用例生成方法. 第      8  节对通用性的面向深度学习模型的测试用例评估指标和测试用例生成方法进行汇总整理.
                 第  9  节对智能软件测试用例生成未来的研究方向以及挑战进行展望与分析. 第                     10  节对本文的内容进行总结.
                  1   背 景

                    本节主要介绍智能软件系统的概念定义、采用的关键技术和对应的测试难点以及面向智能软件系统的测试
                 用例生成的研究背景与框架.
                  1.1   智能软件系统
                    随着深度学习等技术的快速发展以及计算机硬件、云计算等领域的重大突破, 人工智能技术日益成熟, 已广
                 泛应用于不同场景的软件系统中. 人工智能通常是指数字计算机或计算机控制的机器人能够自主地或交互地执行
                 拟人任务   [21] , 其相关科学研究领域包括机器学习        (ML)、自然语言处理      (natural language processing, NLP)、计算机
                 视觉  (computer vision, CV)、语音识别与合成  (speech recognition and synthesis, SRS)、机器人和专家系统等  [22] . 基
                 于人工智能技术的应用软件已经与人们的日常生活密不可分, 包括机器翻译                         [23] 、语音识别  [24] 和对话机器人  [25] 等.
                 此外, 人工智能技术也被应用于一些安全关键或者任务关键的生命攸关系统, 如自动驾驶                             [26] 、手术机器人  [27] 等.
                 本文将这些采用了人工智能技术, 集成了人工智能模型, 能够模仿或再现人类行为和思维, 实现学习、推理和解决
                 问题的系统, 统称为智能软件系统          [28] .
                    目前, 迅猛发展的深度学习技术逐渐成为智能软件系统所运用的关键技术                        [20] . 深度学习最早由  Hinton  等人  [29]
                 在  2006  年提出, 指一种基于样本数据, 通过特定训练方法获得多层次网络结构的机器学习过程. 其动机在于建立
                 模拟人类大脑机制的深度神经网络, 用于进行数据学习和分析. 深度神经网络是由相互连接的计算单元层构成, 就
                 像大脑中的神经元以及之间的连接一样. 深度神经网络极大地提高了语音识别、计算机视觉、自然语言处理等领
                 域的先进水平     [30] . 比如, 卷积神经网络  (convolutional neural network, CNN) 提取出的特征会更多地关注局部, 参数
                 共享的特点又能够很大限度地减少运算量, 因此常被用于图像处理应用                       [31] ; 循环神经网络  (recurrent neural network,
                 RNN) 具有记忆性, 因此常被用于时序性的特征学习, 在语音识别、机器翻译等领域常被应用                           [32] ; 以  RNN  为基础
                 的长短期记忆网络       (long short-term memory, LSTM) 可以保留长序列数据中的重要信息和忽略不重要信息, 解决
                 了  RNN  的梯度消失和爆炸问题, 给各个应用场景带来了进一步的效果提升                    [33] .
                    从上文可以看出, 以深度学习模型为代表的人工智能模型的性能对于智能软件系统的质量来说至关重要, 因
                 此人工智能模型常被定义为智能软件系统中的核心部件. 与内部逻辑由软件开发人员手动编写代码确定的传统软
                 件系统不同, 人工智能模型通常采用数据驱动的编程范式, 其中所有的决策逻辑都是从大规模数据集中学习而
                 得  [34−36] . 这种“端到端”决策模式导致模型的可解释性极低, 结构复杂、参数众多的模型常被视为一个“黑盒”. 由于
                 这种范式的转变, 基于代码的传统软件测试方法已无法对智能软件系统进行全方位的质量评估. 智能软件系统与
                 传统软件系统一样, 也存在缺陷, 且对于生命攸关系统来说, 缺陷可能导致严重后果. 例如, 2016                        年和   2020  年, 处
                 于自动驾驶模式下的特斯拉汽车均发生了未减速撞击前方白色卡车并导致人员伤亡的交通事故                                 [37] . 因此, 智能软
                 件系统的质量问题吸引了工业界以及学界的大量关注, 捕获智能软件系统的缺陷、评估其在真实应用场景中的性
                 能, 已成为当前研究的重点方向.
   62   63   64   65   66   67   68   69   70   71   72