2018年12月2日一特斯拉的驾驶员在美国加利福尼亚洲的高速公路上被加州高速公路巡警逮捕,原因是酒驾司机在车上睡着,特斯拉“护主”闪警狂飙了11公里才被警察拦下,期间酒驾者处于完全无意识状态。
自2016年7月自动驾驶技术应用以来的第一起已知的死亡事故的发生,到现在短短两年的时间自动驾驶技术所引发的交通紊乱和事故已经出现数起,人们在思考自动驾驶功能的同时也在愈加地关注自动驾驶安全性这一话题。这也使自动驾驶功能测试验证的重要性得以重申。
PilotD 沛岱(上海)汽车技术有限公司不断致力于自动驾驶验证技术的研发。根本上,自动驾驶系统的测试验证可以分为两种,基于正逻辑的测试验证和基于逆逻辑的测试验证。
1、基于正逻辑的测试验证旨在测试在各类正常行驶工况下,系统功能性和性能边界。这类测试验证的测试用例生成是通过分析系统功能,根据被测系统的所有使用场景(Usecase),导出用于测试系统的测试用例(Testcase),从而验证系统在所有具有代表性的使用场景下的功能安全性。
此类测试用例生成方法的优点在于结构性强和测试用例覆盖面广。在从Usecase导出Testcase的过程中,一个系统方方面面大大小小的功能模块都会被列出,并根据其互相影响和嵌套的关系被归纳到树状结构(Top-Down Structure)中。而各个模块的功能又能通过其能够完成的各个功能过程(例如:Functional Flow)表达出来。而该各个功能过程的测试就会成为最基础的测试用例(Testcase)。因此,使用这样的构建测试用例对系统进行测试,可以让系统的方方面面的每个细化功能流程都得到测试,即测试用例覆盖面(Test coverage)广。并且,当发现问题时,当下测试的结构化的测试用例对应的系统功能模块即为系统错误的主要错误源。这样使得在测试和验证中的错误溯源(Error Tracking)变得非常简单。
然而,这类的测试用例生成方法有着两大主要的缺陷和不足:
1)对于复杂系统,例如,自动驾驶系统的测试用例数量将会非常巨大。以至于其测试周期难以满足普通汽车的开发和生产周期需求。
2)在测试用例的分析中,必须考虑系统相对敏感的外界影响因素的影响,并将其列入测试用例行列。对于使用环境感知的自动驾驶系统,其感知的外界影响因素众多,这也将进一步增加测试用例数量和正逻辑测试验证进行的复杂度和可行性。
2、基于逆逻辑的测试验证与基于正逻辑的测试验证相反。这类方法旨在通过错误分析方法(例如:FTA, FMEA等)寻找被测系统容易出错的使用场景作为测试场景测试被测系统。如果被测系统能在容易出错的使用场景下正常运行,则可从反面论证系统的功能安全性。
基于逆逻辑的测试验证方法,相较于基于正逻辑的测试验证方法,更加适合对于复杂系统(例如:高等级自动驾驶系统)的验证。因其具有测试用例数量低,测试具有针对性等优点。也因此,被业界认为是高等级自动驾驶系统测试验证的方法之一。
对于自动驾驶系统,错误分析被自然而然地与事故分析联系到了一起。自动驾驶的最初目的是模仿人类驾驶员的驾驶行为。根据图灵测试The Turing test)的原理,自动驾驶只需被验证测试具有和人类相仿的驾驶行为能力即可被认定为具有人类智能。因此,人类驾驶员犯错的场景(事故场景),也被自然而然的认为是自动驾驶系统最容易出错的场景,从而作为测试用例测试验证自动驾驶系统。
由此可见,此类基于逆逻辑的测试用例生成方法本身十分适合高级驾驶员辅助系统(Advanced Driver Assistence Systems),即低等级自动驾驶系统(Level 1-Level 2 Automated Driving Systems(ADS))的测试。其系统本身就在于辅助驾驶员,在其无法做出驾驶判断或者驾驶行为的情况下,避免或者减轻事故。因此,事故场景正好测试了系统这一能力。然而,高等级自动驾驶系统(Level 3-Level 5 ADS),直接无需人类监视环境,并对人类在驾驶中扮演的去角色进一步消减。这可能导致两类新型错误(事故)的产生:
1)本由人类驾驶员通过其驾驶判断,经验和及时产生驾驶行为而避免的本车和其他车辆的交互错误可能(事故可能)。
2)由于大量投入自动驾驶系统,而产生的自动驾驶系统和自动驾驶系统之间的交互错误可能(事故可能)。
这两类错误可能(事故可能)部分在已有的交通事故案例的覆盖范围之外。因此在这些情况下,直接使用已有交通事故案例作为测试用例无法完全测试这两类自动驾驶错误可能。为了适应这两类错误可能的测试,换而言之,适应高等级自动驾驶系统的测试,已有的交通事故案例必须被筛选和参数化。从而,找到主要事故成因,并对其从自动驾驶的角度进行分析并做补充和外延。最终,找到适合高等级自动驾驶系统的测试用例。
为此,PilotD与上海联合道路交通安全科学研究中心达成战略合作伙伴关系,两家共同致力于基于交通事故分析和仿真重现的自动驾驶验证技术的拓展和推广。
一方面,PilotD基于上海联合道路交通安全科学研究中心自2005年起采集到数千条交通事故场景信息,筛选有用信息,并在PilotD独有的仿真测试平台GaiA中还原重现,构成测试用例集。另一方面,PilotD基于现有的交通事故场景,改变并遍历场景构建中的重要参数,从而扩充测试用例集,最终达到扩大测试覆盖率,和完善测试用例集的目的。
以此,PilotD将为加速自动驾驶技术验证等级提升和早日市场化推波助澜。