00104数据测试,AUTOSAR ATS

什么是ATS

ATS(Acceptance Test Specification)是由AUTOSAR释放的针对AUTOSAR不同软件组件的标准测试规范。根据软件类型的不同,ATS分为了应用测试(Application level)和总线测试(Bus level):

· 应用测试包括了例如RTE,BSW服务等组件的测试

· 总线测试包括了CAN,LIN,FlexRay,Ethernet等总线的测试,也包括了更高层级协议的测试,比如网络管理,诊断通信等协议的测试

为什么需要ATS

我们知道AUTOSAR的通信协议栈(Communication Stack)是高度可配置的。对于同一协议栈,不同的用户会根据其具体项目中的应用需求来进行针对性的配置。

站在测试的角度,如果我们对这些不同配置的软件都进行单独的测试,这无疑存在很多重复性的工作,因为软件模块的基础都是相同的,只是因为配置的不同才产生了多种不同的变体。

于是我们把这些基础的和共性的需求梳理出来,并开发测试规范进行覆盖,这样在不同的项目中就不必再重复的执行这些测试了,而这些测试就是ATS定义的内容。

这样做的益处是显而易见的:

· 站在OEM的角度,他们不需要自己去开发和维护这些测试规范,甚至都不需要执行这些测试,只需审核供应商提交的报告

· 站在供应商的角度,针对同一软件组件的“标准接受性”测试只需要执行一次(针对同一硬件平台和编译环境)

· 站在测试服务商的角度,测试脚本只需开发一次,来自不同供应商的软件可以复用同一测试脚本主体。

所以不管站在谁的角度,这都极大的降低了测试的成本和工作量。

ATS在整个测试活动中的位置与作用图1:AUTOSAR软件组件完整测试活动示意

一般来说,AUTOSAR软件组件一般经过如下几个阶段的测试:

· Unit Tests

单元级别的白盒测试。

· Standard Acceptance Tests

ATS定义的测试内容,可由第三方的测试服务商(Test House)完成,OEM可要求供应商来提交ATS的测试报告,作为“准入条件”。该要求由OEM制定,AUTOSAR并没有强制要求。

· OEM Specific Qualification Tests

由OEM根据自己的企业标准或需求定制的测试,作为“认证”测试。只有经过“认证”的软件才可以在具体的项目中使用。和ATS类似,这个阶段也不包含配置相关的验证,所以测试方法可以参考ATS,也可在ATS的基础上进行扩展。

· Project Specific Tests

与具体项目有关的配置测试。

因为ATS只覆盖了非常基础的和共性的需求,项目相关的或配置相关的需求都不在范围之内,覆盖度是非常有限的,所以ATS只能作为初步的验收测试,不能取代其他测试。就这一点来说,TC8也是类似的。

ATS中针对车载以太网的相关测试

ATS中涵盖了TCP/IP的IPv4,UDP,TCP三个部分,分别定义在AUTOSAR_ATS_IPv4, AUTOSAR_ATS_UDP,AUTOSAR_ATS_TCP三份规范中。

相信不少人有这样的疑问:为什么ATS中没有ARP,ICMP,DHCP等等这些内容?

经过上面几个部分的介绍,答案应该显而易见,那就是ATS中只覆盖基础的和共性的需求,而ARP,ICMP,DHCP等部分目前不属于这个范围,如果OEM有相关的需求,需要自行开发测试规范。

关于更多AUTOSAR架构下的TCP/IP特点分析,以及AUTOSAR架构下TCP/IP是如何优化配置使其更加适用于车内网络的话题,请持续关注北汇信息后续的分享。

ATS规范体系中有一篇要特别介绍一下,那就是:

AUTOSAR_PRS_TestabilityProtocolAndServicePrimitives

这篇文档中定义了一种测试桩(Test Stub)协议,用来支持车载以太网的测试,也就是我们常说的Upper Tester。我们在做TC8 TCP/IP测试时用到的Upper Tester,一般也是按照这份规范去开发的。更多关于Upper Tester的内容,可参考之前的文章TC8车载以太网一致性测试中的介绍。

ATS与TC8

因为ATS本身属于AUTOSAR体系,所以ATS一般只适用于AUTOSAR节点。而TC8并没有对测试对象做要求,不论是AUTOSAR节点还是非AUTOSAR节点,都可以依照TC8进行测试。

但是有一点需要注意,有些商用AUTOSAR协议栈自带的Upper Tester(也称ETM)一般只能满足ATS中定义的测试,也就是只包含IPv4,UDP,TCP三个部分,如果需要完整的执行TC8的ARP,ICMP,DHCP等测试,需要进行额外的开发。

在TCP/IP的测试环境和测试方法方面,ATS与TC8并无本质的区别,可参考之前的文章

TC8 TCP/IP协议一致性测试进行了解。

在覆盖度方面,二者即有交集又有区别,我们做了一个简单的对比统计可供参考。

图2:AUTOSAR ATS与OPEN TC8的覆盖度对比

大家可能有这样的疑问,针对ATS与TC8重叠的部分,所对应的测试脚本是否可以复用呢?答案是否定的,因为测试用例虽覆盖了相同的需求,但测试用例的设计方法不尽相同,所以测试脚本是不能完全复用的。

ATS测试实践

下图展示了AUTOSAR ATS TCP部分的测试报告。

图3:AUTOSAR ATS TCP的测试报告示意

可以看到TCP部分共有44条测试用例,其中有如下2条失败的条目。[ATS_TCP_00408] IUT sends an ACK after receiving a data segment in FIN-WAIT-1 state [classifier: MAY]

[ATS_TCP_00409] IUT sends an ACK after receiving a data segment in FIN-WAIT-2 state [classifier: MAY]

我们来分析一下失败的原因

这两条测试用例分别验证了DUT作为TCP客户端时在FIN-WAIT-1和FIN-WAIT-2状态下接收数据的能力。

当客户端准备关闭连接时,会立即发送FIN,ACK来通知服务端,之后立即进入FIN-WAIT-1状态,当服务端应答之后,客户端会进入FIN-WAIT-2状态。

理论上,当TCP客户端发送FIN,ACK之后,就意味着客户端已经没有数据要发送了,但是此时还应具备接收数据的能力,也就是连接处于“半双工”(half-duplex)的状态,若此时收到服务端发送的数据,客户端应能够正确应答。

但是实际上被测设备并没有应答,而是发送了RST以通知服务端数据发生了丢失,这就导致了测试不通过。

关于连接半关的需求,最初源于RFC793,但是在RFC1122中重新进行了讨论,因为很多协议栈都由于操作系统的限制,不支持这个机制,在这些操作系统中,如果应用发起TCP关闭请求(比如调用close())之后,就不再具备发送或者接收数据的能力。

而我们可以在AUTOSAR_SWS_TcpIp的[SWS_TCPIP_00104]这条需求中看到,AUTOSAR中其实并没有要求节点实现连接半关,这是测试用例的属性标记为“MAY“的原因。

图4:AUTOSAR_SWS_TcpIp 节选

如果协议栈不支持这个机制,就意味着在客户端发起连接关闭请求之后,如果服务端继续发送数据,这部分数据会被客户端丢掉,这在设计业务流程时要格外注意。

参考文档:

[1] AUTOSAR_EXP_AcceptanceTestsOverview.pdf

[2] AUTOSAR_ATS_IPv4.pdf

[3] AUTOSAR_ATS_UDP.pdf

[4] AUTOSAR_ATS_TCP.pdf

[5] AUTOSAR_SWS_TcpIp.pdf

作者:北汇信息-王昊天

喜欢此篇文章欢迎赞同、评论、收藏、分享支持小编~

更多相关资讯及业务介绍,欢迎访问上海北汇信息官方网站:上海北汇信息科技有限公司

其它平台官方账号:

CSDN: 北汇信息的博客_上海北汇信息科技有限公司_CSDN博客-车载以太网,TPT,V2X领域博主

更多技术干货,行业前沿动态,请关注上海北汇信息官方公众号:北汇微信公众号

商务合作资讯联系方式:

电话:021-34716271

邮箱:info@polelink.com

北汇信息成立于2010年,是一家技术驱动的创新型服务企业。北汇信息始终专注于汽车电子领域的新技术和新产品,为整车厂和零部件企业提供完整的研发、测试解决方案。从测试工具、专用测试设备、完整测试方案到实车测试服务,我们与我们的客户一起努力,让中国的汽车变得越来越安全、越来越舒适、越来越智能。

乳腺癌之打肚皮针是咋回事乳房上侧痛寒星冷月仇全文阅读阵青云小说全集寒星冷月仇精工6r机芯有几个款日本精工6r35机芯评测心慌方Cube1997nurse中文那年花月正圆全文阅读上海勇勤投资管理有限公司抗日之全能兵王1052抗日之全能兵王1016ELMOILoveYou是什么意思权力的游戏第二季第01集免费在线观看求少年歌词完整版少年cover科目三考试灯光语音播报科目三语音模拟考试表橘颂拼音版诵读dspadc量化误差三支一扶与大学生村官的区别有生之年若相欠TXT下载全文阅读锦绣灰