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

        ?

        基于PYTHON實現(xiàn)的軟件缺陷檢測程序研究

        2020-09-29 07:54:12朱琦林挺
        科學(xué)與信息化 2020年25期
        關(guān)鍵詞:軟件缺陷

        朱琦 林挺

        摘 要 針對宇航飛行軟件對于軟件可靠性、安全性設(shè)計的要求,本文提出一種基于PYTHON語言實現(xiàn)的宇航飛行軟件缺陷檢測程序,通過對源代碼進行預(yù)處理和篩選,生成測試驅(qū)動文件,再對測試驅(qū)動文件傳輸?shù)教摂M機系統(tǒng),依托開源的KLEE生成并運行測試用例,將測試用例運行結(jié)果匯總到前端顯示,從而實現(xiàn)并驗證缺陷檢測程序。

        關(guān)鍵詞 軟件缺陷;字典結(jié)構(gòu);求解器

        引言

        宇航飛行軟件運行環(huán)境相對于地面環(huán)境存在單粒子效應(yīng)、高低溫、原子氧、空間碎片和電磁輻射等特殊情況[1],同時由于宇航飛行軟件的功能日趨復(fù)雜,可能存在不易檢測的固有設(shè)計缺陷,這些缺陷往往會在后期的系統(tǒng)聯(lián)試中才暴露,甚至在軌長期潛伏,由此帶來的損失很大,這要求對軟件設(shè)計缺陷提前發(fā)現(xiàn)和規(guī)避,依靠傳統(tǒng)測試方法發(fā)現(xiàn)顯然是比較困難的,而且時間成本較大,國外產(chǎn)品如LDRA Testbed,但是軟件版權(quán)在國外,源碼安全性不可控,因此,研究一套旨在提前發(fā)現(xiàn)并糾正缺陷的國產(chǎn)軟件缺陷檢測程序便提上了議事日程。

        PYTHON是一種解釋型的腳本語言,具有格式嚴謹、語法簡練以及豐富的數(shù)值計算資源,適合開發(fā)針對大數(shù)據(jù)的數(shù)據(jù)分析和挖掘方面的智能化軟件,因此,這里選擇基于PYTHON語言實現(xiàn)缺陷檢測程序。

        1軟件整體框架

        PYTHON語言在數(shù)據(jù)提取中可以建立“{關(guān)鍵字:數(shù)值}”形式的字典結(jié)構(gòu),在存儲和處理數(shù)據(jù)中可以通過關(guān)鍵字快速查詢到關(guān)鍵字對應(yīng)的數(shù)值,并支持字典嵌套的樹形結(jié)構(gòu),利用這個PYTHON特有的數(shù)據(jù)結(jié)構(gòu)處理和存儲軟件代碼信息,對源程序工程進行文件遍歷,將函數(shù)及其所調(diào)用到的函數(shù)涉及的代碼段匯總寫入指定名稱的C文件中,生成測試該函數(shù)的驅(qū)動程序[2]。缺陷檢測程序的整體結(jié)構(gòu)和框架如下:

        圖1 宇航飛行軟件系統(tǒng)缺陷檢測程序的整體框架示意圖

        如上圖所示,缺陷檢測程序首先對源程序工程進行文件遍歷,抽取出信息字典,匹配需要測試的函數(shù),將函數(shù)及其所調(diào)用到的函數(shù)涉及的代碼段匯總寫入指定名稱的C文件中,生成測試該函數(shù)的測試驅(qū)動程序[3]。

        2軟件實現(xiàn)

        首先接收和解析用戶命令行傳入的參數(shù),使用os庫的walk函數(shù)對參數(shù)SRC所指定的目錄下的文件進行兩次遍歷,第一次篩選所有的類型和宏定義,第二次分析函數(shù)和變量。

        測試驅(qū)動文件生成后,將測試驅(qū)動文件按TCP協(xié)議打包,按順序發(fā)送給服務(wù)端程序,這里使用了PYTHON的socket包來實現(xiàn)文件傳輸,服務(wù)端按客戶端報文中指定要求,順序重組文件數(shù)據(jù),生成與主機相同的測試驅(qū)動文件。

        KLEE是一個運行在 Linux 操作系統(tǒng)上的開源動態(tài)符號執(zhí)行工具,生成的測試用例達到很高的代碼覆蓋率,這里使用KLEE的STP求解器自動實現(xiàn)測試用例的生成[4]。經(jīng)過KLEE求解,計算出合適的用例去覆蓋源程序的語句、分支和條件組合,生成測試用例,并模擬運行,輸出運行結(jié)果。

        在代碼分析過程中,數(shù)據(jù)流分析、控制流分析、缺陷特征識別是關(guān)鍵步驟,特別是過程間的數(shù)據(jù)流和控制流分析的完備程度決定了編碼缺陷數(shù)據(jù)的分析能力。

        3缺陷檢測實驗

        缺陷檢測實驗選用的宿主機使用64位Windows10 系統(tǒng),并安裝了與此系統(tǒng)兼容的PYTHON3.5版本,VMWARE9.0下安裝了Ubuntu14.04桌面版,分別在宿主機和部署宇航飛行軟件系統(tǒng)缺陷檢測程序的客戶端和服務(wù)端程序,檢測一段預(yù)先編制會導(dǎo)致堆棧溢出的程序。

        軟件在子程序sc_cast所調(diào)用的子程序gioGetBit中發(fā)現(xiàn)了可能存在堆棧溢出的問題,并打印出相關(guān)位置信息。

        4結(jié)束語

        基于PYTHON的宇航飛行軟件系統(tǒng)缺陷檢測程序可用于在軟件原型開發(fā)前期,不具備實際計算機及外圍設(shè)備支持的情況下,依靠軟件靜態(tài)分析及自動化生成并運行動態(tài)測試用例,快速發(fā)現(xiàn)和定位宇航飛行軟件存在的設(shè)計和編碼缺陷,從而提升軟件可靠性和安全性。

        參考文獻

        [1] 佚名.中國在軌衛(wèi)星故障實現(xiàn)自動檢測[ED/OL].http://tech.sina.com.cn/d/2005-09-08/1355715184.shtml,2005-9-8.

        [2] 航天軟件產(chǎn)品ADA語言編碼規(guī)范:Q/RJ 633-2019[S].北京:中國標(biāo)準(zhǔn)出版社,2019.

        [3] 航天型號軟件C語言安全子集:GJB5369-2005[S].北京:中國標(biāo)準(zhǔn)出版社,2019.

        [4] Martins R,Manquinho V,Inês Lynce. An overview of parallel SAT solving[J]. Constraints,2012,17(3):304-347.

        猜你喜歡
        軟件缺陷
        基于測試的軟件缺陷數(shù)據(jù)分析方法
        卷宗(2020年34期)2021-01-29 05:36:24
        基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
        淺談軟件永遠不完美的原因
        基于NPE-SVM的軟件缺陷預(yù)測模型
        軟件開發(fā)項目的質(zhì)量管理策略探討
        科學(xué)家(2017年5期)2017-06-09 17:20:33
        開源程序的軟件缺陷分布特征的量化分析研究
        液壓支架電液控制系統(tǒng)軟件缺陷管理
        基于度量元的靜態(tài)軟件缺陷預(yù)測技術(shù)*
        繼電保護裝置軟件缺陷跟蹤管理方法的研究
        軟件缺陷管理方案分析
        国产天堂av在线播放资源| 日本在线视频网站www色下载| 国产成人福利在线视频不卡| 国产激情在线观看视频网址| 国精产品一区一区三区有限在线 | 人人做人人爽人人爱| 国产人妻精品一区二区三区不卡| 亚洲国产成人AⅤ片在线观看| 久草视频在线播放免费| 99re66在线观看精品免费| 日本一卡2卡3卡四卡精品网站| 久久无码高潮喷水免费看| 国产av大片久久中文字幕| 伦伦影院午夜理论片| 人妻在线日韩免费视频| 国产精品久久中文字幕第一页 | 国产成人精品123区免费视频| 国品精品一区二区在线观看 | 午夜精品久久99蜜桃| 亚洲日韩av无码一区二区三区人| 无码aⅴ在线观看| 无码AⅤ最新av无码专区| 亚洲毛片免费观看视频| 国产肉体xxxx裸体784大胆| 久久亚洲黄色| 亚洲第一页综合av免费在线观看 | 久久精品国产亚洲av调教| 精品人妻av一区二区三区| 艳妇臀荡乳欲伦交换在线播放| 日本一区二区三区激情视频| 日本频道一区二区三区| 青娱乐极品视觉盛宴国产视频| 亚洲另类国产综合第一| 亚洲一区二区三区偷拍自拍| 亚洲在线视频免费视频| 无码人妻丰满熟妇区五十路百度 | 国产高潮精品一区二区三区av| 电驱蚊液可以插一晚上吗| 亚洲av无码国产精品色午夜洪| 久久精品国产亚洲一区二区| 婷婷开心五月亚洲综合|