近幾年,汽車(chē)行業(yè)一直朝著軟件定義汽車(chē)發(fā)展,更多的特性和功能主要通過(guò)軟件實(shí)現(xiàn),這些軟件可以快速、輕松的進(jìn)行遠(yuǎn)程更新。
當(dāng)前一輛車(chē)上的代碼量達(dá)到數(shù)以千萬(wàn)計(jì),但是在車(chē)輛網(wǎng)聯(lián)、自動(dòng)駕駛、用戶(hù)體驗(yàn)方面還僅僅是初級(jí)階段,這其中每項(xiàng)創(chuàng)新都需要復(fù)雜的軟件來(lái)支撐。
確保開(kāi)發(fā)人員擁有更好的工具、流程和結(jié)構(gòu)來(lái)高效地創(chuàng)建、測(cè)試和更新軟件,這是整個(gè)行業(yè)的首要任務(wù)。
答案在于持續(xù)集成和持續(xù)部署 (CI/CD),但平臺(tái)必須具有足夠強(qiáng)大的云原生開(kāi)發(fā)和編譯環(huán)境,以實(shí)現(xiàn)實(shí)時(shí)、全球協(xié)作并執(zhí)行嚴(yán)格、廣泛的測(cè)試 汽車(chē)應(yīng)用。
1.一個(gè)更好的方法
隨著軟件將車(chē)輛的安全性、舒適性和便利性提升到新的水平,開(kāi)發(fā)人員現(xiàn)在需要比傳統(tǒng)系統(tǒng)更現(xiàn)代、更強(qiáng)大的軟件開(kāi)發(fā)環(huán)境。
過(guò)去,軟件開(kāi)發(fā)遵循僵化、緩慢的瀑布方法,并使用高度分散的工具鏈。開(kāi)發(fā)將經(jīng)歷離散的階段,每個(gè)階段都在下一個(gè)階段開(kāi)始之前完成。許多開(kāi)發(fā)過(guò)程是手動(dòng)的,從工具鏈的一個(gè)部分到下一個(gè)部分的切換也是如此。以這種方法一版軟件需要六到八個(gè)月的時(shí)間的開(kāi)發(fā)時(shí)間。
如今,汽車(chē)領(lǐng)域的軟件越來(lái)越從硬件中抽象出來(lái),開(kāi)發(fā)人員有機(jī)會(huì)利用這種架構(gòu)轉(zhuǎn)變,他們可以使用敏捷和DevOps 方法按自己的時(shí)間表來(lái)更新軟件,并且不受硬件更改或其他物理更新的影響。這種方法提供了前所未有的速度、可擴(kuò)展性、質(zhì)量和安全水平。
在持續(xù)集成 (CI) 中,構(gòu)建軟件的工作是自動(dòng)化的,軟件生產(chǎn)的所有步驟都包含在 CI 鏈中,因?yàn)橐粋€(gè)部分的輸出成為下一個(gè)部分的輸入。持續(xù)部署 (CD) 是在現(xiàn)場(chǎng)自動(dòng)部署新版本軟件。CI/CD 以及連續(xù)測(cè)試 (CT) 現(xiàn)在可以在汽車(chē)中進(jìn)行,但測(cè)試新的高級(jí)應(yīng)用程序在汽車(chē)行業(yè)提出了一個(gè)獨(dú)特的問(wèn)題,因?yàn)闇y(cè)試需要在物理車(chē)輛上或在試驗(yàn)臺(tái)上進(jìn)行復(fù)雜的模擬測(cè)試。
理想的方法是通過(guò)基于云的集中式平臺(tái)消除開(kāi)發(fā)和測(cè)試過(guò)程中的瓶頸,使開(kāi)發(fā)人員能夠在位于世界任何測(cè)試中心的相關(guān)測(cè)試臺(tái)上執(zhí)行任何測(cè)試。這些測(cè)試可以將軟件在環(huán) (SIL)、硬件在環(huán) (HIL) 甚至車(chē)輛在環(huán) (VIL) 置于更真實(shí)的測(cè)試中。這種方法允許使用全球資源來(lái)應(yīng)對(duì)當(dāng)今最嚴(yán)峻的挑戰(zhàn)所需的規(guī)模。
02.傳統(tǒng)方法的問(wèn)題
當(dāng)開(kāi)發(fā)人員每天編寫(xiě)數(shù)百萬(wàn)行代碼時(shí),傳統(tǒng)的開(kāi)發(fā)、測(cè)試、集成和部署軟件的方法是不可持續(xù)的。對(duì)HIL測(cè)試的需求意味著,由于在CI期間代碼更改已經(jīng)集成到軟件中,CI系統(tǒng)必須在物理上位于HIL工作臺(tái)的旁邊。這種方法有許多缺點(diǎn):
1.單個(gè)構(gòu)建可能需要數(shù)小時(shí),而它需要在幾分鐘或更短的時(shí)間內(nèi)完成。這是影響上市速度和質(zhì)量的一個(gè)重大瓶頸,因?yàn)楦L(zhǎng)的構(gòu)建通常會(huì)導(dǎo)致執(zhí)行自動(dòng)化測(cè)試的時(shí)間更少。當(dāng)構(gòu)建時(shí)間過(guò)長(zhǎng)時(shí),它會(huì)消耗寶貴的時(shí)間,這些時(shí)間可以更好地用于額外的測(cè)試或功能開(kāi)發(fā)。
2.如果沒(méi)有普遍接受的軟件方法,影子 IT 不可避免地會(huì)出現(xiàn),這意味著開(kāi)發(fā)人員有時(shí)會(huì)使用自己喜歡的工具。這不僅會(huì)造成效率低下,而且還可能成為安全風(fēng)險(xiǎn),因?yàn)?IT 缺乏對(duì)開(kāi)發(fā)過(guò)程的可見(jiàn)性。當(dāng)開(kāi)發(fā)人員使用不同的工具集時(shí),他們更難與客戶(hù)或彼此協(xié)作。
3.為同一軟件項(xiàng)目貢獻(xiàn)的CI鏈已經(jīng)分布在世界各地的多個(gè)技術(shù)中心,每個(gè)中心都有自己的HIL測(cè)試臺(tái)。如果沒(méi)有標(biāo)準(zhǔn)的方法,企業(yè)就無(wú)法在云中進(jìn)行開(kāi)發(fā),也無(wú)法實(shí)現(xiàn)全球標(biāo)準(zhǔn)化所帶來(lái)的一致性和可重復(fù)性。
4.隨著多個(gè)團(tuán)隊(duì)甚至供應(yīng)商為當(dāng)今的移動(dòng)軟件產(chǎn)品做出貢獻(xiàn),集成點(diǎn)的增加推動(dòng)了質(zhì)量、交付和時(shí)間問(wèn)題的增加。最佳實(shí)踐是盡早且經(jīng)常地集成代碼,但傳統(tǒng)方法在開(kāi)發(fā)過(guò)程中創(chuàng)建了不靈活的閘,導(dǎo)致在下一個(gè)合并門(mén)之前無(wú)法測(cè)試的問(wèn)題。這會(huì)導(dǎo)致整個(gè)項(xiàng)目出現(xiàn)不必要的延誤。
03.云端
由于車(chē)輛是生命安全系統(tǒng),汽車(chē)公司長(zhǎng)期以來(lái)一直采用以需求為中心的方法來(lái)設(shè)計(jì)和測(cè)試它們。他們根據(jù)一系列的要求來(lái)驗(yàn)證系統(tǒng),以確保安全和法律方面的考慮得到了適當(dāng)?shù)慕鉀Q,事實(shí)上,行業(yè)的ISO 26262功能安全標(biāo)準(zhǔn)導(dǎo)致了需要測(cè)試功能的每一個(gè)需求。簡(jiǎn)而言之,制造商必須證明他們的解決方案在第一天就符合規(guī)格,并且在發(fā)布后的每次更新中,他們必須確保所有昨天能用的東西今天仍然能用。
在過(guò)去的 10 年里,汽車(chē)行業(yè)應(yīng)用中的軟件需求數(shù)量已從數(shù)百增長(zhǎng)到數(shù)萬(wàn)。其中許多要求必須使用運(yùn)行在與車(chē)輛相同的電子控制單元 (ECU) 硬件上的嵌入式軟件進(jìn)行測(cè)試。測(cè)試還必須實(shí)時(shí)執(zhí)行,以確保響應(yīng)時(shí)間是可預(yù)測(cè)的,這意味著每個(gè)測(cè)試平均需要幾分鐘。最重要的是,軟件通常分布在多個(gè) ECU、傳感器和其他設(shè)備上,并且由不同公司的同等分布的團(tuán)隊(duì)開(kāi)發(fā)。
這些因素導(dǎo)致公司在多個(gè)地點(diǎn)使用多個(gè)CI鏈,都有自己的HIL測(cè)試平臺(tái),并且都為同一個(gè)項(xiàng)目做出貢獻(xiàn)。
更好的方法是為每個(gè)程序創(chuàng)建一個(gè)單一的、統(tǒng)一的工具鏈。這個(gè)工具鏈應(yīng)該是基于云的,并且可以在全球范圍內(nèi)使用。而且應(yīng)該有一種機(jī)制來(lái)快速和輕松地部署新的工具鏈。
基于云的工具鏈具有可伸縮性,可以確保CI構(gòu)建時(shí)間不會(huì)成為瓶頸,這一點(diǎn)很重要,因?yàn)槠款i會(huì)壓縮可用的測(cè)試時(shí)間,并可能導(dǎo)致軟件延遲發(fā)布。
使用基于云的方法,開(kāi)發(fā)是順暢的,因?yàn)榇a更新在開(kāi)發(fā)團(tuán)隊(duì)之間共享,因此每個(gè)人都在同一頁(yè)面上了解項(xiàng)目的狀態(tài)。這可以提高自動(dòng)化、遠(yuǎn)程故障排除、快速反饋、明確的團(tuán)隊(duì)分配和明確的產(chǎn)品所有權(quán)。
使用基于云的CI意味著開(kāi)發(fā)團(tuán)隊(duì)創(chuàng)建的新代碼可以自動(dòng)集成到代碼庫(kù)中,而使用OTA更新的基于云的CD可以確保成功構(gòu)建的代碼自動(dòng)部署到測(cè)試或生產(chǎn)環(huán)境中,無(wú)論它們?cè)谀睦?。如果處理得?dāng),云方法還可以在整個(gè)過(guò)程中構(gòu)建安全性,包括災(zāi)難恢復(fù)。而且,托管在云中的集中式基礎(chǔ)設(shè)施允許使用單一的管理視圖來(lái)查看所有這些高度安全和彈性的CI鏈。
此外,靈活性允許開(kāi)發(fā)人員在開(kāi)發(fā)周期的后期改進(jìn)產(chǎn)品。開(kāi)發(fā)人員可以在前一年定義需求,對(duì)它們進(jìn)行測(cè)試,從而構(gòu)建更接近消費(fèi)者期望的系統(tǒng),而不是今天決定消費(fèi)者在幾年內(nèi)想要什么。
然后,他們可以在未來(lái)幾年根據(jù)需要部署 OTA 軟件更新,從而降低保修成本并確保軟件繼續(xù)滿(mǎn)足消費(fèi)者的期望。
04.測(cè)試
在汽車(chē)工業(yè)中,為了確保軟件在各種駕駛條件下都能正常工作,試駕可能需要數(shù)十萬(wàn)英里。
仿真程序使軟件供應(yīng)商能夠降低成本,同時(shí)提供靈活性和可重復(fù)性。此外,通過(guò)模擬可以在復(fù)雜解決方案的開(kāi)發(fā)過(guò)程中測(cè)試代碼片段或組件,而不是等待整個(gè)產(chǎn)品完成然后進(jìn)行測(cè)試,然后返回并進(jìn)行修復(fù),重復(fù)測(cè)試和修復(fù)。
借助仿真技術(shù),結(jié)合 SIL 或 HIL,可以測(cè)試和驗(yàn)證日常構(gòu)建。并且多線程 SIL 或 HIL 可以同時(shí)進(jìn)行多個(gè)測(cè)試而不是順序進(jìn)行,這也節(jié)省了時(shí)間并提高了效率。
SIL 測(cè)試完全在軟件生成的建模環(huán)境中進(jìn)行。SIL 測(cè)試的優(yōu)點(diǎn)是不需要特殊硬件(幾乎可以在任何筆記本電腦或其他計(jì)算平臺(tái)上進(jìn)行),并且最適合在早期階段測(cè)試設(shè)計(jì)。
在HIL測(cè)試中,系統(tǒng)會(huì)模擬車(chē)輛和ECU的環(huán)境輸入,使其誤以為與真實(shí)車(chē)輛相連。HIL工作臺(tái)包含所有相關(guān)的車(chē)輛組件。模擬器向?qū)嶋H的攝像機(jī)和雷達(dá)系統(tǒng)提供輸入信號(hào),然后向被測(cè)系統(tǒng)發(fā)送信號(hào),以查看系統(tǒng)是否對(duì)輸入信號(hào)作出正確響應(yīng)。
例如,測(cè)試腳本可以創(chuàng)建一個(gè)場(chǎng)景,在這個(gè)場(chǎng)景中,一輛在雨中以60km/h的速度繞著彎道行駛的汽車(chē)在路上遇到一個(gè)未知的物體,或者一輛迎面駛來(lái)的汽車(chē)在中線上急轉(zhuǎn)彎。連接在HIL試驗(yàn)臺(tái)上的攝像機(jī)和雷達(dá)將圖像發(fā)送到ECU,被測(cè)系統(tǒng)必須實(shí)時(shí)處理這些數(shù)據(jù),并決定采取何種行動(dòng)。
模擬還允許測(cè)試人員快速測(cè)試罕見(jiàn)或潛在危險(xiǎn)的用例。通常為了嘗試重現(xiàn)特定的駕駛條件或部件問(wèn)題,不得不駕駛數(shù)百公里。模擬允許按需測(cè)試,通過(guò)重新模擬特別具有挑戰(zhàn)性的場(chǎng)景來(lái)顯示不同版本的軟件如何對(duì)相同的輸入做出反應(yīng)。
05.基于云的CI/CD/CT的優(yōu)勢(shì)
持續(xù)測(cè)試(來(lái)源APTIV)
基于開(kāi)放標(biāo)準(zhǔn)和敏捷軟件開(kāi)發(fā)原則的全球集成云原生架構(gòu)消除了傳統(tǒng)瓶頸,并為汽車(chē)行業(yè)開(kāi)發(fā)先進(jìn)軟件的公司帶來(lái)了關(guān)鍵優(yōu)勢(shì)。這些包括 :
性能: 基于云的、全球可用的體系結(jié)構(gòu)可以在世界任何地方遠(yuǎn)程控制測(cè)試平臺(tái)。這增加了可擴(kuò)展性和靈活性。
速度:自動(dòng)化可以將構(gòu)建時(shí)間縮短多達(dá) 80%。公司可以通過(guò)基于容器的架構(gòu)和代碼合并的方法來(lái)消除瓶頸。他們可以?xún)H重建和測(cè)試更改的部分,從而將部署速度提高 60%。
聯(lián)合開(kāi)發(fā):當(dāng)多個(gè)合作伙伴實(shí)時(shí)測(cè)試彼此的代碼時(shí),開(kāi)發(fā)人員都可以在合作伙伴提交代碼的同一天進(jìn)行集成、測(cè)試和問(wèn)題修復(fù)。其結(jié)果是為 OEM 提供快速、高質(zhì)量、低風(fēng)險(xiǎn)的復(fù)雜軟件功能,在成本效益、維護(hù)和后期迭代上也具有明顯優(yōu)勢(shì)。
質(zhì)量: 與遠(yuǎn)程SIL/ HIL測(cè)試平臺(tái)的完全集成可以提高產(chǎn)品質(zhì)量,因?yàn)殚_(kāi)發(fā)人員可以在任何地方進(jìn)行測(cè)試,并且并行進(jìn)行無(wú)限的測(cè)試。
透明度:整個(gè)團(tuán)隊(duì)可以全面了解所有軟件開(kāi)發(fā)鏈的最新狀態(tài),無(wú)論程序大小、復(fù)雜性或修改的內(nèi)容。CI最佳實(shí)踐可以得到實(shí)施和支持,并且可以在提前識(shí)別出問(wèn)題。這也極大地簡(jiǎn)化了安全策略的執(zhí)行。
審核編輯 :李倩
-
軟件開(kāi)發(fā)
+關(guān)注
關(guān)注
0文章
597瀏覽量
27316 -
汽車(chē)行業(yè)
+關(guān)注
關(guān)注
0文章
293瀏覽量
15330 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3237瀏覽量
57547
原文標(biāo)題:汽車(chē)軟件開(kāi)發(fā)的下一個(gè)階段是什么樣的?
文章出處:【微信號(hào):智能汽車(chē)電子與軟件,微信公眾號(hào):智能汽車(chē)電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論