



摘要:本文針對(duì)汽車電子產(chǎn)品功能安全要求,從測(cè)試的角度詳細(xì)分析了ISO 26262標(biāo)準(zhǔn)中的具體要求,包括ISO 26262對(duì)測(cè)試流程的規(guī)定,對(duì)硬件集成和測(cè)試的規(guī)定,對(duì)軟件集成和測(cè)試的規(guī)定,以及對(duì)產(chǎn)品集成和測(cè)試的規(guī)定。
關(guān)鍵詞:ISO 26262;汽車電子;測(cè)試
DOI:10.3969/j.issn.1005-5517.2013.4.005
ISO26262標(biāo)準(zhǔn)概述
功能安全標(biāo)準(zhǔn)(ISO26262)是從電子、電氣及可編程器件功能安全基本標(biāo)準(zhǔn)IEC61508派生出來(lái)的,主要定位在汽車行業(yè)中特定的電氣器件、電子設(shè)備、可編程電子器件等專門用于汽車領(lǐng)域的部件,旨在提高汽車電子、電氣產(chǎn)品功能安全的國(guó)際標(biāo)準(zhǔn)。
ISO26262從2005年11月起正式開始制定,經(jīng)歷了大約6年左右的時(shí)間,已于2011年11月正式頒布,成為國(guó)際標(biāo)準(zhǔn)。中國(guó)也正在積極進(jìn)行相應(yīng)國(guó)標(biāo)的制定。
ISO26262主要內(nèi)容包括:
·提供了汽車生命周期(管理,研發(fā),生產(chǎn),運(yùn)行,服務(wù),拆解)和生命周期中必要的改裝活動(dòng)。
·提供了決定風(fēng)險(xiǎn)等級(jí)的具體風(fēng)險(xiǎn)評(píng)估方法(汽車安全綜合等級(jí),ASILs)。
·使用ASILs方法來(lái)確定獲得可接受的殘余風(fēng)險(xiǎn)的必要安全要求。
·提供了確保獲得足夠的和可接受的安全等級(jí)的有效性和確定性措施。
功能安全受研發(fā)過(guò)程(包括具體要求,設(shè)計(jì),執(zhí)行,整合,驗(yàn)證,有效性和配置),生產(chǎn)過(guò)程和服務(wù)流程以及管理流程的影響。
安全事件總是和通常的功能和質(zhì)量相關(guān)的研發(fā)活動(dòng)及產(chǎn)品伴隨在一起。ISO26262強(qiáng)調(diào)了研發(fā)活動(dòng)和產(chǎn)品的安全相關(guān)方面。
符合性要求
1)如果要宣稱符合ISO26262,那必須是符合其每個(gè)要求,除非有如下情況之一:
·根據(jù)ISO26262-2中,對(duì)不適用的要求進(jìn)行安全行為的裁剪:
·針對(duì)不符合項(xiàng),提出其說(shuō)明理由,并對(duì)理由根據(jù)ISO26262-2進(jìn)行評(píng)估:
2)所有安全行為的輸出物都在ISO26262中有明確的規(guī)定。
3)下文中出現(xiàn)的列舉各測(cè)試方法的表中,有不同的序號(hào)表示方法:
·連續(xù)的序號(hào),比如1.2.3:所有的方法應(yīng)被用于對(duì)應(yīng)的ASIL等級(jí),如果出現(xiàn)所列表中之外的方法背用于測(cè)試,則需要進(jìn)行說(shuō)明。
·可選的序號(hào),比如1a,1b,1c:可以選擇某個(gè)或多個(gè)方法進(jìn)行測(cè)試,并優(yōu)先考慮更高推薦指數(shù)的方法。如果多個(gè)方法被組合選擇用于測(cè)試,則需要進(jìn)行說(shuō)明。
4)針對(duì)ASIL的各級(jí),表中的每個(gè)方法都有對(duì)應(yīng)推薦指數(shù):
·“++”:最高的推薦指數(shù)
·“+”:建議使用
·“0”:不建議使用或不需使用
測(cè)試概述
ISO 26262-8中的第9節(jié)描述了“Verification”的目標(biāo)、要求和建議、工作輸出等。Verification是用于確保實(shí)現(xiàn)與需求的一致性,在安全生命周期的幾個(gè)階段中都會(huì)用到。包括概念階段、產(chǎn)品開發(fā)階段、生成和運(yùn)營(yíng)階段。本文主要描述在產(chǎn)品開發(fā)階段中的測(cè)試環(huán)節(jié)中,需要用到的各種測(cè)試要求和建議。
測(cè)試計(jì)劃
1)在測(cè)試執(zhí)行前,都需要建立測(cè)試計(jì)劃,其主要包括幾部分:
·測(cè)試范圍:用于測(cè)試的產(chǎn)品內(nèi)容:
·測(cè)試方法:用于測(cè)試的各種方法:
·測(cè)試標(biāo)準(zhǔn):測(cè)試通過(guò)或失敗的標(biāo)準(zhǔn):
·測(cè)試環(huán)境:如果需要用到各種測(cè)試環(huán)境,比如仿真環(huán)境等,需要進(jìn)行說(shuō)明:
·測(cè)試工具:用到的各種測(cè)試工具:
·出現(xiàn)異常后的對(duì)策:
·回歸策略:在測(cè)試對(duì)象發(fā)生變更時(shí),指定其如何進(jìn)行回歸測(cè)試,比如全部回歸、部分回歸、和其他測(cè)試案例一起回歸等。
2)測(cè)試計(jì)劃的制定還需考慮到以下幾個(gè)方面:
·測(cè)試方法的完整性:
·測(cè)試對(duì)象的復(fù)雜度:
·測(cè)試經(jīng)驗(yàn):
·測(cè)試技術(shù)的成熟性和風(fēng)險(xiǎn)。
測(cè)試規(guī)格
1)測(cè)試規(guī)格需要選擇和指定用于測(cè)試的方法,并包括測(cè)試案例、測(cè)試數(shù)據(jù)和測(cè)試對(duì)象。
2)每個(gè)測(cè)試案例需要包括:
·序號(hào):唯一的ID
·測(cè)試對(duì)象的版本號(hào)
·測(cè)試對(duì)象的條件和配置:針對(duì)測(cè)試對(duì)象的不同配置,需要選擇合理的測(cè)試案例進(jìn)行測(cè)試
·測(cè)試環(huán)境
·輸入值和順序
·期望行為:報(bào)刊輸出值、輸出范圍、功能表現(xiàn)等
3)測(cè)試案例需要根據(jù)測(cè)試方法來(lái)分類。針對(duì)每個(gè)測(cè)試方法,除了測(cè)試案例外,還需考慮以下幾方面:
·測(cè)試環(huán)境:
·相關(guān)性:
·測(cè)試資源。
測(cè)試執(zhí)行和測(cè)試報(bào)告
4)按照上述章節(jié)中制定的測(cè)試計(jì)劃和測(cè)試規(guī)格,進(jìn)行測(cè)試的執(zhí)行。
5)針對(duì)測(cè)試結(jié)果,其測(cè)試報(bào)告需包括以下幾個(gè)方面:
·測(cè)試對(duì)象的ID:
·測(cè)試計(jì)劃和測(cè)試規(guī)格的引用:
·測(cè)試環(huán)境、測(cè)試工具、標(biāo)定數(shù)據(jù):
·測(cè)試結(jié)果和期望值的符合度:
·測(cè)試通過(guò)或失敗的結(jié)論,如果失敗,還需要指明失敗原因和修改建議:
·針對(duì)沒(méi)有執(zhí)行的測(cè)試案例,說(shuō)明原因。
ISO26262中的測(cè)試階段
ISO26262中涉及到測(cè)試的階段共包括“硬件集成和測(cè)試”、“軟件集成和測(cè)試”、“產(chǎn)品集成和測(cè)試”這三部分。下面章節(jié)分別介紹這三部分的要求和建議。
硬件集成和測(cè)試
ISO26262中“Part 5:ProductDevelopment:HardwareLevel”針對(duì)產(chǎn)品開發(fā)的硬件部分提出了專門的集成和測(cè)試要求和建議。
1 硬件集成和測(cè)試需要按照安全計(jì)劃和驗(yàn)證要求來(lái)按計(jì)劃進(jìn)行:
2 硬件集成和測(cè)試需要按照產(chǎn)品集成和測(cè)試計(jì)劃來(lái)進(jìn)行:
3 針對(duì)變更,需要按照標(biāo)準(zhǔn)規(guī)定中的變更管理來(lái)對(duì)測(cè)試策略進(jìn)行影響分析:
4 測(cè)試的設(shè)備可以按照國(guó)際標(biāo)準(zhǔn)(比如ISO17025)或公司標(biāo)準(zhǔn)來(lái)進(jìn)行標(biāo)定:
5 硬件集成測(cè)試的測(cè)試案例需要按照表1的方法進(jìn)行設(shè)計(jì):
6 針對(duì)硬件安全需求,硬件集成和測(cè)試需要對(duì)其安全機(jī)制實(shí)現(xiàn)的完整性和正確性進(jìn)行驗(yàn)證,其方法如表2所不。
7 硬件集成和測(cè)試需要按照表3的方法進(jìn)行外部壓力環(huán)境下的魯棒性測(cè)試。
軟件集成和測(cè)試
軟件單元測(cè)試
軟件單元測(cè)試是在軟件開發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。ISO26262中規(guī)定了其相對(duì)應(yīng)的要求和建議:
1 軟件單元測(cè)試需按照“ISO26262-8節(jié)9中”的驗(yàn)證要求來(lái)有計(jì)劃的定義和執(zhí)行。軟件單元測(cè)試的對(duì)象是具體的軟件實(shí)現(xiàn)單元,在基于模型的軟件開發(fā)過(guò)程中,軟件單元測(cè)試的對(duì)象是其單元模型。
2 軟件單元測(cè)試需要按照表4中列的方法進(jìn)行,以完成以下目標(biāo):
·檢查是否符合軟件單元設(shè)計(jì)的具體要求:
·檢查是否符合軟硬件接口要求:
·檢查功能是否正確實(shí)現(xiàn):
·檢查是否有異常功能:
·檢查軟件實(shí)現(xiàn)的魯棒性,比如錯(cuò)誤處理效率等:
·檢查功能所需資源的完整性。
3 軟件單元測(cè)試中的測(cè)試案例需要按照下表5中的方法進(jìn)行分析設(shè)計(jì)。
4 軟件單元測(cè)試中,對(duì)于需求的覆蓋度、代碼的覆蓋度都需要進(jìn)行衡量,具體方法如表6所示。如果覆蓋度不夠,還需要增加其他測(cè)試案例。
·代碼的覆蓋度都可以借助一些軟件工具來(lái)實(shí)現(xiàn):
·如果是基于模型的開發(fā),其軟件單元測(cè)試需要利用類似的模型的結(jié)構(gòu)化覆蓋指標(biāo)來(lái)衡量:
·如果通過(guò)代碼的打樁來(lái)進(jìn)行測(cè)試覆蓋度的衡量,必須保證打樁的代碼和正常的代碼的執(zhí)行功能是一致的:
·對(duì)于覆蓋度衡量目標(biāo),都需要給出一個(gè)合理理由來(lái)表示其不同的級(jí)別,對(duì)于無(wú)法覆蓋的代碼,可以通過(guò)檢查等其他方法來(lái)進(jìn)行驗(yàn)證。
5 軟件單元測(cè)試需要盡可能的在真實(shí)的目標(biāo)環(huán)境上執(zhí)行,如果利用其他環(huán)境,則需要評(píng)估其與真實(shí)環(huán)境的差異、源代碼和目標(biāo)代碼的差異,分析設(shè)計(jì)測(cè)試案例,以便在接下來(lái)的測(cè)試階段中得到執(zhí)行。
·測(cè)試環(huán)境的不同,會(huì)導(dǎo)致源代碼或目標(biāo)代碼的不一致,比如不同處理器的位數(shù)不一樣,會(huì)導(dǎo)致編譯后的目標(biāo)代碼不一致。
·如果能利用目標(biāo)環(huán)境中的相同處理器來(lái)運(yùn)行軟件單元測(cè)試案例,那是最有效的,但如果不行,則可以用處理器模擬器來(lái)代替,否則軟件單元測(cè)試只能在開發(fā)系統(tǒng)中進(jìn)行測(cè)試。
·軟件單元測(cè)試可以在不同的環(huán)境中執(zhí)行,比如模型在環(huán)測(cè)試(MIL)、軟件在環(huán)測(cè)試(SIL)、處理器在環(huán)測(cè)試(PIL)、硬件在環(huán)測(cè)試(HIL)等。
·在基于模型的開發(fā)系統(tǒng)中,軟件單元測(cè)試可以在模型級(jí)別進(jìn)行,但模型與代碼的執(zhí)行比較測(cè)試必須要做,以保證模型與自動(dòng)生成的代碼的結(jié)果一致性。
軟件集成和測(cè)試
軟件集成和測(cè)試主要對(duì)實(shí)現(xiàn)的各軟件模塊進(jìn)行集成,并驗(yàn)證其嵌入式軟件實(shí)現(xiàn)是否符合軟件架構(gòu)設(shè)計(jì)。該階段的要求和建議如下:
1 軟件集成計(jì)劃應(yīng)該描述層次化的集成單個(gè)軟件單元進(jìn)軟件組件中,直到嵌入式軟件完全集成,并且應(yīng)該考慮如下:
·軟件集成功能的相互關(guān)系:
·軟件集成和軟硬件集成的相互關(guān)系。
注意:對(duì)于基于模型的開發(fā),可以先集成各模型,然后對(duì)集成好的模型進(jìn)行自動(dòng)代碼生成以完成整體軟件的集成。
2 軟件集成測(cè)試根據(jù)ISO26262-8:2011,第9節(jié)計(jì)劃,定義并且執(zhí)行。軟件集成測(cè)試的測(cè)試對(duì)象是軟件組件。對(duì)于基于模型的開發(fā),測(cè)試對(duì)象可以是和軟件組件相關(guān)的模型。
3 軟件集成測(cè)試需要按照表7的方法進(jìn)行,以完成以下目標(biāo):
·檢查集成的軟件是否和軟件架構(gòu)設(shè)計(jì)一致:
·檢查集成的軟件是否滿足軟硬件接口規(guī)格:
·驗(yàn)證功能的正確性:
·檢查其魯棒性,比如錯(cuò)誤檢測(cè)、錯(cuò)誤處理機(jī)制的有效性:
·檢查是否有足夠的資源來(lái)支持。
4 測(cè)試案例需要按照表8中的方法進(jìn)行分析設(shè)計(jì)。
5 對(duì)于軟件架構(gòu)級(jí)別的需求測(cè)試覆蓋度,可以用來(lái)衡量測(cè)試的完整性,以及用于證明沒(méi)有設(shè)計(jì)之外的功能實(shí)現(xiàn)。如果有需要,可以增加新的測(cè)試案例,或者提供一個(gè)合理的理由說(shuō)明。
6 為了評(píng)估測(cè)試案例的完整性,同時(shí)確保沒(méi)有多余的功能,根據(jù)表9列出的指標(biāo)需要衡量出其結(jié)構(gòu)覆蓋率。如果覆蓋率不夠高,要么需要添加額外的測(cè)試案例,或者提供一個(gè)合理的理由說(shuō)明。例如,結(jié)構(gòu)覆蓋率的分析可以用于發(fā)現(xiàn)測(cè)試案例的不足、無(wú)用代碼、無(wú)效代碼或者多余功能等。
·結(jié)構(gòu)覆蓋率可以利用工具計(jì)算出來(lái)。
·如果是基于模型的開發(fā),結(jié)構(gòu)覆蓋率可以通過(guò)模型級(jí)別的模型結(jié)構(gòu)覆蓋率來(lái)統(tǒng)一計(jì)算。
7 作為產(chǎn)品發(fā)布的一部分,嵌入式軟件需要被驗(yàn)證其包含設(shè)計(jì)的所有功能。如果嵌入式軟件包含了設(shè)計(jì)之外的功能(比如用于調(diào)試的代碼),則這些功能需要被驗(yàn)證是不影響軟件的安全需求的。如果這些設(shè)計(jì)之外的功能在真實(shí)產(chǎn)品中保證不會(huì)被激活執(zhí)行,那也是符合這個(gè)要求的:否則刪除這些功能,也需要按照需求變更流程來(lái)統(tǒng)一處理。
8 軟件集成測(cè)試需要盡可能地在真實(shí)環(huán)境中運(yùn)行,如果不行,則需要評(píng)估測(cè)試環(huán)境與真實(shí)環(huán)境的差異性,并針對(duì)這些差異,在后續(xù)的階段的真實(shí)環(huán)境的測(cè)試中設(shè)計(jì)專門的案例來(lái)執(zhí)行。
·測(cè)試環(huán)境的不同,會(huì)導(dǎo)致源代碼或目標(biāo)代碼的不一致,比如不同處理器的位數(shù)不一樣,會(huì)導(dǎo)致編譯后的目標(biāo)代碼不一致。
·針對(duì)各種測(cè)試,需要建立合適的測(cè)試環(huán)境。比如目標(biāo)處理器的測(cè)試環(huán)境、仿真處理器的測(cè)試環(huán)境、開發(fā)測(cè)試環(huán)境等。
·軟件集成測(cè)試可以利用模型在環(huán)測(cè)試(MIL)、軟件在環(huán)測(cè)試(SIL)、處理器在環(huán)測(cè)試(PIL)、硬件在環(huán)測(cè)試(HIL)等測(cè)試手段進(jìn)行測(cè)試。
軟件安全需求驗(yàn)證
本階段的目標(biāo)是驗(yàn)證嵌入式軟件符合軟件安全需求,其所規(guī)定的要求和建議如下:
1 軟件安全需求的驗(yàn)證需要制定計(jì)劃,定義再執(zhí)行。
2 為了驗(yàn)證嵌入式軟件實(shí)現(xiàn)了軟件安全需求,表10列了所需的測(cè)試環(huán)境。注意:已有的測(cè)試案例,例如在軟件集成測(cè)試階段使用的可以重用。
3 對(duì)于軟件安全需求實(shí)現(xiàn)的測(cè)試需要在目標(biāo)硬件平臺(tái)上完成。
4 軟件安全需求驗(yàn)證的結(jié)果需要考慮下面這些因素來(lái)評(píng)估:
·和預(yù)期結(jié)果一致:
·軟件安全需求的覆蓋率:
·成功或失敗的標(biāo)準(zhǔn)。
(未完待續(xù))