上篇文章中,我们分享了一部分车载测试面试题,今天我们来讲解剩下的部分。
功能测试
1、ADAS工作原理(功能逻辑/技术要点)?
首先依赖感知传感器对道路周边环境信息进行采集,包括摄像头、激光雷达、毫米波雷达和超声波传感器、高精地图、GNSS卫星定位、IMU惯性导航等。采集的数据传输到中央计算单元进行计算,用来识别自车周边障碍物的状态和可行驶区域,制定相应控制策略,替代人类做出驾驶决策,(如路径规划等)。最后是执行控制模块制定方向盘转角、线控加减速、线控制动等信息,传输到底盘执行机构,按照指令进行精确执行。
2、各功能都需要用到哪些传感器?
多数功能都是依靠的前置传感器(经过Lidar、Radar、Camera融合),比如ACC、AEB、LKA、NOA、TJA、FCW等,只有少数涉及周视传感器,比如BSD、CVW、DOW。
3、用例规模?
4、ADAS各功能测试顺序、依据?
说明:功能测试一般先测与前视传感器相关功能,最后测与环视/测试传感器相关功能:①ACC、AEB、LKA(跟前视传感器相关)②BSD、LKA、DOW(跟侧视/环视传感器相关)
5、一个功能验证需要多长时间?
例:与测试用例规模有关,少则四五天,多则十几天。
6、一天执行多少条用例?
例:8-10条/天(测试前需要调试设备及测试过程中可能会遇到设备故障等问题,因此一天执行的测试用例数不会太多)。
7、测试过程中发现什么问题?痛点是什么?
数据只采集一次可能会出现无效数据,所以通常一条用例执行两次。
8、测试用例有多少?
按功能分,少则七八条,多则四五十条。
9、功能验证迭代周期?迭代哪些内容?
周期:少则半个月,多则一个月;迭代内容:底层通讯、网络管理、诊断、刷写、信息安全、OTA。
10、ACC原理?预期结果?
原理:设定跟车距离和速度跟随前车行驶。预期结果有:
①设定车速和跟车距离后会有加速到指定车速的时间范围,通常是20几秒;②达到设定速度后变化率要小于1km之类的,跟车距离同理;③如果前面有车切速度小于自车车速,自车减速对减速度有要求,比如3.5m/m2,④如果前车静止了,自车有个跟停距离要求,比如2-3m。
11、ACC弯道怎么跟车?
弧度过大,ACC不会生效。
试验场有不同曲率的弯道,比如125m、250m、500m的,根据需求跟车行驶,看是否会减速,能不能驶出弯道等。
12、ACC采集信号有哪些?
距离和速度(横纵向)、加速度、航向角等。
13、ACC跟车,假如到红绿灯,前方车辆突然刹车,自车却没有刹车,这是什么原因导致的呢?
距离过近,导致超出ACC生效范围(ADAS各功能生效都有严格的条件)。
14、AEB制动安全距离?
例:需求文档中要全为0.5m—2m。
15、AEB目标物选取原则?
无论是目标车还是行人、两轮车,都会选用假目标物代替(真人/真车易发生事故)。
16、AEB测试场景?
①车辆追尾自动紧急制动系统(AEB CCR)
AEB CCR 系统包含两种测试场景:CCRs、CCRm。
②行人自动紧急制动系统(AEB VRU_Ped)
③二轮车自动紧急制动系统(AEB VRU_TW)
17、AEB鬼探头,前方突然出现行人,触发AEB却没刹住,这是什么原因呢?
①测试场景超出AEB触发范围;②传感器性能问题,如Radar本身对行人,尤其是静止物体识别能力较差。
18、EMA测试场景有哪些?
例:前车速度10kph,自车速度60kph,两车相距150m,偏置率50%或100%,FCW功能触发后1s内以150°/s的速度转动方向盘,转动角度为15°。其他场景还有前车横穿以及前车为两轮车,其他参数保持不变。
19、EBA和AEB的区别?
EBA可以看成AEB的加强版,当AEB自动紧急制动时制动力不足时EBA会介入增加制动力。
20、LDW测试场景?预期结果?
测试场景:包括直道和弯道,还有实线和虚线;预期结果:报警时刻不晚于车轮外沿到车道线0.2m。
21、法规有哪些?
C-NCAP
E-NCAP
I-Vista
22、测试中出现BUG问题如何处理?
JIRA中建问题单。
23、问题单如何建?有哪些要素?
例:问题单主要字段描述如下:
24、波特率的作用?设置多少?
波特率越高,通讯距离有限(制约距离的原因是信号延迟);
两节点之间波特率偏差较大会导致通讯失败,我们测试时车身、底盘、真值都设置为500。
最后:
可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。
这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element