HIL测试团队建设上篇-知识体系与角色划分
人们之所以选择与他人合作,要么是将做的事情过于复杂,不可能独自完成;要么就是想要加快速度,提高效率。对汽车ECU进行HIL测试,也是如此。
HIL测试团队知识体系
首先,我们来看看HIL测试团队应具备哪些知识与技能。本文把所需的知识和技能分成四大类。
第一类为被测控制器的功能需求(又称为功能规格书,功能描述等):包括ECU的功能需求文档(比如ACC功能,start-stop功能等),汽车软件相关的标准协议(比如CAN,UDS等)。通常,ECU的功能需求是由客户或其他岗位工程师(系统工程师,软件工程师)制定的。
第二类为软件测试技术:包括软件测试的定义,原则,软件测试的基本过程,经典测试技术(决策表,状态图,等价类,边界值等),以及探索测试技术等。软件测试技术作用于被测控制器的功能需求,从而设计出测试用例。
第三类为HIL测试环境的知识:包括HIL系统硬件知识(HIL系统基本原理,各种板卡的基本功能描述等),HIL系统软件的使用技能(实验软件、执行自动化软件,总线仿真软件,Python、C等编程技术);被控对象的建模原理及其参数化的方法(模型参数化是指为数学模型匹配实验数据,使仿真的结果尽可能与实际情况接近)。
第四类为行业基础知识:包括汽车的基础知识(汽车构造,汽车理论,发动机原理,电动机原理),自动控制原理,软件开发的基础知识(嵌入式操作系统的基本知识,底层驱动的基本知识,应用层软件的基本知识,基于模型开发的基本知识)。
HIL测试团队角色划分
为了有效进行HIL测试,应合理组建测试团队。团队是否合理,一个评价指标是需要看其团队成员所具备的知识和技能是否可以覆盖以上的要求。下文首先给出一个理想团队角色划分的蓝图,然后再根据实际情况给出建议。
一个理想的HIL 测试团队将包括5个角色:测试用例设计工程师,测试用例实现工程师,被控对象模型工程师,HIL系统维护工程师,HIL测试团队负责人。
测试用例设计工程师:根据ECU的功能需求,提取测试需求,并确定具体的测试点;采用相关的测试技术方法,设计测试用例。设计的测试用例需要具有合理性(合理性只指能够说明为什么这样设计或该用例的具体目的是什么),和可实现性(可实现性是指测试用例能够使用HIL台架来进行测试,如果不能使用HIL台架完成测试,需要调整设计)。同时,需要考虑测试用例的深度和广度,在满足基本测试需求的基础上,做好二者的权衡。因此,其需要的本领是上述的第一类和第二类,同时需要了解HIL测试工具的基本知识。设计工程师的交付物是文本格式的测试用例。
测试用例实现工程师:根据测试设计工程师提交的文本格式的测试用例,在HIL台架进行测试。这里实现二字,包含两层含义:依照文本格式的测试用例,手动完成测试;或者是编写自动化脚本和脚本库,自动或半自动完成测试。因此,其需要的本领主要是第三类中HIL工具软件的高级使用技能。在实际的测试过程中,常常需要对被控对象模型本身或其接口做适当的调整,以满足测试的需求,因此,这些工程师还需要一些基本建模的能力,比如,能够使用simulink搭建一个一阶惯性控制系统。此外,测试实现工程师往往还需要与测试设计工程师共同评价:测试用例在HIL台架上是否可以被实现。实现工程师的交付物为测试用例脚本,测试用例执行报告。
被控对象模型工程师:根据测试的需要,搭建被控模型并进行参数化,完成ECU的闭环测试;同时也应辅导测试用例实现工程师对模型进行适当调整,以满足测试用例实现的要求。因此,这些工程师需要的本领主要是第三类中的被控对象的建模能力,以及模型参数化的能力。由于各类ECU的被控对象原理不一样,复杂程度也不同,因此被控对象模型工程师往往也无法由一个人来兼顾全部,需要不同专业背景的人来承担。模型工程师的交付物为闭环模型及其参数文件、典型工况仿真报告。
HIL系统维护工程师:根据测试的需要,搭建HIL测试的硬件环境,并进行基本的激励测试、开环测试。因此,其需要的本领主要是第三类中的HIL系统硬件知识,HIL系统软件的基本使用技能,以及基本的建模能力。维护工程师的交付物为HIL台架线束、开环模型,HIL系统控制GUI界面设计,以及HIL台架基本操作指南文档。
HIL测试团队负责人(这里不用测试主管或测试经理的称呼,因为这两个称呼容易诱发行政岗位和技术岗位的无休止争论):主要负责与开发部门、或供应商的协调,获取相关的资料、资源;制定测试计划,分配测试任务并监控整个测试的进度;参与测试用例的评审,确认测试缺陷。因此,其需要具备上述所有知识的基本知识,同时需要具备一定的项目规划能力和较强的沟通能力。HIL测试团队负责人的交付物为HIL测试所需的输入性资料,HIL测试计划报告,HIL测试进度报告,HIL测试缺陷报告,HIL测试人力资源投入报告。
在实际的工作中,以上不同角色工程师的往往被统一冠以HIL测试工程师或HIL验证/确认工程师的名称。为适应实际的需求,团队人员的分工还需要考虑以下因素:
1,测试项目的大小不一样,比如,动力总成部门、底盘部门或车身部门一般只考虑测试单个ECU,而电子电器部门往往会把多个ECU,连同实车线束,共同考虑进来。对于前者,部门内部协调为主;对于后者,需要多方沟通协调。
2,测试团队的成熟度不一样。这里的成熟度主要是指团队是初次建立,还是已经具有一段时间的测试积累,又或是作为国外研发中心的一个测试组成部分。
3,测试团队与开发团队是否属于同一个公司。如果属于同一个公司,那么做MIL测试阶段所采用的被控对象模型,可以适当修改后,用于HIL测试。
4,上述角色中,一般测试设计工程师和测试实现工程师人数较多,他们是测试团队核心成员,应优先重点投入。
最后,本文给出一个人员分工的建议。
对于人数大于5个人的团队,可根据上述角色,细分工作内容,安排不同的人来承当不同的角色。
对于人数在3~5个人的团队,可把主要的人力资源放在测试设计与实现上,其他模型工程师,HIL系统维护工程师的职责交由第三方供应商(专业的设备供应商)来完成。此时,测试设计与实现的角色既可以细分给不同的人来完成,也可以让每一个人同时承担这两个角色。
对于人数只有2个人的团队,自己协商分工,或聘请第三方咨询服务公司。
对于只有1个人的情况,招人,招人,招人!
总结
HIL测试团队的知识体系、角色划分是有效开展HIL测试的基本要求。虽然人员有分工,但是团队成员的共同目标是为了发现ECU的缺陷,并促进ECU质量的提升,因此在测试过程中,测试团队内部、测试团队与其他部门应通力合作,共同进步。