• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      “功能安全產(chǎn)品實(shí)現(xiàn)技術(shù)”系列講座第9講 安全相關(guān)產(chǎn)品的軟件實(shí)現(xiàn)(三)

      2014-04-03 01:55:24
      自動(dòng)化儀表 2014年2期
      關(guān)鍵詞:編碼標(biāo)準(zhǔn)源代碼代碼

      (上海工業(yè)自動(dòng)化儀表研究院1,上海 200233;上海儀器儀表自控檢驗(yàn)測(cè)試所功能安全中心2,上海 200233)

      0 引言

      功能安全軟件的一切驗(yàn)證和確認(rèn)活動(dòng)主要是為檢驗(yàn)與評(píng)估軟件是否已正確執(zhí)行其產(chǎn)品的安全功能。軟件驗(yàn)證主要針對(duì)安全完整性等級(jí)要求的程度,測(cè)試和評(píng)估軟件安全生命周期在給定階段的輸出,保證該階段輸出對(duì)于相應(yīng)輸入的正確性和一致性;軟件確認(rèn)主要是為了證明安全相關(guān)產(chǎn)品在軟硬件集成后符合軟件安全要求規(guī)定。本文所述的軟件驗(yàn)證是指狹義的軟件安全生命周期中后期的靜態(tài)代碼復(fù)審、模塊測(cè)試、集成測(cè)試階段的驗(yàn)證技術(shù),主要是動(dòng)態(tài)的,與上述安全生命周期的早期的幾個(gè)階段不同,因?yàn)榍捌诘尿?yàn)證主要是靜態(tài)的。

      本文的軟件驗(yàn)證技術(shù)主要是軟件測(cè)試,它是軟件代碼實(shí)現(xiàn)后(除代碼復(fù)審?fù)?一切驗(yàn)證與確認(rèn)活動(dòng)的主要方法,其首要條件是最好考慮到軟件驗(yàn)證的獨(dú)立性,必須由開(kāi)發(fā)人員外的專(zhuān)業(yè)領(lǐng)域測(cè)試人員進(jìn)行,避免陷入開(kāi)發(fā)人員既定的編程思維,從而不利于算法優(yōu)化、代碼優(yōu)化,避免代碼重用等錯(cuò)誤。

      1 代碼復(fù)審

      代碼復(fù)審可依靠多種代碼檢查方式來(lái)完成,包括軟件審查、人工走查和形式化檢查。代碼復(fù)審是針對(duì)軟件的整個(gè)源代碼,不管是一般芯片自帶的、編譯器自動(dòng)生成的和人工開(kāi)發(fā)的代碼,都要進(jìn)行軟件走查和人工走查,一般同時(shí)進(jìn)行,相輔相成;而形式化檢查是否需要,則按安全完整性等級(jí)和軟件模塊設(shè)計(jì)規(guī)范選擇。

      為達(dá)到軟件安全完整性等級(jí)的要求,源代碼應(yīng)需具有以下代碼屬性:可讀、可理解、可測(cè)試性;滿足軟件模塊設(shè)計(jì)的規(guī)定要求;滿足編碼標(biāo)準(zhǔn)的規(guī)定要求;滿足安全計(jì)劃編制中規(guī)定的所有相關(guān)要求。

      軟件走查的主要任務(wù)是依據(jù)制定好的軟件編碼標(biāo)準(zhǔn)和已選擇的軟件測(cè)試工具對(duì)源代碼進(jìn)行分析,從而生成代碼復(fù)審報(bào)告;然后讓開(kāi)發(fā)人員針對(duì)違背編碼標(biāo)準(zhǔn)的語(yǔ)句在不會(huì)影響整個(gè)模塊設(shè)計(jì)的前提下(如果確認(rèn)為模塊設(shè)計(jì)的問(wèn)題,則重回模塊設(shè)計(jì)階段修改驗(yàn)證)進(jìn)行修改,直到順利通過(guò)編碼標(biāo)準(zhǔn)為止;最后如果存在軟件和硬件的實(shí)際需求而無(wú)法通過(guò)編碼標(biāo)準(zhǔn)的語(yǔ)句,則須針對(duì)每條語(yǔ)句給予違背編碼規(guī)則說(shuō)明文檔記錄。

      人工走查的主要工作是依據(jù)《軟件詳細(xì)設(shè)計(jì)說(shuō)明》對(duì)源代碼進(jìn)行分析,確保所有代碼是執(zhí)行預(yù)定功能且不執(zhí)行其非預(yù)定功能,去除一切重復(fù)、無(wú)用、錯(cuò)誤的代碼;除此之外還要針對(duì)軟件走查的代碼復(fù)審報(bào)告進(jìn)行逐條語(yǔ)句驗(yàn)證與確認(rèn),該條語(yǔ)句是否確實(shí)違背編碼規(guī)則。這個(gè)檢查工作非常關(guān)鍵,需復(fù)審人員耐心地讀懂程序并仔細(xì)地推敲其是否與《軟件詳細(xì)設(shè)計(jì)說(shuō)明》達(dá)成一致性、正確性、完整性。

      形式化檢查一般在安全相關(guān)產(chǎn)品規(guī)定的軟件安全功能和軟件系統(tǒng)性能能力較高且軟件系統(tǒng)比較復(fù)雜的情況下使用,是一種動(dòng)態(tài)的分析方法;使用某種嚴(yán)格的數(shù)學(xué)方法來(lái)證明復(fù)雜的軟件不存在數(shù)據(jù)溢出、內(nèi)存泄露、未初始化的內(nèi)存、被零除和指針越界等運(yùn)行時(shí)錯(cuò)誤。該方法也能靠軟件測(cè)試工具支持。

      代碼復(fù)審的執(zhí)行過(guò)程如圖1所示。

      圖1 代碼復(fù)審的執(zhí)行過(guò)程

      2 模塊測(cè)試

      測(cè)試軟件模塊是對(duì)代碼實(shí)現(xiàn)和軟件模塊設(shè)計(jì)的驗(yàn)證,與代碼復(fù)審相結(jié)合,用于確保軟件模塊設(shè)計(jì)滿足其相關(guān)規(guī)范。該階段重點(diǎn)是選用合適的測(cè)試方法對(duì)軟件模塊的具體實(shí)現(xiàn)、內(nèi)部的邏輯結(jié)構(gòu)、數(shù)據(jù)流向等進(jìn)行全面的測(cè)試,除了功能需求,還要增加非正常邏輯的測(cè)試,而這些是影響到軟件單元測(cè)試充分性的關(guān)鍵,最終確保軟件執(zhí)行其預(yù)定功能且不執(zhí)行其非預(yù)定功能。

      功能安全軟件的模塊測(cè)試在開(kāi)始前一般應(yīng)具備以下條件:模塊測(cè)試規(guī)范及計(jì)劃(模塊設(shè)計(jì)階段已生成);所提交的被測(cè)軟件版本受控(源代碼清單);源代碼已正確通過(guò)編碼規(guī)則檢查(代碼復(fù)審報(bào)告);源代碼已正確通過(guò)編譯或匯編;軟件詳細(xì)設(shè)計(jì)說(shuō)明;已搭建好的測(cè)試環(huán)境(包括測(cè)試的運(yùn)行環(huán)境和測(cè)試工具環(huán)境)。采用的測(cè)試方法為白盒,在其基礎(chǔ)上確定測(cè)試需要的其他配套技術(shù)及方法,如測(cè)試數(shù)據(jù)生成與驗(yàn)證技術(shù)、測(cè)試數(shù)據(jù)輸入技術(shù)、測(cè)試結(jié)果獲取技術(shù)。

      設(shè)計(jì)測(cè)試用例一般需考慮下面幾個(gè)方法:邊界值分析;控制流分析;接口分析;等價(jià)類(lèi)方法;形式化證明或斷言;量化的統(tǒng)計(jì)證據(jù)。

      功能安全軟件的模塊測(cè)試活動(dòng)流程如圖2所示。模塊測(cè)試各階段的輸入、輸出如圖3所示。

      圖2 軟件模塊測(cè)試活動(dòng)流程

      圖3 模塊測(cè)試中各階段的主要數(shù)據(jù)流

      根據(jù)模塊測(cè)試計(jì)劃中測(cè)試須達(dá)到的覆蓋率水平等進(jìn)行結(jié)果核對(duì),判斷是否出現(xiàn)異?;蛐枰a(bǔ)充測(cè)試用例情況,如出現(xiàn)相應(yīng)的情況應(yīng)做出對(duì)應(yīng)的處理,其具體流程如圖4所示。

      圖4 結(jié)果核對(duì)活動(dòng)的控制流程

      最后應(yīng)對(duì)測(cè)試執(zhí)行活動(dòng)、模塊測(cè)試文檔(包括模塊測(cè)試報(bào)告、測(cè)試用例、測(cè)試記錄、測(cè)試日志和測(cè)試異常報(bào)告等)進(jìn)行評(píng)審。評(píng)審一般包括下面幾點(diǎn)內(nèi)容:測(cè)試執(zhí)行活動(dòng)的有效性;測(cè)試結(jié)果的正確性、完備性和合理性;整個(gè)測(cè)試過(guò)程是否達(dá)到了模塊測(cè)試規(guī)范的要求;測(cè)試中所有生成的文檔是否符合規(guī)范。

      結(jié)束模塊測(cè)試工作一般應(yīng)具備以下條件:已按要求完成了模塊測(cè)試規(guī)范所規(guī)定的測(cè)試任務(wù);實(shí)際測(cè)試過(guò)程遵循了原定的軟件測(cè)試計(jì)劃要求;客觀、詳細(xì)地記錄了測(cè)試過(guò)程和測(cè)試中發(fā)現(xiàn)的所有問(wèn)題;測(cè)試文檔齊全、符合規(guī)范;測(cè)試的全過(guò)程自始至終在控制下進(jìn)行;測(cè)試中的問(wèn)題或異常有合理解釋或正確有效的處理;全部測(cè)試工具、被測(cè)軟件、測(cè)試支持軟件和評(píng)審結(jié)果已納入配置管理。

      3 集成測(cè)試

      功能安全軟件由于通常是嵌入式軟件,所以集成有兩個(gè)概念,一個(gè)是純粹的軟件模塊集成,一個(gè)是硬件和軟件相結(jié)合的可編程電子集成,本文所述的集成是沒(méi)有硬件參與的軟件集成。軟件集成測(cè)試主要是驗(yàn)證所有軟件模塊相互作用以實(shí)現(xiàn)其預(yù)定功能而不實(shí)現(xiàn)非預(yù)定功能,確保軟件系統(tǒng)滿足安全功能和系統(tǒng)性能力的特定要求。功能安全軟件的集成測(cè)試活動(dòng)流程如表1所示。

      對(duì)具體的安全相關(guān)產(chǎn)品的軟件,可根據(jù)軟件安全功能和軟件系統(tǒng)性能力選擇適當(dāng)?shù)募蓽y(cè)試技術(shù)。軟件集成測(cè)試一般應(yīng)符合以下要求:①對(duì)集成軟件進(jìn)行必要的靜態(tài)分析;②采用自底向上增量集成法,測(cè)試新組裝的軟件集成;③逐項(xiàng)測(cè)試軟件概要設(shè)計(jì)文檔規(guī)定的軟件的功能、性能等特性;④測(cè)試軟件之間、軟件和硬件之間的所有接口;⑤測(cè)試運(yùn)行條件(如數(shù)據(jù)結(jié)構(gòu)、輸入/輸出通道容量、內(nèi)存空間、調(diào)用頻率等)在邊界狀態(tài)下和人為設(shè)定的狀態(tài)下軟件的功能和性能;⑥應(yīng)按概要設(shè)計(jì)文檔要求,對(duì)軟件的功能、性能進(jìn)行強(qiáng)度測(cè)試;⑦對(duì)執(zhí)行安全功能代碼進(jìn)行安全性分析,明確每一個(gè)故障狀態(tài)和導(dǎo)致故障的可能原因,并對(duì)執(zhí)行安全功能代碼進(jìn)行針對(duì)性、重復(fù)性的測(cè)試。

      表1 軟件集成測(cè)試活動(dòng)流程

      4 結(jié)束語(yǔ)

      功能安全軟件的驗(yàn)證與確認(rèn)貫穿于安全相關(guān)產(chǎn)品軟件實(shí)現(xiàn)的全過(guò)程。由于該活動(dòng)是可重復(fù)性的,所以配置管理至關(guān)重要,以便后期如果出現(xiàn)事故查找故障出處。

      同時(shí),還要注重安全軟件本身的特性:

      ① 無(wú)移植性,針對(duì)軟件使用的特定環(huán)境而開(kāi)發(fā)的功能安全軟件,其如需移植,則必須重新測(cè)試使用平臺(tái);

      ② 靈活性,在保證完成安全功能的前提下要保持軟件操作等的靈活性;

      ③ 效率性,安全軟件主要是實(shí)現(xiàn)安全功能,如果沒(méi)有產(chǎn)品特別需求,這個(gè)不需太強(qiáng)求;

      ④ 正確性,這個(gè)是必須要遵循的,整個(gè)驗(yàn)證和確認(rèn)過(guò)程都是為了證明這一點(diǎn)。

      猜你喜歡
      編碼標(biāo)準(zhǔn)源代碼代碼
      人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
      基于TXL的源代碼插樁技術(shù)研究
      國(guó)家醫(yī)保局發(fā)布《關(guān)于貫徹執(zhí)行15項(xiàng)醫(yī)療保障信息業(yè)務(wù)編碼標(biāo)準(zhǔn)的通知》
      高校標(biāo)準(zhǔn)化主數(shù)據(jù)平臺(tái)建設(shè)與應(yīng)用
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      軟件源代碼非公知性司法鑒定方法探析
      高保真壓縮技術(shù)的商用價(jià)值
      大竹县| 宜君县| 驻马店市| 万荣县| 镇原县| 石河子市| 松江区| 谷城县| 宽甸| 太谷县| 积石山| 宁远县| 保康县| 宝应县| 朔州市| 图木舒克市| 京山县| 循化| 随州市| 九龙县| 缙云县| 昌黎县| 丘北县| 石阡县| 盖州市| 运城市| 龙口市| 延寿县| 通城县| 台中县| 吕梁市| 孟村| 富平县| 科技| 陆丰市| 武穴市| 贵溪市| 宣恩县| 上虞市| 瓦房店市| 梁河县|