国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于數(shù)據(jù)源識別和驅(qū)動分析的軟件系統(tǒng)測試方法

2021-10-08 02:22:38張慧穎司倩然
計算機(jī)測量與控制 2021年9期
關(guān)鍵詞:測試用例數(shù)據(jù)源測試方法

魏 波,張慧穎,司倩然

(北京跟蹤與通信技術(shù)研究所,北京 100094)

0 引言

航天測控中心軟件系統(tǒng)主要部署于航天測控中心、測量船、二級指控中心等,完成對遙測數(shù)據(jù)、外測數(shù)據(jù)的接收、處理、顯示,對測控設(shè)備的引導(dǎo)控制,以及向航天器發(fā)送遙控指令等功能[1]?;镜暮教鞙y控軟件系統(tǒng)一般包括數(shù)據(jù)交換、匯集分發(fā)、遙測數(shù)據(jù)處理、外測數(shù)據(jù)處理、綜合數(shù)據(jù)處理、監(jiān)視顯示、安控輔助判決、遙控發(fā)令等軟件配置項。航天測控軟件系統(tǒng)具有架構(gòu)復(fù)雜、軟件配置項多、內(nèi)外接口復(fù)雜、實時性強(qiáng)、軟件安全關(guān)鍵等級高等顯著特點[2],對軟件測試提出了非常高的要求[3]。

軟件測試的目的是發(fā)現(xiàn)軟件錯誤,驗證其是否滿足研制任務(wù)書、軟件需求、軟件設(shè)計等規(guī)定的各項技術(shù)要求,并為軟件質(zhì)量評價提供依據(jù)[4]。依照測試級別來分,軟件研制過程中,會依次進(jìn)行軟件單元測試、軟件集成測試、軟件配置項測試、軟件系統(tǒng)測試等各個級別的測試,各級別的測試的關(guān)注點是不同的[5-6]。

軟件系統(tǒng)測試一般在真實的系統(tǒng)工作環(huán)境下進(jìn)行,重點檢查系統(tǒng)所屬配置項之間的接口、時序、邏輯關(guān)系等是否正確[7],重點考核各軟件配置項之間能否協(xié)調(diào)有序的正確工作[8],是否滿足軟件系統(tǒng)設(shè)計說明的要求。開展系統(tǒng)測試的前提是系統(tǒng)包含的軟件配置項都已經(jīng)通過了各自的配置項測試。

1 軟件系統(tǒng)測試的現(xiàn)狀和困境

當(dāng)前,相對于配置項測試,人們對系統(tǒng)測試的重視還不夠,在配置項測試完成后,存在不進(jìn)行正規(guī)的系統(tǒng)測試,直接以系統(tǒng)聯(lián)調(diào)代替系統(tǒng)測試的情況,導(dǎo)致在聯(lián)調(diào)中暴露出軟件系統(tǒng)的諸多問題,嚴(yán)重影響任務(wù)進(jìn)度。

根據(jù)軟件工程規(guī)范要求,系統(tǒng)測試的輸入是軟件系統(tǒng)設(shè)計說明。軟件系統(tǒng)設(shè)計說明中應(yīng)準(zhǔn)確分析、提取、描述軟件系統(tǒng)需求,包括功能、性能、外部接口、適應(yīng)性、安全性、操作、可靠性以及其他需求。但因人們對系統(tǒng)測試重視不夠,導(dǎo)致編寫的軟件系統(tǒng)設(shè)計說明往往不夠規(guī)范,關(guān)鍵內(nèi)容缺失。

依照載人航天工程軟件工程化技術(shù)標(biāo)準(zhǔn)的要求,軟件系統(tǒng)設(shè)計說明應(yīng)在系統(tǒng)分析與設(shè)計階段編寫,是后續(xù)編寫軟件配置項需求規(guī)格說明的依據(jù)。但有些時候,軟件系統(tǒng)設(shè)計說明往往與軟件配置項需求規(guī)格說明同步編寫,或晚于軟件配置項需求規(guī)格說明進(jìn)行補(bǔ)寫,系統(tǒng)級的需求往往成為了多個配置項需求的簡單羅列。

以上種種情況,導(dǎo)致第三方評測機(jī)構(gòu)在進(jìn)行系統(tǒng)測試需求分析和測試設(shè)計時,得到的軟件系統(tǒng)需求要么非常簡單,無法作為有效的系統(tǒng)測試依據(jù)進(jìn)行測試設(shè)計;要么是所有軟件配置項需求的簡單羅列,缺少系統(tǒng)級軟件需求等關(guān)鍵信息,如果測試人員依照這些需求進(jìn)行用例設(shè)計,就變成了系統(tǒng)所屬各軟件的配置項測試,無法體現(xiàn)系統(tǒng)測試的價值。

目前,對系統(tǒng)測試方法研究,大多集中于基于控制流[9]、基于場景[10-11]、基于數(shù)據(jù)流和控制流疊加[12]、基于業(yè)務(wù)流程[13]、基于操作概圖(Operational Profile)[14]和基于形式化模型(Formal Model)[15]等方面,雖然取得了較好的測試效果,但僅僅適合于指揮控制、金融、電子商務(wù)等基于工作流的軟件系統(tǒng)。

本文結(jié)合航天測控中心軟件系統(tǒng)特點,設(shè)計了一種基于數(shù)據(jù)源識別和數(shù)據(jù)驅(qū)動分析的軟件系統(tǒng)測試方法,能夠從軟件系統(tǒng)層面入手,快速梳理系統(tǒng)測試需求,提高系統(tǒng)測試用例設(shè)計針對性,進(jìn)而提高測試效率和測試有效性。

2 基于數(shù)據(jù)識別和驅(qū)動分析的軟件系統(tǒng)測試方法設(shè)計

航天測控中心軟件系統(tǒng)是一個典型的數(shù)據(jù)驅(qū)動型軟件系統(tǒng),具有數(shù)據(jù)輸入、處理和輸出的典型特征,其大部分功能均由數(shù)據(jù)觸發(fā),數(shù)據(jù)的類型和狀態(tài)決定了數(shù)據(jù)處理邏輯的不同分支。在具體編程實現(xiàn)上,各軟件基本采用多線程處理架構(gòu),數(shù)據(jù)接收線程通過輸入接口接收數(shù)據(jù),根據(jù)數(shù)據(jù)類型標(biāo)志放入不同的數(shù)據(jù)接收緩沖區(qū);處理線程從數(shù)據(jù)接收緩沖區(qū)中取出數(shù)據(jù),根據(jù)數(shù)據(jù)的要求,或進(jìn)行系統(tǒng)行為控制,或進(jìn)行數(shù)據(jù)處理并將處理結(jié)果放入數(shù)據(jù)發(fā)送緩沖區(qū);數(shù)據(jù)發(fā)送線程從數(shù)據(jù)發(fā)送緩沖區(qū)取出數(shù)據(jù),通過輸出接口向外發(fā)送數(shù)據(jù)。

本文針對數(shù)據(jù)驅(qū)動型軟件系統(tǒng)特點,設(shè)計了一種基于數(shù)據(jù)識別和驅(qū)動分析的軟件系統(tǒng)測試方法,通過對系統(tǒng)處理數(shù)據(jù)的測試全覆蓋,進(jìn)而覆蓋系統(tǒng)的絕大部分功能和性能,從而以較小的測試成本,最大程度的檢驗系統(tǒng)所屬軟件配置項之間的接口、時序、邏輯關(guān)系,達(dá)到系統(tǒng)級測試的目的。

基于數(shù)據(jù)識別和驅(qū)動分析的系統(tǒng)測試方法的關(guān)鍵技術(shù)包括數(shù)據(jù)源的識別、數(shù)據(jù)路徑分析、數(shù)據(jù)狀態(tài)分析、系統(tǒng)級數(shù)據(jù)順序圖繪制、系統(tǒng)測試用例設(shè)計等。該系統(tǒng)測試方法的一般工作流程如圖1所示。

圖1 基于數(shù)據(jù)源識別和驅(qū)動分析的系統(tǒng)測試方法工作流程圖

3 關(guān)鍵技術(shù)

3.1 數(shù)據(jù)源識別

本文規(guī)定,系統(tǒng)中被注入的或自主產(chǎn)生的一類數(shù)據(jù),稱為一個數(shù)據(jù)源。通過定義可知,數(shù)據(jù)源的類型有兩種,一種是外部數(shù)據(jù)源,即系統(tǒng)外部注入的數(shù)據(jù),典型的該類數(shù)據(jù)有遙測數(shù)據(jù)、雷達(dá)測量數(shù)據(jù)、光學(xué)測量數(shù)據(jù)等。另一種是內(nèi)部數(shù)據(jù)源,即系統(tǒng)在運行過程中,由操作人員操作控制產(chǎn)生,或由軟件系統(tǒng)自主產(chǎn)生的數(shù)據(jù),典型的該類數(shù)據(jù)包括遙控指令數(shù)據(jù)、綜合彈道、設(shè)備引導(dǎo)數(shù)據(jù)、系統(tǒng)狀態(tài)上報數(shù)據(jù)等。

識別數(shù)據(jù)源的方法主要包括3種。一是梳理軟件系統(tǒng)設(shè)計等文檔,通過系統(tǒng)外部接口中輸入接口的描述來識別外部數(shù)據(jù)源;二是梳理系統(tǒng)所含的各個軟件配置項的需求規(guī)格說明文檔,通過功能和接口的描述,識別系統(tǒng)內(nèi)部數(shù)據(jù)源。三是通過與操作員和系統(tǒng)總體人員的交互,并依靠測試分析人員的領(lǐng)域知識和測試經(jīng)驗來識別數(shù)據(jù)源。

需要說明的是,由于系統(tǒng)中數(shù)據(jù)傳遞路徑較長,雖然一個數(shù)據(jù)源在系統(tǒng)內(nèi)部流動時,格式或內(nèi)容發(fā)生了變化,但我們?nèi)匀欢x它為一個數(shù)據(jù)源,所發(fā)生變化的僅僅是該數(shù)據(jù)源的狀態(tài)。

識別數(shù)據(jù)源的關(guān)鍵在于不重復(fù)、不遺漏。我們將識別的數(shù)據(jù)源,以表格的形式表示出來,該表格包含數(shù)據(jù)源描述、數(shù)據(jù)源類型、數(shù)據(jù)發(fā)起方等字段。其中數(shù)據(jù)發(fā)起方可以是外部硬件設(shè)備或外部軟件系統(tǒng),也可以是軟件系統(tǒng)內(nèi)部的軟件配置項。在對某測控中心軟件系統(tǒng)進(jìn)行系統(tǒng)測試時,獲取的外部數(shù)據(jù)源如表1所示,獲取的內(nèi)部數(shù)據(jù)源表如表2所示。

表1 某測量船測控中心軟件系統(tǒng)外部數(shù)據(jù)源表

表2 某測量船中心軟件系統(tǒng)內(nèi)部數(shù)據(jù)源表

3.2 數(shù)據(jù)路徑分析和數(shù)據(jù)狀態(tài)分析

識別數(shù)據(jù)源后,下一步工作是數(shù)據(jù)路徑分析和數(shù)據(jù)狀態(tài)分析。數(shù)據(jù)路徑分析,是指分析數(shù)據(jù)源在系統(tǒng)內(nèi)部各配置項之間被處理、傳遞的路徑,分析的粒度應(yīng)達(dá)到配置項級別。數(shù)據(jù)狀態(tài)分析則是分析和確定數(shù)據(jù)在路徑中各個節(jié)點上的狀態(tài)。這兩個分析步驟關(guān)系緊密,且在時間上是交叉進(jìn)行的,在實際測試中,可以同時進(jìn)行路徑分析和狀態(tài)分析。

本文規(guī)定數(shù)據(jù)源首次從外部注入系統(tǒng)時,或首次在系統(tǒng)內(nèi)部產(chǎn)生時,其狀態(tài)為初始狀態(tài)。當(dāng)數(shù)據(jù)流出系統(tǒng),或者終止在系統(tǒng)內(nèi)部某個配置項時,其狀態(tài)為最終狀態(tài)。當(dāng)一個數(shù)據(jù)源在系統(tǒng)中流動時,必然會依照數(shù)據(jù)處理流程,依次途徑系統(tǒng)中多個軟件配置項,在每流經(jīng)一個軟件配置項后,數(shù)據(jù)的狀態(tài)一般會發(fā)生變化。

數(shù)據(jù)的狀態(tài)包括數(shù)據(jù)幀格式、頻率、存儲介質(zhì),以及幀內(nèi)各數(shù)據(jù)項的類型、字節(jié)長度、數(shù)值、單位、量綱等特性,上述特性均可以從系統(tǒng)的接口控制文件中獲得。數(shù)據(jù)狀態(tài)的變化,包括了數(shù)據(jù)幀的轉(zhuǎn)發(fā)、數(shù)據(jù)幀的格式變化、數(shù)據(jù)幀的分解和重組、數(shù)據(jù)量綱的變化、數(shù)據(jù)坐標(biāo)系的轉(zhuǎn)換、參數(shù)值的解算、數(shù)據(jù)融合處理等。數(shù)據(jù)狀態(tài)變化的正確與否,反映了系統(tǒng)功能的正確性。

針對每一個數(shù)據(jù)源,都要分析和記錄其數(shù)據(jù)路徑和狀態(tài)變化,分析要素見表3。

表3 數(shù)據(jù)路徑分析和狀態(tài)分析要素表

3.3 基于順序圖的系統(tǒng)數(shù)據(jù)流向圖

識別出全部數(shù)據(jù)源、并依照分析要素進(jìn)行路徑分析和狀態(tài)分析后,下一步要對分析結(jié)果進(jìn)行建模和呈現(xiàn)。當(dāng)前,研究人員對基于UML模型的系統(tǒng)測試方法進(jìn)行了一些研究,文獻(xiàn)[16]通過擴(kuò)展UML用例圖的方法導(dǎo)出系統(tǒng)測試用例,文獻(xiàn)[17]綜合利用UML活動圖和用例圖信息,通過擴(kuò)展活動圖的方法獲取系統(tǒng)測試信息,均取得了較好的效果。

本文設(shè)計了一種簡化的UML順序圖,對系統(tǒng)的數(shù)據(jù)流向圖進(jìn)行建模。UML順序圖的主要元素為參與者和事件消息等[19],主要用來幫助用戶準(zhǔn)確的為組成系統(tǒng)的各部分之間如何交互進(jìn)行建模[18]。本文設(shè)計的基于順序圖的數(shù)據(jù)流向圖,參與者為與該數(shù)據(jù)源有關(guān)的外部硬件設(shè)備、外部軟件系統(tǒng),以及系統(tǒng)內(nèi)部所屬軟件配置項,事件消息為具備一定狀態(tài)特征的數(shù)據(jù)。一個典型的飛船遙測數(shù)據(jù)源的數(shù)據(jù)流向圖如圖2所示。

圖2 飛船遙測數(shù)據(jù)源的系統(tǒng)數(shù)據(jù)流向圖

3.4 編寫軟件系統(tǒng)測試用例

設(shè)計系統(tǒng)測試用例,關(guān)鍵在于確定用例的測試輸入和期望結(jié)果。以下給出依照系統(tǒng)數(shù)據(jù)流向圖,確定測試輸入和期望結(jié)果的方法。

1)測試輸入:

系統(tǒng)測試用例的輸入,取決于數(shù)據(jù)源的初始狀態(tài),通過數(shù)據(jù)流向圖,可以得到數(shù)據(jù)源的初始狀態(tài)。在圖2中,數(shù)據(jù)源的初始狀態(tài)為注入至數(shù)據(jù)交換軟件配置項的原始遙測幀。

當(dāng)數(shù)據(jù)的初始狀態(tài)是外部注入時,測試用例的輸入是外部測量設(shè)備或者測試仿真程序產(chǎn)生的注入數(shù)據(jù);當(dāng)數(shù)據(jù)的初始狀態(tài)是由系統(tǒng)內(nèi)部產(chǎn)生時,測試用例的輸入就是操作員對系統(tǒng)的相關(guān)操作,或者軟件系統(tǒng)自主產(chǎn)生的數(shù)據(jù)。

2)期望結(jié)果:

系統(tǒng)測試用例的期望結(jié)果,包括3個基本要素。(1)確定系統(tǒng)測試檢查點,即在系統(tǒng)什么位置獲取數(shù)據(jù)狀態(tài);(2)通過什么方式獲取數(shù)據(jù)狀態(tài);(3)期望的數(shù)據(jù)狀態(tài)應(yīng)該是什么。

一般來說,數(shù)據(jù)的最終狀態(tài)表明系統(tǒng)功能將在該點完成,該點對測試人員而言往往是可見的,因此我們將數(shù)據(jù)最終狀態(tài)所處的軟件配置項設(shè)置為系統(tǒng)測試檢查點。通過查看該軟件配置項的顯示界面、數(shù)據(jù)文件、數(shù)據(jù)庫等方式,獲取數(shù)據(jù)的實際狀態(tài),并與接口控制文件中規(guī)定的期望狀態(tài)相比較,驗證系統(tǒng)功能是否正確。

圖2中,飛船遙測數(shù)據(jù)源的最終狀態(tài)有兩處,一處是數(shù)據(jù)存儲軟件配置項存儲的原始遙測幀,另一處是監(jiān)視顯示軟件配置項界面顯示的解算后遙測參數(shù)值,因此該測試用例將擁有兩個系統(tǒng)檢查點,在后續(xù)的用例設(shè)計中將至少對應(yīng)兩個測試步驟。

需要說明的是,數(shù)據(jù)的中間狀態(tài)對用戶來說則不一定是可見的,但如果測試中有必要,測試人員依舊可以通過網(wǎng)絡(luò)捕獲、查看日志、查看共享內(nèi)存的方法來設(shè)置系統(tǒng)檢查點。

3)編寫系統(tǒng)測試用例:

依照系統(tǒng)數(shù)據(jù)流向圖2,確定系統(tǒng)測試輸入和期望結(jié)果后,編寫的系統(tǒng)測試用例如表4所示。

表4 飛船遙測數(shù)據(jù)接收、處理和顯示測試用例

需要說明的是,表4測試用例是針對一個數(shù)據(jù)源編寫的。系統(tǒng)測試時,要按照系統(tǒng)真實使用場景,同時注入系統(tǒng)工作時的所有數(shù)據(jù)源,測試人員需要同時關(guān)注每個數(shù)據(jù)源的處理結(jié)果,以及有關(guān)聯(lián)關(guān)系的多個數(shù)據(jù)源的綜合處理結(jié)果。

4 實驗結(jié)果與分析

在某測控中心軟件系統(tǒng)測試中,對本文提出的系統(tǒng)測試方法進(jìn)行了驗證。用例設(shè)計階段,通過對數(shù)據(jù)源的識別,數(shù)據(jù)路徑和狀態(tài)分析,共設(shè)計測試用例91個,測試用例設(shè)計情況見表5。

表5 測試用例設(shè)計一覽表

表5中,因系統(tǒng)參試設(shè)備較多,且大多數(shù)設(shè)備產(chǎn)生多種數(shù)據(jù),共梳理出62個外部數(shù)據(jù)源。梳理內(nèi)部數(shù)據(jù)源19個,包括遙控數(shù)據(jù)、綜合彈道、設(shè)備引導(dǎo)數(shù)據(jù)、系統(tǒng)狀態(tài)上報數(shù)據(jù)、鏈監(jiān)信息等,遙控數(shù)據(jù)又細(xì)分為指令碼、執(zhí)行脈沖、指令序列等多個子類。綜合性測試用例則進(jìn)行多個數(shù)據(jù)源的組合,用于數(shù)據(jù)優(yōu)選功能、數(shù)據(jù)融合功能、性能和余量測試。

系統(tǒng)測試共發(fā)現(xiàn)軟件缺陷13處,軟件缺陷分布情況見表6。

表6 軟件缺陷分布一覽表

該系統(tǒng)是在原有系統(tǒng)基礎(chǔ)上進(jìn)行的國產(chǎn)化改造,大部分軟件為代碼移植,故13個軟件缺陷符合測試預(yù)期。其中軟件功能缺陷3個,說明軟件配置項測試比較充分,大部分軟件功能缺陷已在配置項測試中發(fā)現(xiàn)并解決。其余10個軟件缺陷為系統(tǒng)級缺陷,分布于系統(tǒng)內(nèi)外接口、軟件互操作和綜合試驗流程中,系統(tǒng)級缺陷數(shù)占比為76.92%。而系統(tǒng)所屬配置項間接口、時序、邏輯關(guān)系是否正確,能否協(xié)調(diào)有序工作,正是軟件系統(tǒng)測試應(yīng)重點關(guān)注的對象。

經(jīng)過本次系統(tǒng)測試,該系統(tǒng)一年內(nèi)運行穩(wěn)定,成功執(zhí)行多次試驗任務(wù)。實踐證明,本文提出的基于數(shù)據(jù)源識別和數(shù)據(jù)驅(qū)動分析的軟件系統(tǒng)測試方法,從系統(tǒng)所處理的數(shù)據(jù)入手,能夠快速、清晰提取測試需求,提高系統(tǒng)測試用例設(shè)計的針對性和有效性。

5 結(jié)束語

本文結(jié)合航天測控中心軟件系統(tǒng)的特點,設(shè)計了一種基于數(shù)據(jù)源識別和數(shù)據(jù)驅(qū)動分析的航天測控軟件系統(tǒng)測試方法,給出了該方法的一般工作流程,并對數(shù)據(jù)源的識別、數(shù)據(jù)路徑分析、數(shù)據(jù)狀態(tài)分析,系統(tǒng)數(shù)據(jù)流向圖繪制、系統(tǒng)測試用例編寫等關(guān)鍵技術(shù)進(jìn)行了研究。該方法是對傳統(tǒng)的基于需求的系統(tǒng)測試方法的有力補(bǔ)充,能夠顯著提高系統(tǒng)測試用例設(shè)計的針對性和有效性。該方法已經(jīng)在多個航天測控中心、測量船的軟件系統(tǒng)測試中得到應(yīng)用和驗證,結(jié)果表明,該方法能夠有效發(fā)現(xiàn)系統(tǒng)層面的軟件缺陷,提高系統(tǒng)測試效率。后續(xù),作者將針對該方法的測試充分性、測試數(shù)據(jù)和測試用例輔助生成[20]、數(shù)據(jù)驅(qū)動和業(yè)務(wù)驅(qū)動相結(jié)合的系統(tǒng)測試方法做進(jìn)一步的研究。

猜你喜歡
測試用例數(shù)據(jù)源測試方法
基于泊松對相關(guān)的偽隨機(jī)數(shù)發(fā)生器的統(tǒng)計測試方法
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
基于云計算的軟件自動化測試方法
電子制作(2019年16期)2019-09-27 09:34:56
DLD-100C型雷達(dá)測試方法和應(yīng)用
電子制作(2019年15期)2019-08-27 01:12:02
基于混合遺傳算法的回歸測試用例集最小化研究
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評價研究
對改良的三種最小抑菌濃度測試方法的探討
基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評價算法
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
洞口县| 铅山县| 巴青县| 南投市| 襄城县| 大田县| 山东| 宜都市| 南召县| 滦南县| 城口县| 黔西| 湘阴县| 酉阳| 鄂托克前旗| 教育| 永康市| 霍邱县| 韶山市| 万宁市| 大冶市| 德安县| 康平县| 石家庄市| 彰武县| 江华| 湛江市| 绩溪县| SHOW| 卫辉市| 汾阳市| 元江| 樟树市| 宣汉县| 正定县| 丹寨县| 安泽县| 东莞市| 遂平县| 莱阳市| 南投市|