• 
    

    
    

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

      ?

      基于高度綜合化與模塊化系統(tǒng)軟件的測試方法研究

      2018-10-31 10:49:24顧曉明吳振宇
      關(guān)鍵詞:軟件測試

      顧曉明 吳振宇

      摘要:針對高度綜合化與模塊化驗(yàn)收手段缺乏,本文分析這類系統(tǒng)的特點(diǎn),基于目前現(xiàn)有測試方法,結(jié)合項(xiàng)目工程經(jīng)驗(yàn),探索其測試充分性,提出“分級分層需求覆蓋”、“信號模擬仿真覆蓋”、“核心應(yīng)用邏輯覆蓋”以及“同時(shí)序等效狀態(tài)覆蓋”測試方法。實(shí)際工程應(yīng)用表明,能達(dá)到上述四個(gè)覆蓋后,基本可以保證高度綜合化與模塊化系統(tǒng)的測試充分性,有效提高其測試質(zhì)量,充分暴露隱藏問題。

      關(guān)鍵詞:綜合化與模塊化;軟件測試;邏輯覆蓋;時(shí)序等效

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2018)06-0105-04

      迄今為止,機(jī)載設(shè)備系統(tǒng)體系架構(gòu)經(jīng)歷多次演變,目前高度綜合化與模塊化是主要發(fā)展方向,一是基于功能的綜合,二是基于資源的綜合,美軍的CNI對系統(tǒng)內(nèi)的硬件資源與軟件資源均進(jìn)行通用化、模塊化設(shè)計(jì),系統(tǒng)的軟硬件資源通過動(dòng)態(tài)配置以及重構(gòu)達(dá)到綜合化目的[1]。

      系統(tǒng)的綜合化和模塊化發(fā)展,同時(shí)對系統(tǒng)軟件測試帶來機(jī)遇與挑戰(zhàn),這類軟件采用通用的測試方法,無論測試深入以及廣度都無法達(dá)到測試充分性的要求,造成完成系統(tǒng)軟件測試工作后,系統(tǒng)實(shí)際使用中還是暴露出一系統(tǒng)的問題:有編程語法植入的問題、信號干擾引發(fā)的問題,系統(tǒng)容錯(cuò)性不足問題,也有系統(tǒng)狀態(tài)轉(zhuǎn)換出錯(cuò)的問題,給系統(tǒng)的使用造成很大的安全隱患。這類系統(tǒng)軟件的測試不再是單個(gè)功能、單個(gè)設(shè)備軟件需求挖掘和驗(yàn)證,而是在模塊化的測試基礎(chǔ)方法,實(shí)現(xiàn)深入的綜合化測試。本文就此類系統(tǒng)測試層次、有效輸入、核心控制邏輯、等效狀態(tài)轉(zhuǎn)換等四個(gè)方面進(jìn)行測試方法的研究。

      1 系統(tǒng)特征研究

      分析這類高度綜合化與模塊化系統(tǒng)特點(diǎn),將系統(tǒng)包含所有軟件進(jìn)行四級分層[2]:底層驅(qū)動(dòng)軟件、服務(wù)接口軟件、功能實(shí)現(xiàn)軟件以及系統(tǒng)控制軟件。如圖1所示。

      (1)底層驅(qū)動(dòng)軟件:實(shí)現(xiàn)與底層操作系統(tǒng)或總線的交互調(diào)用以及處理,負(fù)責(zé)各不同功能軟件的切換調(diào)用,統(tǒng)一底層報(bào)文處理,對上屏蔽格式協(xié)議。

      (2)服務(wù)接口軟件:實(shí)現(xiàn)上層軟件指令分配,收集下層狀態(tài),下發(fā)指令要求精確發(fā)送到指定功能實(shí)時(shí)性要求高,轉(zhuǎn)發(fā)的報(bào)文傳輸量大要求高效及時(shí)。

      (3)功能實(shí)現(xiàn)軟件:實(shí)現(xiàn)與前端設(shè)備的交互,結(jié)合要求狀態(tài),經(jīng)過數(shù)模轉(zhuǎn)換、信號處理等,實(shí)現(xiàn)具體功能。

      (4)系統(tǒng)控制軟件:接收處理外圍指令,實(shí)現(xiàn)綜合調(diào)度,并控制系統(tǒng)內(nèi)部狀態(tài),是整個(gè)系統(tǒng)核心。

      四級軟件存在統(tǒng)一的驅(qū)動(dòng)與接口,但各自實(shí)現(xiàn)功能以及特點(diǎn)不同,進(jìn)行測試充分性分析時(shí),采用共性的基礎(chǔ)分析,并在基礎(chǔ)上結(jié)合各自特點(diǎn),考慮系統(tǒng)綜合化和模塊化,整理出既滿足充分性要求又能體現(xiàn)系統(tǒng)特點(diǎn)的測試方法。

      2 分級分層需求覆蓋

      四級軟件各有側(cè)重點(diǎn),基于程序模塊化與系統(tǒng)綜合化,我們應(yīng)從頂層考慮,底層入手,分級分層地區(qū)分重點(diǎn)進(jìn)行覆蓋。將測試劃分三層測試[3]:底層驅(qū)動(dòng)軟件測試,應(yīng)用層軟件測試(包括功能軟件、接口軟件、管控軟件),整機(jī)系統(tǒng)軟件測試。三層測試有機(jī)地融為一體,區(qū)分側(cè)重點(diǎn),抓住本層測試目的,避免無效重復(fù)測試。如圖2所示。

      (1)底層驅(qū)動(dòng)軟件測試,圍繞其提供的接口、函數(shù)等要求,從需求、函數(shù)、部件三個(gè)層次推敲覆蓋其對外提供信息,采用API接口為主測試方法,從有效形參、無效形參兩個(gè)角度編制腳本語言,覆蓋其向上提供的接口。

      (2)應(yīng)用層軟件測試,圍繞實(shí)現(xiàn)功能、接口服務(wù)、邏輯控制等核心功能,主要從需求角度整理出測試點(diǎn),進(jìn)行需求覆蓋,主要采用功能、接口、性能為主測試方法,從規(guī)定功能、未規(guī)定輸入兩個(gè)方面,覆蓋其要求實(shí)現(xiàn)的功能與容錯(cuò)性。

      (3)整機(jī)系統(tǒng)軟件測試,從系統(tǒng)需求出發(fā),不拘于需求,從頂層獲取系統(tǒng)應(yīng)用場景(包含業(yè)務(wù)流程),根據(jù)軟件分布,自頂向下逐步細(xì)化分析將各軟件功能集成加入到應(yīng)用場景中,構(gòu)建各類典型應(yīng)用場景,開展系統(tǒng)綜合應(yīng)用工作流程的測試,驗(yàn)證系統(tǒng)穩(wěn)定性以及軟件之間協(xié)調(diào)性。

      針對系統(tǒng)功能層次分解,三層測試具有以下優(yōu)點(diǎn):首先,底層軟件與應(yīng)用層軟件可以很好覆蓋模塊化的需求要求;其次,由于整體系統(tǒng)軟件應(yīng)用場景的角度開展驗(yàn)證就是綜合化特點(diǎn),各分機(jī)不在是一個(gè)獨(dú)立的功能點(diǎn),而是穿插交織的集合體,因此只有從系統(tǒng)角度出發(fā),分析其應(yīng)用場景,構(gòu)建其狀態(tài)轉(zhuǎn)換要求,從整機(jī)角度達(dá)到綜合化覆蓋。最后,從系統(tǒng)頂層分析-底層模塊入手-整機(jī)測試,三個(gè)級別開展測試,各自覆蓋其測試的重點(diǎn),減少重復(fù)工作,高效優(yōu)質(zhì)開展測試工作,能從宏觀角度達(dá)到高度綜合化模塊化系統(tǒng)的測試充分性。

      3 信號模擬仿真覆蓋

      目前這類軟件的軟硬模塊化[4]和系統(tǒng)綜合化要求[2]程度高,功能軟件軟硬調(diào)整幅度特別大,同時(shí)存在多個(gè)功能相互制約的情況,這部分軟件在實(shí)驗(yàn)室無法充分驗(yàn)證,造成后期更改代價(jià)巨大。對此,我們提出“信號模擬仿真覆蓋”以實(shí)驗(yàn)室角度開展功能軟件對于信號處理的充分性測試。如圖3所示。

      方法1:使用現(xiàn)有不同類信號源或信號模擬器構(gòu)建各類輸入信號,主要圍繞不同信號類型、信號識別的邊界范圍等,驗(yàn)證各功能設(shè)備對于單一信號的處理能力。

      方法2:使用回放技術(shù),將采集外場信號數(shù)據(jù)(采用原設(shè)備中加裝記錄功能,從接收的數(shù)據(jù)源頭開始采集并記錄在外部使用環(huán)境或?qū)嵮b環(huán)境下輸入的各類信號源)進(jìn)行注入,主要圍繞實(shí)裝信號背景處理、穿插干擾等。驗(yàn)證各功能設(shè)備對于外場干擾處理的能力。

      方法3:對于采集的外場信號,進(jìn)行人工二次加工(依據(jù)以往累積的典型干擾、特殊干擾等),在軟件層次構(gòu)造信號輸入的處理邊界或異常,這部分圍繞信號處理兼容性、特殊性等,驗(yàn)證各功能軟件對于特殊數(shù)據(jù)處理的合理性。

      4 核心應(yīng)用邏輯覆蓋

      系統(tǒng)控制軟件負(fù)責(zé)外圍指令梳理、模式切換、整體調(diào)度以及邏輯交叉,根據(jù)以往項(xiàng)目經(jīng)驗(yàn)分析,系統(tǒng)控制這部分出錯(cuò)概率最高,系統(tǒng)運(yùn)行至某狀態(tài)時(shí)形成設(shè)計(jì)缺陷,造成嚴(yán)重后果。針對這部分我們提出“核心應(yīng)用邏輯覆蓋”的思路。

      方法1:關(guān)注核心應(yīng)用程序開發(fā)環(huán)境,首先采用邏輯覆蓋工具,達(dá)到語句、分支覆蓋100%,進(jìn)行程序插裝-被測板運(yùn)行-數(shù)據(jù)收集-不覆蓋代碼分析,重復(fù)上述步驟,達(dá)到最終覆蓋狀態(tài),對于無法覆蓋的程序提出問題或給出解釋。

      方法2:對于程序開發(fā)環(huán)境無法支撐現(xiàn)有邏輯覆蓋工具的,這部分我們根據(jù)覆蓋采集原理,提出采用人工插裝方式開展覆蓋。

      步驟1:首先在被覆蓋程序的頭文件中定義一個(gè)二維數(shù)組TEST[n][2];

      步驟2:將核心程序中所有判斷分支與循環(huán)進(jìn)行梳理,對于每個(gè)判斷分支與循環(huán)插裝代碼,先定義每個(gè)判斷分支與循環(huán)一個(gè)固定編號n,對判斷條件或循環(huán)條件進(jìn)行判斷滿足要求走YES分支設(shè)置TEST[n][0]為1,不滿足要求走NO分支設(shè)置TEST[n][1]為1。同時(shí)在程序中插裝一條指令,程序接收這個(gè)指令,會(huì)將數(shù)組TEST[n][2]寫入FLASH或其余可保存存儲(chǔ)器中。

      步驟3:將插裝完成的應(yīng)用程序,使用開發(fā)環(huán)境重新編譯,并燒寫到目標(biāo)板中。

      步驟4:重新運(yùn)行程序,設(shè)計(jì)用例進(jìn)行運(yùn)行,在運(yùn)行所有用例完成后,發(fā)送結(jié)束指令,將記錄數(shù)組進(jìn)行寫入存儲(chǔ)器中。

      步驟5:在調(diào)試方式下,讀取保存的TEST[n][2],查看還有哪部分分支或循環(huán)無法進(jìn)行覆蓋的,分析原因,找出用例設(shè)計(jì)不足之處,重復(fù)步驟3、4,最終目標(biāo)達(dá)到語句、分支覆蓋100%。

      步驟6:對于經(jīng)過步驟5處理,無法達(dá)到100%的程序,分析原因提出問題。

      對于核心應(yīng)用程序采用邏輯覆蓋方法,在此基礎(chǔ)上能盡最大量覆蓋邏輯代碼,達(dá)到系統(tǒng)核心控制的100%覆蓋,有效提高系統(tǒng)的可靠性。

      5 同時(shí)序等效狀態(tài)覆蓋

      對于高度綜合化和模塊化系統(tǒng),其狀態(tài)轉(zhuǎn)換通常包含工作狀態(tài)轉(zhuǎn)換、運(yùn)行狀態(tài)轉(zhuǎn)換,其核心是資源重復(fù)使用故障時(shí)相互狀態(tài)搶占轉(zhuǎn)換。如圖4所示。

      方法1:對于通常的工作狀態(tài)與運(yùn)行狀態(tài)轉(zhuǎn)換,當(dāng)條件不多時(shí)采用故障樹羅列的方式進(jìn)行覆蓋,當(dāng)所需條件較多時(shí)使用二維矩陣表進(jìn)行覆蓋,通過故障樹與二維矩陣就可以達(dá)到全狀態(tài)100%覆蓋。

      方法2:對于資源重復(fù)使用故障時(shí)相互狀態(tài)搶占轉(zhuǎn)換的覆蓋,由于資源故障種類繁多,相互功能搶占類型由于不斷變化,窮舉法無法實(shí)施,故障樹與二維矩陣無法體現(xiàn)時(shí)間以及轉(zhuǎn)換狀態(tài)雙重要求,這部分經(jīng)過多年項(xiàng)目累積與探尋,我們提出采用“同時(shí)序等效狀態(tài)覆蓋”來解決這一問題。

      步驟1:采用UML建模功能,建立UML序列的對象生命線,從初始狀態(tài),第一次故障切換狀態(tài),第二次故障切換狀態(tài)…..第N次故障切換狀態(tài)。

      步驟2:梳理參與狀態(tài)切換的所有功能軟件的全狀態(tài),每個(gè)功能所需要設(shè)備的全狀態(tài),空閑設(shè)備的全狀態(tài)。

      步驟3:對初始狀態(tài)進(jìn)行故障設(shè)置,依次模擬故障狀態(tài),將故障后重新組成的狀態(tài)依次設(shè)置為I1~N,從現(xiàn)有功能軟件以及剩余設(shè)備狀態(tài)進(jìn)行考慮,梳理出狀態(tài)相同則認(rèn)為同一狀態(tài),作為同狀態(tài)合并,后續(xù)減少同狀態(tài)的故障延伸。

      步驟4:在第一次故障后的I1~N狀態(tài)下,去除同狀態(tài)的In,對于剩余狀態(tài)(I(N-n))繼續(xù)模擬第二次故障,將故障后重新組成的狀態(tài)依次設(shè)置為II1~N,同理開展同狀態(tài)合并,并減少同狀態(tài)的故障延伸。

      步驟5:依次重復(fù)第三次….第N次故障發(fā)生,直至最后無狀態(tài)切換。

      步驟6:將每次故障變化以及得到新狀態(tài)進(jìn)行用例設(shè)計(jì)(用例總數(shù):I(N-n)+II(N-n)….X(N-n)),同狀態(tài)無需設(shè)計(jì)后續(xù)用例。

      通過實(shí)際工程驗(yàn)證,使用“同時(shí)序等效狀態(tài)覆蓋”進(jìn)行等同狀態(tài)轉(zhuǎn)換,可以將原先的組合減少一半,提高約40%的效率,達(dá)到使其在不影響測試效果的基礎(chǔ)上,提升測試效率。

      6 結(jié)語

      本文提出的四個(gè)測試方法,目前已經(jīng)在幾個(gè)大型綜合化與模塊化系統(tǒng)軟件測試中運(yùn)用,經(jīng)實(shí)際項(xiàng)目應(yīng)用表明,完全采用上述四個(gè)測試方法可以從測試深入以及廣度上滿足高度綜合化以及模塊化系統(tǒng)軟件的測試充分性要求,通過測試充分暴露軟件隱藏的各類問題,大幅度減少這類系統(tǒng)軟件交付后實(shí)際工程使用中出現(xiàn)問題概率,特別減少控制邏輯、狀態(tài)切換以及系統(tǒng)內(nèi)部交互接口引起的問題,達(dá)到系統(tǒng)軟件測試目的以及提高其質(zhì)量。

      綜上所述,針對高度綜合化與模塊化系統(tǒng)軟件測試,采用“分級分層需求覆蓋”、“信號模擬仿真覆蓋”、“核心應(yīng)用邏輯覆蓋”以及“同時(shí)序等效狀態(tài)覆蓋”四類測試方法,可以保證系統(tǒng)軟件測試的完備性,提高工作效率,取得滿意的測試效果。如何高效開展應(yīng)用程序邏輯覆蓋和狀態(tài)等效切換覆蓋,可以作為下一步研究的方向。

      參考文獻(xiàn)

      [1]吳敏,常坤,李裕.基于功能分區(qū)的綜合通信導(dǎo)航識別系統(tǒng)設(shè)計(jì)[J].航空電子技術(shù),2013,44(2):4-9.

      [2]孫文杰.基于功能綜合的模塊化通信導(dǎo)航識別系統(tǒng)總體設(shè)計(jì)[J].電訊技術(shù),2016,56(1):67-70.

      [3]郭遠(yuǎn)東,黃榮瑛,陳友東,王田苗.基于模塊化設(shè)計(jì)的嵌入式軟件測試方法[J].單片機(jī)遇嵌入式系統(tǒng)應(yīng)用,2005,(01):17-20.

      [4]和欣,張曉林,韓松.開放式網(wǎng)絡(luò)化航空電子綜合CNI模塊化前端的系統(tǒng)設(shè)計(jì)[J].遙測遙控,2009,30(4):56-63.

      [5]張冬玲.基于工作流的場景測試建模方法研究.電子測試,2015,(16):76-78+68.

      Abstract:Lacking methods of software acceptance for highly integrated and modular systems, this paper analyzes the characteristics of this type of system and explores its adequacy of test based on the current test methods with project engineering experience. The article put forward four kinds of coverage methods about hierarchical layered demand coverage, signal simulation coverage, core application logic coverage and simultaneous sequential equivalent state coverage. The engineering experience shows that the above four coverage methods can be achieved, the adequacy of highly integrated and modular systems can be ensured, the test quality can be effectively improved and the hidden problems can be fully exposed.

      Key words:integration and modularization; software testing; logical coverage; sequential equivalence

      猜你喜歡
      軟件測試
      軟件測試方向人才培養(yǎng)“1+X”融合研究
      基于OBE的軟件測試課程教學(xué)改革探索
      航天軟件測試模型構(gòu)建與應(yīng)用
      軟件(2020年3期)2020-04-20 01:45:34
      基于MBD模型自動(dòng)生成測試用例的軟件測試方法
      計(jì)算機(jī)軟件測試方法的研究
      電子測試(2018年14期)2018-09-26 06:05:06
      EXCEL和VBA實(shí)現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      一種航空機(jī)載軟件測試項(xiàng)目的進(jìn)度改進(jìn)模型
      電子測試(2017年12期)2017-12-18 06:36:14
      軍用軟件測試文檔生成設(shè)計(jì)與實(shí)現(xiàn)
      電子測試(2017年12期)2017-12-18 06:35:35
      軟件測試工程化模型及應(yīng)用研究
      都匀市| 墨玉县| 凉山| 尼木县| 宁远县| 澄城县| 望都县| 潞西市| 巴林右旗| 县级市| 江川县| 内黄县| 绿春县| 榆树市| 平阴县| 姜堰市| 田阳县| 泾源县| 珠海市| 天全县| 华池县| 兰考县| 平湖市| 册亨县| 科技| 旬阳县| 房产| 南平市| 新邵县| 交城县| 武宣县| 新河县| 鹤庆县| 台东市| 吉水县| 桑日县| 沙湾县| 翁源县| 武鸣县| 礼泉县| 永昌县|