亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LDRA Testbed的民用機(jī)載軟件結(jié)構(gòu)覆蓋率分析流程研究

        2014-03-04 09:06:08丁立冬
        關(guān)鍵詞:結(jié)構(gòu)分析

        黃 犖 丁立冬

        (上海飛機(jī)設(shè)計(jì)研究院,上海 201210)

        基于LDRA Testbed的民用機(jī)載軟件結(jié)構(gòu)覆蓋率分析流程研究

        黃 犖 丁立冬

        (上海飛機(jī)設(shè)計(jì)研究院,上海 201210)

        根據(jù)RTCA DO-178B中對于民用飛機(jī)機(jī)載軟件結(jié)構(gòu)覆蓋率的要求,從實(shí)踐出發(fā),給出了使用DLRA Testbed工具進(jìn)行民用飛機(jī)機(jī)載軟件結(jié)構(gòu)覆蓋率分析的主要流程。

        機(jī)載軟件; 結(jié)構(gòu)覆蓋率;分析流程

        結(jié)構(gòu)覆蓋率分析(Structural Coverage Analysis, SCA),可以揭示在基于需求的測試過程中未被執(zhí)行的代碼結(jié)構(gòu)。由于基于需求的測試,可能無法覆蓋所有的代碼結(jié)構(gòu),所以應(yīng)完成結(jié)構(gòu)覆蓋率分析,并進(jìn)行附加驗(yàn)證,以達(dá)到軟件級別所要求的結(jié)構(gòu)覆蓋率。

        基于LDRA Testbed的結(jié)構(gòu)覆蓋率分析,是使用LDRA Testbed對源代碼進(jìn)行插樁,然后在真實(shí)環(huán)境中執(zhí)行插樁后的代碼和選定的基于需求的測試程序,使用LDRA Testbed對通過串口傳送到宿主機(jī)上的歷史記錄文件進(jìn)行分析,進(jìn)而產(chǎn)生結(jié)構(gòu)覆蓋率分析的報(bào)告。

        本文以DO-178B《機(jī)載系統(tǒng)和設(shè)備合格審定中的軟件考慮》標(biāo)準(zhǔn)為依據(jù),描述使用LDRA Testbed,對民用飛機(jī)機(jī)載軟件進(jìn)行結(jié)構(gòu)覆蓋率分析的活動(dòng)流程。

        1 要求

        DO-178B標(biāo)準(zhǔn)中定義軟件驗(yàn)證過程通過評審、分析活動(dòng)來驗(yàn)證需求、軟件構(gòu)架和代碼的準(zhǔn)確性、完全性和可測性;通過開發(fā)測試用例和測試程序來驗(yàn)證需求內(nèi)部的一致性和完整性;通過運(yùn)行測試程序來驗(yàn)證代碼滿足需求的要求。

        1.1 結(jié)構(gòu)覆蓋率分析的必要性

        進(jìn)行結(jié)構(gòu)覆蓋率分析,是為了確定哪些代碼結(jié)構(gòu)未被測試程序執(zhí)行。測試程序可能不會(huì)完全覆蓋代碼結(jié)構(gòu),所以執(zhí)行結(jié)構(gòu)覆蓋率分析,并進(jìn)行附加驗(yàn)證,以彌補(bǔ)結(jié)構(gòu)覆蓋的不足。

        結(jié)構(gòu)覆蓋率分析通過鑒定軟件模塊來完成。軟件模塊貫徹軟件需求,而這些需求則由特定的測試程序來測試。使用插樁后的代碼,再次運(yùn)行測試程序來捕獲結(jié)構(gòu)覆蓋的結(jié)果。

        結(jié)構(gòu)覆蓋率分析可以揭示測試過程中未被執(zhí)行的代碼結(jié)構(gòu)。如果有疏漏,則決定是否由其它特定的測試程序來執(zhí)行被測源代碼模塊。

        不同安全級別的軟件對結(jié)構(gòu)覆蓋率的要求不同。如表1所示。

        表1 結(jié)構(gòu)覆蓋率要求

        1.2 軟件結(jié)構(gòu)覆蓋率分析過程概述

        LDRA Testbed是通過了適航認(rèn)證的覆蓋率分析工具,有很高的可靠性,使用范圍也相當(dāng)廣泛。使用LDRA Testbed進(jìn)行結(jié)構(gòu)覆蓋率分析,工作可分為3個(gè)階段。

        ——插裝:拷貝源代碼,在源代碼的副本中根據(jù)靜態(tài)分析得出的結(jié)果插入探針,把插裝后的文件進(jìn)行編譯、鏈接、執(zhí)行。在執(zhí)行的過程中,插入的探針記錄程序執(zhí)行的信息,并保存在歷史數(shù)據(jù)文件中。

        ——?jiǎng)討B(tài)覆蓋率分析:分析歷史數(shù)據(jù)文件,并在靜態(tài)信息的基礎(chǔ)上繪制動(dòng)態(tài)覆蓋率圖。

        ——查看報(bào)告:查看動(dòng)態(tài)覆蓋率分析的結(jié)果,選擇執(zhí)行相應(yīng)的結(jié)構(gòu)覆蓋率分析解決方案。

        結(jié)構(gòu)覆蓋率分析解決方案要求進(jìn)行附加驗(yàn)證。未執(zhí)行的代碼結(jié)構(gòu)可能由下列原因造成。

        ——基于需求的測試用例或程序的不足。這些測試用例應(yīng)加以補(bǔ)充或修改測試程序,以提供丟失的覆蓋范圍。用于完成需求覆蓋率分析的方法可能需要加以評審。

        ——軟件需求的缺陷。應(yīng)修改軟件需求,開發(fā)額外的測試用例,執(zhí)行測試程序。

        ——死碼。應(yīng)消除這種代碼,完成分析以評定這種影響及是否需要重新驗(yàn)證。

        ——非激活碼。對于在航空器或發(fā)動(dòng)機(jī)中所用的任何配置中不打算執(zhí)行的非激活碼,可以通過分析和測試來表明防止、隔離或消除無意中執(zhí)行這種碼的方法。對僅在目標(biāo)機(jī)環(huán)境的某些配置中執(zhí)行的非激活碼,要確定正常執(zhí)行這種代碼要求的操作配置,并且要開發(fā)附加的一些測試用例和測試程序,以滿足要求的覆蓋率的目標(biāo)。

        本文將要說明的,是針對民用飛機(jī)機(jī)載軟件,使用LDRA Testbed對源代碼進(jìn)行插樁,然后在真實(shí)環(huán)境下執(zhí)行插樁后的代碼及選定的基于需求的測試程序,接著再次使用LDRA Testbed對傳送到宿主機(jī)上的歷史記錄文件進(jìn)行分析,查看分析報(bào)告選擇相應(yīng)的解決方案,進(jìn)而達(dá)到期望的軟件結(jié)構(gòu)覆蓋級別。

        2 轉(zhuǎn)換準(zhǔn)則

        結(jié)構(gòu)覆蓋率分析活動(dòng),在基于需求的測試完成,源代碼及其相關(guān)的測試程序經(jīng)過評審并且進(jìn)入配置庫之后就可以開始。

        3 輸入數(shù)據(jù)

        輸入數(shù)據(jù)有:待分析的源代碼、軟件需求、測試用例/程序。

        4 過程處理

        結(jié)構(gòu)覆蓋率分析流程如圖1所示。

        圖1 結(jié)構(gòu)覆蓋率分析流程圖

        執(zhí)行結(jié)構(gòu)覆蓋率分析,包含以下活動(dòng):

        ——選擇要分析的代碼;

        ——源代碼進(jìn)行插樁;

        ——構(gòu)建插樁后的代碼;

        ——運(yùn)行插樁后的代碼;

        ——運(yùn)行選定的基于需求的測試用例程序;

        ——收集和分析歷史數(shù)據(jù)文件;

        ——如果發(fā)現(xiàn)代碼覆蓋率不足,選擇必要的SCA解決方案;

        ——重復(fù)相應(yīng)步驟直到達(dá)到期望的覆蓋級別。

        4.1 基于單個(gè)文件分析

        4.1.1 運(yùn)行Testbed

        通過“開始”→“所有程序”“C/C++ LDRA Testbed”來運(yùn)行Testbed。

        4.1.2 選擇源文件

        在File菜單下選擇Select File選項(xiàng),選擇要分析的文件。

        4.1.3 設(shè)置向?qū)υ捒?/p>

        當(dāng)新的文件或一個(gè)set被調(diào)入Testbed時(shí),向?qū)Т翱趯⒈患せ?。這個(gè)對話窗口允許測試人員修改和當(dāng)前文件相關(guān)的Sysppvar.dat文件和Sysearch.dat文件。如圖2所示。

        圖2 設(shè)置向?qū)υ捒?/p>

        4.1.4 檢查分析范圍設(shè)置

        點(diǎn)擊菜單欄中的Configure,在下拉菜單中點(diǎn)擊Static Options選項(xiàng),將會(huì)出現(xiàn)圖3所示窗口。

        這個(gè)窗口用來設(shè)置和靜態(tài)分析相關(guān)的選項(xiàng):

        a) 是否分析include文件;

        b) 通過Sysearch.dat添加搜索路徑;

        c) 通過Sysppvar.dat添加宏(只針對C/ C++)。

        圖3 靜態(tài)配置項(xiàng)窗口

        4.1.5 選擇分析選項(xiàng)

        測試人員能夠通過對話窗口來選擇Testbed進(jìn)行哪些分析。點(diǎn)擊Analysis下拉菜單,選擇Select Analysis。

        測試人員通過選擇確認(rèn)框來選擇進(jìn)行哪些分析,然后選擇Start Analysis按鈕開始進(jìn)行分析。

        如果僅僅是給文件插樁,選擇Main Static Analysis和Generate Instrumented Program(s)即可。

        4.1.5.1 主要靜態(tài)分析(Main Static Analysis)

        Main Static Analysis是進(jìn)行其它分析的必要條件,所以在進(jìn)行其它的靜態(tài)或者動(dòng)態(tài)分析之前,一定要執(zhí)行主要靜態(tài)分析。在選擇Main Static Analysis之后,會(huì)出現(xiàn)帶下劃線的“configure”選項(xiàng),可根據(jù)需要對Main Static Analysis中的一些選項(xiàng)進(jìn)行配置。

        而選擇Generate Instrumented Program(s)之后,同樣會(huì)在其后出現(xiàn)帶下劃線的“configure”選項(xiàng),可根據(jù)需要設(shè)置生成插樁后文件的名稱、指定生成插樁文件的存放路徑、選擇插樁模板等。

        在編譯插樁后的文件時(shí),需要明白并不是被測系統(tǒng)的所有原文件都要被插樁。例如:一個(gè)有300個(gè)文件的系統(tǒng),測試人員可以插樁其中的一個(gè)文件,也可以把300個(gè)文件都插樁。測試人員在第一個(gè)測試覆蓋率的實(shí)例中,應(yīng)該首先測試一小部分文件而不是整個(gè)系統(tǒng)。

        在這個(gè)階段,插樁后的代碼的編譯和執(zhí)行不必在Testbed中進(jìn)行??梢杂貌鍢逗蟮拇a代替原代碼,然后在開發(fā)的環(huán)境中編譯,在實(shí)際的環(huán)境中運(yùn)行。同時(shí),LDRA Testbed可以很便利調(diào)用一個(gè)編譯器的命令行,或編譯命令文件。

        被插樁后的文件在執(zhí)行時(shí),會(huì)打開一個(gè)歷史文件并把分支執(zhí)行的信息寫入該文件,在執(zhí)行結(jié)束關(guān)閉該文件。在LDRA Testbed的動(dòng)態(tài)分析的選項(xiàng)中,指定執(zhí)行的歷史文件(sourcefilename.exh or history. exh)的路徑。

        4.1.5.2 動(dòng)態(tài)覆蓋率分析(Dynamic Coverage Analysis)

        Dynamic Coverage Analysis是對程序在運(yùn)行時(shí)生成的歷史信息,提供各種各樣的結(jié)果以及創(chuàng)建新的圖形示例和文本報(bào)告。同樣,在選擇Dynamic Coverage Analysis之后,會(huì)出現(xiàn)帶下劃線的“configure”選項(xiàng),可根據(jù)需要進(jìn)行其他相關(guān)配置。

        需要說明的是,在使用Testbed進(jìn)行動(dòng)態(tài)覆蓋率分析之前,有必要指定分析報(bào)告的級別。選擇configure下拉菜單中的Dynamic Coverage Report Options 選項(xiàng),在彈出的窗中選擇級別。

        4.1.6 查看結(jié)果

        分析結(jié)束后,需要查看覆蓋率結(jié)果。LDRA Testbed可以生成含有覆蓋率信息的源代碼瀏覽文件(html/txt),可在Individual Results下拉菜單中選擇所需的覆蓋率報(bào)告類型。如圖4所示。

        圖4 選擇報(bào)告類型窗口

        4.2 基于多個(gè)文件的分析

        除了能分析單個(gè)源文件外,Testbed還能以“集”(set)的方式對多個(gè)文件同時(shí)進(jìn)行分析。一個(gè)set可以有兩種模式:Group(default)和System。

        Group這種模式下,Testbed對一個(gè)set中的文件進(jìn)行相互獨(dú)立的分析,這樣對于一批文件就可以一次分析完,而不需要一個(gè)個(gè)的導(dǎo)入工具來進(jìn)行分析。

        System這種模式下,Testbed將這個(gè)set中的所有文件是作為一個(gè)整體來分析的,會(huì)給出這些文件內(nèi)函數(shù)相互間的調(diào)用關(guān)系,變量引用等等結(jié)果,也就是將這些文件作為一個(gè)工程來分析。

        從Set菜單,選擇Select/Create/Delete Set選項(xiàng)。

        然后被提示,往如下的對話框中輸入集的相應(yīng)的名稱,如圖5所示:

        集的名字不能為空白,也不應(yīng)以空格開頭,還不可包含如下的字符:/:*?”<>|。用不被允許的字符給集命名會(huì)產(chǎn)生一個(gè)強(qiáng)制集命名的錯(cuò)誤消息。如果往LDRA Testbed中輸入有效的命名,這個(gè)名稱會(huì)被確認(rèn)并登陸到數(shù)據(jù)庫。

        圖5 設(shè)置集名稱窗口

        4.2.1 設(shè)置集屬性

        給新集命名后會(huì)彈出如下的對話框,并要求給一個(gè)屬性。選擇“System”,然后LDRA Testbed就會(huì)把新集的名字以及其屬性保存到它的內(nèi)部的數(shù)據(jù)庫。

        4.2.2 往集里添加文件

        從Set菜單下選擇List/Add/Remove Files in Set,將彈出如下窗口,如圖6所示:

        圖6 添加文件窗口

        點(diǎn)擊Add按鈕添加要分析的程序。

        4.2.3 集的分析及結(jié)果查看

        對集的文件的分析和前面的單個(gè)文件的是一樣的。

        不同的是集的方式在結(jié)果顯示上,System Results菜單下是一個(gè)集內(nèi)所以文件的分析結(jié)果的匯總。如果要單獨(dú)察看單個(gè)文件的結(jié)果,需要在如下的選擇框選擇想察看的文件,如圖7所示。

        選定了要查看的文件后,相應(yīng)的結(jié)果查看的方式也和前面單個(gè)文件的方式一致。

        V221+.91

        C

        1003–6660(2014)04–0026–05

        10.13237/j.cnki.asq.2014.04.007

        [收修訂稿日期] 2014-05-05

        猜你喜歡
        結(jié)構(gòu)分析
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        隱蔽失效適航要求符合性驗(yàn)證分析
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        新型平衡塊結(jié)構(gòu)的應(yīng)用
        模具制造(2019年3期)2019-06-06 02:10:54
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢分析
        論《日出》的結(jié)構(gòu)
        創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長
        中西醫(yī)結(jié)合治療抑郁癥100例分析
        在線教育與MOOC的比較分析
        国产av无毛无遮挡网站| 色偷偷av一区二区三区| 俺去俺来也在线www色官网| 思思久久99er热只有频精品66| 丰满少妇人妻无码超清| 日本按摩偷拍在线观看| 丰满熟女高潮毛茸茸欧洲视频| 久久久久久成人毛片免费看| 国产亚洲精品性爱视频| 久久免费精品日本久久中文字幕| 免费不卡无码av在线观看| 丰满熟妇乱又伦| 中文字幕第一页亚洲观看| 国产精品女丝袜白丝袜美腿| 奇米影视色777四色在线首页| 三上悠亚久久精品| 免费 无码 国产精品| 日本一区二区三区丰满熟女| 国产熟女露脸91麻豆| 精品卡一卡二卡3卡高清乱码 | 国产嫩草av一区二区三区| 欧美精品黑人粗大免费| 国产伦精品一区二区三区视| 亚洲av永久综合网站美女| 国产禁区一区二区三区| 国语自产偷拍精品视频偷| 综合激情网站| 精品黄色国产一区二区| 日韩av无码久久一区二区| 亚洲欧美aⅴ在线资源| 91精品全国免费观看青青| 色二av手机版在线| 午夜麻豆视频在线观看| 国产精品久久精品第一页| 亚洲精品国产成人无码区a片| 波多野无码AV中文专区| 国产亚洲精品精品综合伦理| 私人毛片免费高清影视院| 7777精品久久久大香线蕉| av毛片在线播放网址| 国产精品自线一区二区三区 |