基于全对测试的汽车软件测试用例开发

原创 智能汽车设计 2025-03-12 08:05

摘要:应用全对测试方法,对汽车软件的测试用例开发进行研究,以保证测试覆盖度和提高测试效率为目标,开发自动化工具并加以应用。文章以使用语音助手播放音乐为例,先分析用户的使用场景和使用习惯,识别出可能的因子和水平;再使用自动化工具生成典型测试用例,并定义每个测试用例的期望表现;接下来进行测试,通过比较实际表现和期望表现,得到每个用例的测试结果;最后根据测试结果计算每两个因子的各水平组合的失效率,得到响应表;如果响应表中发现缺陷,则优化软件再次开展测试,直到响应表中没有缺陷,也就是软件在测试中没有任何问题为止。通过该实例的详细阐述,说明全对测试方法在汽车软件测试中的作用和价值,已成为提升测试覆盖率和效率的重要助力。

近年来,汽车行业经历着前所未有的变革,市场竞争日益加剧,整车开发验证周期不断缩短。智能化、网联化、电动化的发展趋势导致汽车软件功能的复杂性指数级上升,现在一辆汽车的软件代码已高达几千万行甚至上亿行,再叠加用户多样化的使用场景和体验需求,使得汽车软件功能的全面有效测试变得越来越具有挑战性。

为了保证汽车软件的安全性、可靠性和正常工作,当前行业内综合应用多种多样的测试方法,可以从如下维度进行分类:按照开发过程的阶段,可以分为单元测试、集成测试、系统测试和整车验收测试等;按照内部结构和具体实现的方式,可以分为黑盒测试、白盒测试、灰盒测试等;按照测试技术,可以分为冒烟测试、回归测试、随机测试、迭代测试、压力测试等[1-2]

然而,尽管有这些测试方法的存在,汽车软件测试仍然面临着多方面的挑战。首先,汽车软件的规模、关键性和复杂性都在增加,功能之间往往需要互相协同和逻辑仲裁,导致系统失败的风险增高,必须对软件进行更有效的测试以发现尽可能多的缺陷;其次,用户多样化的使用场景意味着不同的操作方式和环境条件,每种场景都对车辆的性能和软件的稳定性提出了不同的要求,因此软件测试需要覆盖尽可能多的测试用例,以确保软件在各种用户场景下都能正常工作;最后,汽车开发验证周期越来越短,对软件测试的效率提出了更高要求,在保证软件质量的同时,也需要考虑到测试用例的设计和执行的成本和时间。

面对上述的挑战,为了提高汽车软件测试的有效率、覆盖率和效率,本文提出一种基于全对测试的测试用例开发方法,通过系统化的用例设计来模拟各种操作场景并识别潜在的缺陷。这种方法能够在软件的功能和逻辑测试中,提高测试覆盖率,优化资源分配,增强验证过程的系统性和科学性。

1 全对测试介绍

软件系统的故障常常是由一些难以预料的异常交互引起的,一般把那些可能影响软件表现的变量称为因子(factor)。这些因子可以是自然环境类,如温度、光照、海拔等,可以是人工环境类,如路况、交通标识、行人、附近车辆等,可以是车辆状态类,如挡位、速度、负载等,可以是人员操作类,如踩踏板、操作按键、操作中控屏、下发语音指令等,也可以是相关系统和软件的状态切换等。每个因子在不同的场景下可能是不同的取值(定性或定量),这些取值称为因子的水平(level)。正是这些因子和水平的全排列组合,构成了该软件测试用例覆盖的整个空间。

假设某软件功能系统有n 个因子,每个因子分别有v1v2v3、…、vn 个可能的取值,如果想把所有可能的用例都测试到,即采用全因子排列,需要的测试用例数量是:v1×v2×v3×…×vn,通常情况下这是一个很庞大的数字。显然,受到时间、费用等资源的限制,采取全因子排列进行测试是不切实际的,需要更先进的测试技术来提高测试性价比。研究发现,大约20%~40%左右的软件故障是由某个因子引发的,20%~40%左右的故障由某两个因子的相互作用引发的,合计大约73%的软件故障是由一个或两个因子的相互作用引起[3],因此全对测试是一种比较好的测试方法,可以平衡用例数量和用例覆盖率。

全对测试(Pairwise Testing/ll-Pairs Testing),也叫两两测试或配对测试,它的基本原则是每个因子的每一个取值都必须与任意其他因子的每一个取值至少配对过一次,以保证每个因子的各个水平都能被测试到,任意两个因子的各个水平的组合也都能被测试到。但产生最小配对测试集是一个NPC(Non-deterministic Polynomial Complete)问题,也就是说不可能存在某一算法一定可以产生最小测试集。各研究者提出了不同的算法,目的都是为了产生接近最优的测试集,例如正交拉丁方(Orthogonal Latin Square)算法[4]、AETG(Automatic Efficient Tests Generator)算法[5]、IPO(In-Parameter-Order)算法[6]、模拟退火(Simulated Annealing)算法[7]等。

其中正交拉丁方算法使用最广泛,它是一种特殊的组合设计,由两个或多个拉丁方组成,这些拉丁方的相同行和列中没有重复的元素组合,并确保每种可能的行列组合都至少出现一次。如果每个因子的每个水平与其他因子的每个水平均匀地组合,那么就构成了正交列表(Orthogonal Arrays),它是正交拉丁算法的一种特殊应用,不仅考虑了行和列的正交性,还考虑了更高维度的交互作用。

当前正交拉丁算法已经在整车开发的性能优化中得到大量应用,如汽车发动机噪声源识别与分析[8]、五连杆悬架运动学特性分析[9]、纯电动车多学科轻量化设计[10]、行李箱盖内板冲压成形工艺优化[11]等。虽然在汽车软件功能测试中的应用还不常见,但该算法的广泛应用为工程师们将其应用在测试用例开发中打下了坚实的基础。正交拉丁方算法的优势在于构造简单,数学模型清晰,在已知因子个数以及每个因子的取值数量时,可以准确计算出测试用例的数量;不足之处是正交拉丁方算法得到的测试集并不一定是最小的。经研究,虽然正交拉丁方算法并不是产生所有全对测试集的最完美方案,但对大部分汽车软件而言,它已经能够大大降低测试用例数量,有效降低软件测试时间,提高软件迭代的效率,具有很强的实用性,所以本文采用正交拉丁方算法来产生汽车软件系统全对测试的测试用例集。

2 全对测试用例开发流程

在某整车项目的软件系统验收测试中,使用全对测试方法来开发软件测试用例,确保能提供足够的测试覆盖率,帮助发现软件中的缺陷并迭代改进,具体流程如图1 所示。

图1 汽车软件全对测试流程

接下来具体介绍流程中各步骤的主要内容和工作要点。

2.1 组建团队

测试用例的开发需要集团队之力,确保不会遗漏软件系统的重要输入,因此流程的第一步就是组建专家团队。团队中需要包含上下游的需求方、软件开发方、测试执行方、协调方以及其他利益相关方,通过团队的协作讨论,对软件系统开展全面系统的分析。

2.2 定义因子和水平

定义因子和水平是全对测试的关键,团队需要从用户的实际使用场景和操作习惯出发,识别出软件系统中所有可能的导致软件不同表现的因子,才能全面地开展测试。可以从如下维度去思考可能的因子及水平:1)软件系统需求、子系统规范;2)软件系统功能框图,包括子系统和信号;3)状态机图及时序;4)历史失效、潜在失效模式;5)对用户使用条件的理解;6)相关专家的经验等。

从测试执行的角度,这些因子可以分成两大类,构建初始测试条件的因子,以及模拟用户操作和事件的因子,它们共同构成测试框架。同时,在识别因子和水平时,不但要考虑用户按照软件功能意图去操作的场景,也要考虑到用户可能的误用滥用情况,以保证测试用例的全面性[12]

2.3 基于全对测试创建测试用例

基于正交拉丁方算法,本文使用Visual Basic语言,构造了一个全对测试用例自动化生成的自动化工具,方便快捷地开展测试。为了最大化地利用正交列表,这个工具希望变量取值比较均匀,只研究水平取值数是2n 的因子组合,水平数不满足的因子可以使用替代处理。图2 是该自动化工具的因子填写界面,工具会自动校验每个因子的取值数是否符合要求,校验通过后,点击上侧的“Create Use Cases”按钮,即可自动选择合适的正交列表,生成测试用例。

图2 因子和水平填写界面

2.4 定义各测试用例的期望表现

接下来需要团队一起讨论,基于软件的需求、功能定义和逻辑设定,在这每一个测试用例条件下,该软件系统的期望表现是什么样?将这些期望表现作为判断软件是否有缺陷的标准依据,建立起完整的测试包。

2.5 开展测试并收集数据

测试包就绪后即可开展测试并收集数据,测试的形式可以有很多种,比如软件在环(Software In the Loop, SIL)、硬件在环(Hardware In the Loop,HIL)、台架测试、模拟测试、整车测试等。对比软件的实际表现与期望表现,两者一致的记为0,不一致的记为1,表示存在问题。

2.6 生成响应表

通过比较每个因子各水平与其它每个因子各水平的组合用例的测试结果,可以计算出任意两个因子各水平的组合的失效率,创建响应表。因子X 和因子Y 的各水平组合的失效率计算方式如下:

以4 个因子,每个因子各有4 水平为例,可生成响应表如图3 所示,它清楚地展示每两个因子的各水平组合的失效率。

图3 全对测试响应表

2.7 改进软件

对于响应表中失效率为1,也就是100%失效的因子水平组合需要特别关注,可以作为复现问题的可靠途径,从而找到软件缺陷的根本原因以改进软件。软件更新后,可以再次利用全对测试用例和期望响应,对新软件重复开展测试,以确保识别到的问题得到解决,并且不会产生其他新问题。这个过程可以迭代开展多次,直到响应表中只有0,也就是没有发现任何问题,这样就完成了该汽车软件的全对测试和迭代优化过程。

3 全对测试应用案例

语音助手是智能座舱中的基础功能,也是用户最常使用的功能之一,直接影响用户的体验,接下来本文应用全对测试方法,对使用语音助手播放音乐这个功能开展测试。

组建了跨领域团队之后,一起讨论用户在各种使用场景下的可能因子和水平,共识别到10 个因子,其中3 个因子2 水平,2 个因子4 水平,5个因子8 水平,如表1 和表2 所示。其中G 因子为了满足水平数是2n 个,做了替代处理,即G7和G8 是同样的物理含义。

表1 初始条件因子和水平表

表2 事件因子和水平表

对这些因子和水平,如果采用全因子排列以覆盖所有的使用场景,需要的测试用例数是n=23×42×85=4 194 304,就算每个测试用例只需要几分钟,那么全部完成测试也是个不可能完成的任务。使用全对测试,可以将测试用例数量精简到64 个,而且能够测试到每两个因子各水平的组合情况,在保证覆盖度的情况下,压缩效率为99.998%。

在自动化工具生成64 个测试用例的基础上,根据语音助手播放音乐的功能定义和逻辑设定,确定了每个测试用例在每次唤醒时的期望响应,包括语音反馈、屏幕显示、音乐内容、音频来源和音量。

接下来在整车上开展测试,记录实际响应与期望响应是否一致,一致记为0,不一致记为1,如表3 所示。

表3 全对测试测试结果

根据测试结果,可以计算每两个因子的各水平组合的失效率,也就是响应表,图4 展示了响应表的部分结果。

图4 语音助手播放音乐响应表部分结果

根据响应表的结果,找到问题发生的原因,改进软件后再次开展全对测试,确保识别到的问题全部得到了解决。

在使用语音助手播放音乐的软件测试中,每个测试用例需要测试5 分钟,总共只需要5 个多小时即可完成一轮测试,全部覆盖了每两个因子的各水平组合,也大幅提高测试效率,便于快速进行软件的多次迭代和优化。

4 结论

综上所述,全对测试方法十分符合汽车软件系统测试的特点和需要,可以应对当前面临的挑战。利用全对测试方法能够贴合用户的实际使用场景,保证软件功能测试的覆盖率,还能够大大降低软件测试的资源需求,如果再结合自动化测试工具的方法,可以进一步提高测试效率。

另外,在开发前期,通过全对测试识别的用例还能作为开发的输入,将软件的需求梳理得更完整清晰,进而可以与行为驱动开发的思想结合,解决需求和开发脱节、开发与测试脱节的问题,从用户的需求出发,保证软件实现效果与用户需求一致。

需要指出的是,汽车软件测试的范畴很广,全对测试对于功能和逻辑的测试很有效,但不能代替其他诸如性能测试、安全性测试、压力测试、偶发故障测试、耐久性测试等。这些聚焦在不同维度的测试方法需要相互集成配合,在汽车软件系统测试中共同发挥作用,提高汽车软件的安全性和可靠性。

参考文献

[1] JORGENSEN P C.软件测试:一个软件工艺师的方法(原书第4 版)[M].马琳,李海峰,译.北京:机械工业出版社,2020.

[2] 林莉莉,魏敏.汽车嵌入式软件质量管理技术研究[J].汽车与新动力,2023,6(1):59-61.

[3] 严俊,张健.组合测试:原理与方法[J].软件学报,2009,20(6):1393-1405.

[4] 任洛漪.正交实验设计法在组合测试的应用[J].电脑知识与技术,2022,18(5):68-69.

[5] KAMPEL L,LEITHNER M,SIMOS D E.Sliced AETG:A Memory-Efficient Variant of the AETG Covering Array Generation Algorithm[J].Optimization Letters,2020,14(6):1543-1556.

[6] 周进,刘杰,肖安洪,等.基于DCS 系统组件的变力度组合测试方法[J].计算机工程,2021,47(9):178-183.

[7] 刘俊杰.基于模拟退火粒子群算法的类集成测试序列生成方法研究[D].徐州:中国矿业大学,2023.

[8] BALLESTEROS J A,FERNANDEZ M D,SARRADJ E.Identification and Analysis of the Noise Sources of an Engine Settled in a Car Using Array-based Techniques[J].International Journal of Vehicle Noise and Vibration,2018,14(2):171-190.

[9] 李根,代迪.五连杆悬架运动学特性DOE 分析研究[J].汽车工程师,2024(1):55-61.

[10] 蒋青青,吴锦妍,龙宜凡.基于混合试验设计的纯电动车多学科轻量化设计[J].上海汽车,2023(9):21-26.

[11] 王康康,陈泽中,江楠森,等.基于GA-BP 的汽车行李箱盖内板冲压成形工艺优化[J].塑性工程学报,2023(3):197-203.

[12] 赵永青.基于行为驱动开发的改进X 测试模型及其应用[J].软件,2021,42(9):148-150.

智能汽车设计 关注智能汽车发展,分享智能汽车知识!
评论
  • 要有效预防电磁铁损坏,需要从电气防护、环境控制、操作规范和定期维护四个方面采取综合措施。在电气防护方面,要严格控制工作电压,确保其与额定值的偏差不超过±15%,对于高压电磁铁还需加装短路保护装置。同时要做好绝缘保护,shou次使用前必须测量绝缘电阻,在潮湿环境中要增加检测频率。环境控制同样重要,要根据工作环境的温湿度条件选择合适的电磁铁型号,ji端环境下要采取特殊防护措施。运输过程中要做好缓冲包装,避免机械损伤。操作时要注意控制通电时间,监测线圈温度,避免超负荷运行。多台电磁铁同时使用时,要保证
    锦正茂科技 2025-06-23 11:35 223浏览
  • 摘要核工业安全监测对压力传感器的精度、稳定性及抗极端环境能力提出了严苛要求。石英谐振压力传感器凭借其基于石英晶体压电效应的独特工作原理,在高精度测量、抗辐照、宽温域适应性等方面展现出显著优势。本文系统解析石英谐振压力传感器在核工业中的核心应用场景,包括反应堆压力容器监测、管道泄漏检测及放射性物质运输监控,并结合晨穹石英谐振压力传感器的技术特性与实际案例,论证其在核安全领域的不可替代性。研究表明,晨穹 RPS01 系列石英绝压压力芯体通过全金属密封封装、双通道温度补偿及 AI 自校准算法
    传感器晨穹 2025-06-23 10:43 198浏览
  •   再次拆开来,干脆放上电池看看,呵呵,转呀!  嘀嗒嘀嗒声好听,小齿轮转啊转尊,挺有活力啊!  莫非是活动关节受阻?  仔细,用放大镜观察,真是的!轴承与转杆接触位有污垢。  拆解下来,用酒精仔细清洗干净,看看纸上是刷子擦下来的污迹。  顺便把PCB、其他可能的零部件,也用酒精擦一擦  清洗清洁后的的各个零部件。  再看看电极接触点,有磨损,露出了底下的铜金属。  想想,用焊锡填补吧!  金属表面不太接受,总算有了一点焊锡,试试看吧!  再组装回去,装上电池,不转动!  再拆开来,到底是那个零
    自做自受 2025-06-21 12:19 2484浏览
  • 一、引言自5G正式商用以来,全球通信产业经历了前所未有的变革。5G以其超高带宽、超低时延、海量连接的能力,使得智能制造、自动驾驶、AR/VR、物联网等新兴产业得以快速落地。但随着5G的广泛应用,其在实际部署过程中仍面临一系列挑战:网络覆盖有限、边缘性能不足、上行能力偏弱等问题日益凸显。为解决这些瓶颈并为6G的演进奠定基础,3GPP于Rel-18阶段提出了“5G Advanced(5G-A)”标准。5G-A不仅是5G的增强版本,更是迈向6G的关键过渡技术,其将深度融合通信、感知、智能、控制、安全等
    用户1750544933504 2025-06-22 21:15 3177浏览
  • 一、 平流层超压气球:极端环境下的监测挑战  平流层超压气球长期悬浮于18-40公里高空,持续承受-70℃至+85℃的剧烈温变、不足地面10%的低压环境(30km高度约10hPa)及强宇宙辐射。传统MEMS压阻传感器在此环境下易出现零点漂移、灵敏度衰减,导致高度控制失准或科学数据失真。  典型案例:2021年印尼弗洛雷斯海7.3级地震监测中,平流层气球需在3000公里外检测次声波引发的微帕级压力波动——相当于海平面气压的百万分之一。此场景对传感器的分辨率与抗干扰能力
    传感器晨穹 2025-06-23 13:58 299浏览
  • /*************  功能说明    **************本例程基于AI8051U为主控芯片的实验箱进行编写测试.使用Keil C251编译器,Memory Model推荐设置XSmall模式,默认定义变量在edata,单时钟存取访问速度快。edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。下载时, 选择时钟 24MHZ (用户可自行修改频率).*******************
    丙丁先生 2025-06-21 07:36 2812浏览
  • 当下,智能手机市场越来越卷,各大品牌纷纷绞尽脑汁,试图凭借各类卖点抢占市场份额。华为首款全系标配HarmonyOS 5.1的高端直屏旗舰Pura80系列亮相后,热度一路飙升,迅速开启市场狂飙模式。该机于6月5日开启预约,截至6月11日,华为商城上华为Pura 80 Pro和华为Pura 80 Pro+预约数已达28.4万。近日,华为Pura 80系列终于开卖了!开售后,Pura 80系列手机迅速在全国多地掀起抢购热潮,北京、上海、深圳等地的华为旗舰店外出现排长队抢购新机的场面。难道就因为余承东说
    用户1742991715177 2025-06-22 11:28 189浏览
  • 电磁铁损坏通常由电气、机械、环境和操作等多方面因素共同导致。电气系统异常是zui常见的原因,包括电压超标和绝缘失效。电压偏离额定值15%以上容易造成线圈过热烧毁,而潮湿环境则会导致绝缘电阻骤降,引发击穿故障。机械结构问题也不容忽视,铁芯卡滞、异物堵塞以及超负荷运行都会加速部件磨损,影响电磁铁寿命。环境因素对电磁铁的影响主要体现在温湿度和散热条件上。高温环境会加速绝缘材料老化,潮湿则可能导致非防水型号的性能下降。此外,散热设计缺陷或连续通电时间过长都会使线圈温度异常升高。操作和维护不当同样会引发故
    锦正茂科技 2025-06-23 11:11 246浏览
  • 在电力系统中,固态继电器和驱动隔离器像两位“电力守护神”,默默地确保电力设备的安全与稳定运行。它们通过高效、可靠的性能,保障了电力设备在各种环境下的正常工作。固态继电器是电力控制中的关键组成部分,利用半导体器件来实现电路的开关控制。与传统的机械继电器相比,固态继电器具有更快的响应速度、更长的使用寿命、以及没有机械噪音等优点,成为了工业自动化、家用电器等领域中的核心组件。与此同时,驱动隔离器则在电力系统中承担着重要角色。通过电气隔离技术,驱动隔离器有效地将控制信号与高电压电路隔离,确保控制电路免受
    腾恩科技-彭工 2025-06-20 17:36 88浏览
  • 文/Leon编辑/cc孙聪颖2025年刚刚过半,中、韩面板企业正展开新一轮的专利大战。据韩媒报道,LG Display(以下简称“LGD”)于当地时间6月13日,向美国得克萨斯州东区地方法院提起诉讼,指控天马微电子侵犯其7项专利。据悉,LGD在诉状中提及专利涵盖OLED面板、车载LCD(液晶)面板、移动LCD面板等,诉求则是要求天马通过正当手段获得专利许可。(详情见:抱紧苹果的大腿,LGD单季度扭亏为盈)《华尔街科技眼》就该事件联系了LGD和天马微电子的相关工作人员,均未获得回应。这不是中、韩面
    华尔街科技眼 2025-06-20 17:44 142浏览
  • 四足机器狗行业正处于技术爆发与市场扩容的双重风口,波士顿动力等国际巨头凭借先发优势抢占高端市场,而国内企业也在加速布局海外。6月12日,康迪科技和云深处科技宣布达成两项合作,双方将整合优势资源,在高尔夫智能装备与安防巡检四足机器狗两大领域进行深度协同,共同开发面向北美市场的创新产品,以期推动智能机器人技术的多元化应用与全球化布局。这也许是云深处科技以生态合作破局出海困境、加速全球化布局的关键一步。勇闯海外市场在全球机器人产业竞争白热化、出海已成企业增长新引擎的当下,云深处科技与康迪科技的合作堪称
    用户1742991715177 2025-06-20 11:50 56浏览
  • 本文将介绍基于米尔电子MYD-LT536开发板(米尔基于全志T536开发板)的多协议物联网关方案的开发测试。摘自优秀创作者-ALSET米尔基于全志T536开发板为了充分的应用该开发板,结合T536处理器的特点,这里进一步的进行软件开发,充分利用开发板的硬件资源,完成业务产品的需求。这里以物联网多协议网关应用为研究为目的,首先建立基础的从各个硬件设读取硬件端口的数据,并且通过SOCKET由网络收发的过程。在一般开发物联网网关时可以采用MQTT,MODBUS等协议库,作为标准的通讯,来解决硬件型号采
    米尔电子嵌入式 2025-06-20 15:14 65浏览
  • 要准确判断电磁铁是否损坏,可从电气特性、机械性能和运行状态三方面综合检测。电气故障的典型表现是线圈异常:用万用表测量时,若线圈电阻远高于正常值说明断路,接近零则表明短路;通电后若线圈表面温度超过60℃或散发焦糊味,往往存在匝间短路问题。绝缘状态同样关键,低压设备绝缘电阻低于0.5兆欧或高压设备低于1兆欧时,存在受潮或破损风险,潮湿环境下电阻骤降50%以上需立即处理。机械故障主要表现为磁力衰减或动作异常。通电后无法吸附额定重量的铁磁物,或多台联用时出现局部吸附失效都表明磁力不足。手动推动铁芯若阻力
    锦正茂科技 2025-06-20 11:13 58浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦