汽车中的软件测试 (二)

4.3商业工具分类
  本节介绍了用于汽车行业的各种测试工具。
  这些工具可分为四大类:基于模型的测试生成,测试建模,验证和资源分析工具。
  每个类别说明如下。
  
  4.3.1基于模型的测试生成工具
  鉴于所需系统行为的模型,这些工具由模型生成测试,在目标系统上执行测试以检查系统是否表现的与要求的一样。
  测试是通过由模型按一定的度量“覆盖”其结构产生的。
  大多数的由基于模型的测试生成工具所提供的覆盖度量的往往是控制流定向的,例如测试可以由覆盖模型的所有分支生成。
  
  4.3.2测试建模工具
  不是由系统模型生成测试,这些工具是由一个可能针对测试系统特定区域、可用于不同情况的抽象测试模型生成测试的。
  该工具支持不同的符号来说明这些测试模型。
  此外,这些工具能够在目标机器上进行所生成的测试,并评估相应结果。
  
  4.3.3验证工具
  有了所需系统行为的模型,这些工具就可以进行形式验证,就是说他们证明或否决该模型关于那些使用形式化方法的特定属性的正确性。
  一个属性通常表现一个不良情况。一个验证技术是证明或反证是否不良情况在模型中保持不变的一种手段。当这种情况不变时,它产生一个反例证明。如果没有反例产生,这意味着该系统内没有这种情况。
  有两种主要方法:模型检验和定理证明,被认为是汽车领域的形式验证。
  对这些方法的文献综述超出了本文的范围,感兴趣的读者可以指向别处。
  
  4.3.4资源分析工具
  工具的第三类分析非功能特性,例如时间,内存使用情况等。举例来说,当危险发生时,重要的是要了解最坏执行时间( WCET )的防锁制动系统。此类分析在安全苛求的系统中极为重要。
  过去,这样的分析是用一个特设的方式进行的:要么手动分析大量的系统仿真,要么通过在一些测试场景中运行该系统,观察其性能。然而,这些方法已经变得不切和实际,因为系统的尺寸和目标执行平台的设计的复杂性增加了,特别是在处理器里。
  今天,专门的工具正在成为系统的验证过程用以覆盖这些方面的一个组成部分。
  由于时间和内存特性与目标平台的结构特色一致,分析主要是对循环X测试的先进水平进行的。

表1.主要在用工具
  1 对于目标平台,请查看:http://www.absint.com/ait/trial.htm
  2 IBV(基于仪器的验证)[10]是一项指定属性为一个连接到模型的显示器的技术。然后,它用制导模拟来寻找侵犯知识产权。
笔者将这项技术归类为验证技术的一个变体。
  4.4主要在用工具
  本节提供了汽车行业精选在用工具的一份比较。这些工具是根据上面解释的术语分类的。
  表1提供了工具信息表,包括:他们的供应商,类别,输入格式支持和循环X测试级别。大部分的输入格式是标准建模符号,可以参考相关文献了解详情。
  5 .汽车软件测试工具/服务
供应商
  5.1主要竞争者
  表2按生产国顺序列出了在欧洲提供软件测试工具和/或相关服务的主要竞争者名单,还包括那些在欧洲市场占有不可忽视份额的工具。
这份名单包括公司提供的服务,主要工具,及其主要专业领域。
名单中还包括在汽车行业深受肯定的工具应用笔记。
  5.2其他竞争者
  有些公司擅长嵌入式软件测试,但很少接触汽车系统。尽管这份名单并不详尽,但它包含了Testing Technologies( DE ) , Elvior ( EE)和Conformiq ( FI )公司 。
  有些公司擅长于汽车软件测试,但没有紧密结合V模型(参见图1 ),没有大量应用代码级技术。其中最值得注意的是LDRA (GB ) ,Prover( SE ) , Coverity(US) ,Wind River(US)公司 。
6.潜在机会
  鉴于上述讨论,本节将会讨论一些技术以及潜在的机会。他们能够成为未来商用车领域软件测试的独特卖点。
  6.1实时和连续行为
  商用车嵌入式系统对硬实时约束规范很敏感。特别是,微秒范围内工作的传动系和底盘。
没有实时性,就可能有沟通问题,尤其是连续变化的信号间。此外,实时行为在保证可重复的测试案例里是一个重要要求。
  这篇文章中讨论的大多数工具是事件驱动性质的,极少能够表现连续信号和连续时间问题。
  因此,应重点研究这方面的问题,尤其对于即将到来的新一代混合动力商用车。
  
  6.2黑盒组件分析
  汽车行业的黑盒组件分析还没有被充分挖掘。
  如前所述,许多组件是从供应商那作为黑盒解决方案收集的。很难理解在系统中测试组件及其集成的行为[ 6 ] 。在第4节提到的种类繁多的工具中有几个提供这样的功能。其中一个就是从传统代码生成Simulink模型来检查是否反向工程模型符合代码行为的Reactis Tester。
  当代码不可用时,弗劳恩霍夫商学院的RALT是唯一已知工具,能够保证基于运行时的系统观察的形式分析。

表2.主要竞争者
  1 AbsInt tools已经被应用于Bosch,BMW, Daimler, Honda, Mitsubishi和 Volkswagen。
  2 RALT是从运行时系统观察派生出形式模型的黑盒系统的一种逆向工程工具。RALT已被应用于车门控制系统[8]。
  3 EXAM是奥迪和大众汽车集团合作开发的,并已在内部使用[ 15 ] 。
  4 TPT提供反应测试,反应测试就是:当传感器信号超过某一临界值时,立即精准地反应给系统。
  5 MaTeLo已被应用到奥迪,Johnson Controls,Magneti,雷诺和大众汽车的汽车系统中。
  6 SCADE已被用于商用车领域,尤其是在Liebherr公司的控制系统中[ 14 ] 。
  7 Safety TestBuilder已用于测试Johnson Controls公司的 [ 12 ]轮胎压力监测系统。
  8 CertifyIt已被应用于雷诺公司的汽车系统。
  9 ENEA已成为DYSCAS (动态自配置汽车系统)项目( 2006-2008年)的一员,目前已被加入AUTOSAR标准[ 5 ] 。TD- Frame用于LabVIEW测试管理框架,并与美国国家仪器――TestStand的测试生成及执行相挂钩。
  10 Reactis Tester还可以为了应用基于模型的测试技术,从源代码反向设计模型。Reactis Tester/Validator已经应用到Robert Bosch[10]公司的汽车系统中。
  
  6.3安全性和可靠性分析
  安全性和可靠性是商用车关注的重点。
  现行做法中并没有用来分析可靠性的被认可的工具。对于安全性分析,一方面是进行最坏执行时间和内存使用情况分析,目前正使用专门的工具,如aiT WCET Analyzers和StackAnalyzer来执行。进一步增加安全性和可靠性方法以覆盖更多方面的潜力是很大的。
   
  6.4工具链和GUI
  对于嵌入式软件测试的各种不同的准则,一个适当的工具集是至关重要的。从可用性的角度来看,易用性和图形化界面是非常重要的。这方面的合理投资,加上几个案例研究的例子将有助于吸引汽车行业的从业者。
7.结论
  本文介绍了商用车领域的软件测试的当前做法的调查,也从软件测试的角度预测了这个领域的主要特性和潜在的未来机会。
  调查发现,用于商用车的主要测试技术已被用于一般的汽车行业了。主要的原因是,商用车分享了其大部分的特征给其他类别的道路车辆。
  但是,商用车需要优秀的方法来处理特定的工程问题。
  值得注意的是,这些问题在现在的市售工具集行业里还没有得到充分解决。例如:硬实时功能,没有特殊的工具存在的安全性和可靠性问题。
  此外,软件测试界还没有具体关注混合动力商用车将在不远的将来占据主要市场份额的问题。
  尽管从业者已经开始在汽车行业宣传测试,但这与商用车领域的情况是不同的。
  还有许多非正式的工具和方法,但关于质量和生产力的实际效用的经验数据却收集得很少。
  因此,有相当大的机会,让利益相关者集中努力创立一个共同的平台,正式通过商用车领域里的最先进技术。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-06 07:33:54

汽车中的软件测试 (二)的相关文章

汽车中的软件测试(一)

介绍 测试是汽车开发过程中的一个重要部分.随着软件越来越多地被应用于现代汽车,对严格软件测试方法的需求也变得越来越多.一个一直被忽略的特殊方面是:具有很多独特特色的商用车领域的软件测试的实践. 本文是对商用车领域软件测试的第一个全面的研究.但是,许多特征和相关结果可以外推到汽车行业的其他部分,而且更广泛地,还可以外推到嵌入式系统领域.我们通过对用于汽车行业的26工具和欧洲市场的20个工具/服务提供商的调查研究了现行做法.最后,还预测了未来潜在机会的一些方向. 本文希望能给汽车行业从业人员提供现被

机器学习在汽车中的应用:从大众今天扩建慕尼黑AI实验室说起

大众集团日前宣布,将加大投资力度来加强其位于德国慕尼黑AI数据实验室的实力,专门致力于人工智能技术的研发.大众方面称,虽然目前正在削减内部开支,但作为IT计划的一部分,大众在慕尼黑的AI数据实验室并未受到影响,会有更多的人力投入人工智能团队的建设. 据了解,大众数据实验室的研究团队将继续发展无人驾驶技术和机器人学,主要研究方向包括机器学习技术,即引导机器人和传感器加强识别能力,以对行驶中遇到的物体和不同情形作出辨识,换言之,团队希望提高汽车摄像头的检测能力,减少无人驾驶汽车因拍摄盲区等而存在的安

微软面试题解析:求一个矩阵中最大的二维矩阵(元素和最大)

题目:求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3)用C写出关键代码 分析: 直接遍历二维数组,求出最大的二维数组就OK了 实现如下: #include<iostream> using namespace std; int max_matrix(int (*array)[5], int maxx, int maxy, int& posi, int

c++中创建动态二维数组

c++ 中创建动态二维数组的程序代码 动态创建一维数组 int *arr; //it can be any other type (char, float) arr = new int[n]; //n should be integer variable 动态创建二维数组 int **arr; int N,M; cin >> N >> M; arr = new int*[N]; for(int i=0;i<N;i++) { arr[i] = new int[M]; }

net 中生成qr二维码-.net 中生成QR二维码,遇到越界问题

问题描述 .net 中生成QR二维码,遇到越界问题 现在遇到的问题是,用.net生成QR二维码,二维码可以生成,但是由于数据量很到,生成的二维码会越界,QR二维码的版本已经设置到最大了,但还是越界,唯一想到的办法是将字符串进行压缩,但是压缩之后还是越界...请问大家有没有更好的办法呢?

数据实践之美:33位大数据专家的方法、技术与思想. NO.2 数据化营销中的“一•二•三”

NO.2 数据化营销中的"一·二·三" 叶秋萍 专注数据分析多年,做过物流行业.保健品行业及秀场行业的数据分析,也做过银行电商项目的咨询顾问,传统行业和互联网行业都有涉猎.对用户心理学.用户行为学.商业学颇有兴趣,一直致力于CRM的学习和实践.对BI和可视化分析也有一定的研究和了解. 个人微信号:binglingzi3344 这个时代,瞬息万变,传统的商业模式在悄无声息中被"革命",互联网蓝海中的风浪再大也无法阻挡我们向前迈步的热情,梅特卡夫定律所概括的经济效应随着

visual basic-VB判断字符串中是否有二联号

问题描述 VB判断字符串中是否有二联号 解决方案 dim n = 0 for i = 2 to len(s) if mid(s,i,1)=mid(s,i-1,1) then n = n + 1 else n = 1 if n =3 then msgbox "三联":exit for next

水晶报表 二维码-请问一下在水晶报表中怎么插入二维码

问题描述 请问一下在水晶报表中怎么插入二维码 在网上找了一下 http://topic.csdn.net/u/20080306/13/b471356c-d5d8-4914-bfc0-bb5a742b9c1f.html发现了这个 Sub QRCodeSaveRead() bc1.Type = DotNetBarcode.Types.QRCode bc1.PrintChar = True '保存QRCode图片 strQRCode = "" strQRCode = Trim(txtCode

Google Chrome中的高性能网络(二)

Chrome Predictor的预测功能优化 Chrome会随着使用变得更快. 它这个特性是通过一个单例对象Predictor来实现的.这个对象在浏览器内核进程(Browser Kernel Process)中实例化,它唯一的职责就是观察和学习当前网络活动方式,提前预估用户下一步的操作.下面是一个示例: 用户将鼠标停留在一个链接上,就预示着一个用户的偏好以及下一步的浏览行为.这时Chrome就可以提前进行DNS Lookup及TCP握手.用户的点击操作平均需要将近200ms,在这个时间就可能处