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

        ?

        基于數(shù)據(jù)流需求模型的測試用例生成方法

        2023-11-21 14:12:42虞礪琨陳華南王小麗
        電子設(shè)計(jì)工程 2023年22期
        關(guān)鍵詞:控制流接收數(shù)據(jù)測試用例

        黃 晨,于 倩,虞礪琨,陳華南,王小麗

        (1.北京軒宇信息技術(shù)有限公司,北京 100190;2.北京控制工程研究所,北京 100190)

        航天嵌入式軟件功能算法復(fù)雜度高、涉及數(shù)據(jù)多,功能正確性與應(yīng)用場景、上下文緊密關(guān)聯(lián),傳統(tǒng)的需求分析方式難以清晰展示復(fù)雜功能邏輯、數(shù)據(jù)關(guān)聯(lián)關(guān)系,用例設(shè)計(jì)的質(zhì)量依賴于人員經(jīng)驗(yàn),存在大量重復(fù)性工作[1]?;谀P偷臏y試方法[2],依據(jù)需求規(guī)格說明建立測試模型,模型的語義和語法定義嚴(yán)格,抽象程度高,所生成的測試用例集來自于模型中的數(shù)據(jù)流、對(duì)象流、消息流等形成的路徑集合,具有輸入數(shù)據(jù)和預(yù)期輸出結(jié)果,可以滿足嵌入式軟件測試標(biāo)準(zhǔn)和要求[3-6]。當(dāng)前模型測試中的覆蓋準(zhǔn)則和方法主要圍繞模型結(jié)構(gòu)、路徑的覆蓋策略開展[6-7],與數(shù)據(jù)流相關(guān)的功能需求需要驗(yàn)證數(shù)據(jù)值與執(zhí)行邏輯的對(duì)應(yīng)關(guān)系及正確性。當(dāng)前針對(duì)數(shù)據(jù)流的測試基于程序的控制流圖CFG 開展,主要關(guān)注程序中變量的定義、使用之間的關(guān)聯(lián)[8]?;诔绦虼a的分析技術(shù)涉及大量表達(dá)式和變量,生成數(shù)據(jù)的消耗非常大,文獻(xiàn)引入了基于蟻群算法[9-11]、神經(jīng)網(wǎng)絡(luò)算法[12]、遺傳算法[13-14]等多種測試數(shù)據(jù)生成方法來提升數(shù)據(jù)生成效率。

        文中從星載嵌入式軟件數(shù)據(jù)特性出發(fā),選取活動(dòng)圖模型作為需求建模語言,對(duì)比控制流、數(shù)據(jù)流對(duì)象的語義模型,說明適用功能場景、用例數(shù)據(jù)上的差異性,針對(duì)數(shù)據(jù)流對(duì)象需求模型,提出了一種基于路徑數(shù)據(jù)覆蓋的測試數(shù)據(jù)生成方法,并選取一個(gè)典型功能模型驗(yàn)證方法的有效性。

        1 需求模型及用例設(shè)計(jì)

        1.1 模型及圖元語義

        系統(tǒng)建模語言(Systems Modeling Language,SysML)是標(biāo)準(zhǔn)的面向?qū)ο蟮慕UZ言,使用活動(dòng)圖、狀態(tài)機(jī)圖、序列圖著重表現(xiàn)系統(tǒng)的動(dòng)態(tài)行為[15-16]?;顒?dòng)圖圖元有活動(dòng)節(jié)點(diǎn)和活動(dòng)邊,使用活動(dòng)節(jié)點(diǎn)和活動(dòng)邊對(duì)操作之間的流對(duì)象進(jìn)行建模,既能夠表示控制流,也能夠表示對(duì)象流。

        控制流用虛線表示,用于對(duì)一個(gè)節(jié)點(diǎn)流向另一個(gè)節(jié)點(diǎn)的情況進(jìn)行建模。當(dāng)一個(gè)動(dòng)作或活動(dòng)節(jié)點(diǎn)結(jié)束執(zhí)行時(shí),控制流將馬上傳遞到下一個(gè)動(dòng)作或者活動(dòng)節(jié)點(diǎn),類似于控制流程,對(duì)象是前一個(gè)活動(dòng)的輸出,后一個(gè)活動(dòng)的輸入??刂屏鲝?qiáng)調(diào)軟件執(zhí)行一串活動(dòng)、動(dòng)作的過程情況,控制流對(duì)象是軟件的活動(dòng)、動(dòng)作。

        對(duì)象流用實(shí)線表示,包括數(shù)據(jù)流和信號(hào)流兩種。數(shù)據(jù)流的對(duì)象是一個(gè)活動(dòng)的輸入或輸出,表示一種數(shù)據(jù)流關(guān)系。信號(hào)流將一個(gè)信號(hào)發(fā)送、信號(hào)接收與一個(gè)對(duì)象相連接,表示向該對(duì)象發(fā)送、該對(duì)象接收一個(gè)信號(hào)。數(shù)據(jù)流強(qiáng)調(diào)數(shù)據(jù)從一個(gè)活動(dòng)、動(dòng)作流向下一個(gè)活動(dòng)、動(dòng)作的數(shù)據(jù)變化,數(shù)據(jù)流對(duì)象是軟件活動(dòng)、動(dòng)作所產(chǎn)生的數(shù)據(jù)。

        1.2 典型模型及應(yīng)用場景

        以指令接收功能為例,如圖1 和圖2 所示,具體說明控制流、數(shù)據(jù)流對(duì)象模型的差異性、功能場景適用性。

        圖1 控制流模型

        圖2 數(shù)據(jù)流模型

        圖1 表示軟件接收到數(shù)據(jù)指令后的一系列動(dòng)作、行為。軟件從接收到啟動(dòng)接收指令后,開始接收數(shù)據(jù)。如果數(shù)據(jù)接收完成或者接收數(shù)據(jù)超時(shí),則處理接收到數(shù)據(jù);如果接收數(shù)據(jù)未完成,則繼續(xù)接收數(shù)據(jù)??刂屏髂P椭薪?jīng)常會(huì)出現(xiàn)環(huán)路。

        圖2 表示對(duì)接收到數(shù)據(jù)進(jìn)行校驗(yàn)和處理。軟件對(duì)接收到的數(shù)據(jù)進(jìn)行校驗(yàn),如果校驗(yàn)和正確,則組包正確應(yīng)答數(shù)據(jù)包;如果校驗(yàn)和錯(cuò)誤,則組包錯(cuò)誤應(yīng)答數(shù)據(jù)包。應(yīng)答包組包完成后,發(fā)送該數(shù)據(jù)包。

        采用等價(jià)類劃分的方法對(duì)上述控制流和數(shù)據(jù)流模型開展用例設(shè)計(jì)。圖1 的控制流模型測試用例有三個(gè):

        用例1,對(duì)應(yīng)路徑(1)-(2)-(3)-(4)-(6)-(7)。輸入:a.接收到啟動(dòng)接收指令;b.接收數(shù)據(jù)正常。預(yù)期結(jié)果:輸出接收數(shù)據(jù)狀態(tài)為“接收數(shù)據(jù)完成”。

        用例2,對(duì)應(yīng)路徑(1)-(2)-(3)-(4)-(5)-(3)-(4)-(6)-(7)。輸入:a.接收到啟動(dòng)接收指令;b.接收數(shù)據(jù)超時(shí)(數(shù)據(jù)包長度字段大于實(shí)際接收到數(shù)據(jù)包字節(jié)數(shù))。預(yù)期結(jié)果:輸出接收數(shù)據(jù)狀態(tài)為“接收數(shù)據(jù)超時(shí)”。

        用例3,對(duì)應(yīng)路徑(1)-(2)-(3)-(4)-(5)-(3)-(4)-(6)-(7)。輸入:a.接收到啟動(dòng)接收指令;b.接收數(shù)據(jù)超時(shí)(接收數(shù)據(jù)過程中,暫停一段時(shí)間,繼續(xù)接收數(shù)據(jù))。預(yù)期結(jié)果:輸出接收數(shù)據(jù)狀態(tài)為“接收數(shù)據(jù)超時(shí)”。

        用例2 和用例3 具有相同的測試路徑,均存在環(huán)路(3)-(4)-(5)-(3)-(4),但是步驟b 的測試場景(輸入數(shù)據(jù))有所不同。

        圖2 的數(shù)據(jù)流模型測試用例有兩個(gè):

        用例1,對(duì)應(yīng)路徑(1)-(2)-(3)-(6)。輸入:接收到校驗(yàn)和正確的串口數(shù)據(jù)。預(yù)期結(jié)果:輸出“正確應(yīng)答數(shù)據(jù)包”。

        用例2,對(duì)應(yīng)路徑(1)-(4)-(5)-(6)。輸入:接收到校驗(yàn)和錯(cuò)誤的串口數(shù)據(jù)。預(yù)期結(jié)果:輸出“錯(cuò)誤應(yīng)答數(shù)據(jù)包”。

        采用控制流建立模型時(shí),重點(diǎn)關(guān)注測試需求設(shè)計(jì)中來自于外部事件觸發(fā)的執(zhí)行動(dòng)作、邏輯是否正確。針對(duì)動(dòng)作執(zhí)行序列、狀態(tài)轉(zhuǎn)換過程等功能,一般建立控制流模型。

        采用數(shù)據(jù)流建立模型時(shí),重點(diǎn)關(guān)注數(shù)據(jù)值對(duì)執(zhí)行邏輯的影響。針對(duì)數(shù)值計(jì)算、數(shù)據(jù)采集與轉(zhuǎn)換等關(guān)注于數(shù)據(jù)處理的功能,一般建立數(shù)據(jù)流模型。

        2 用例數(shù)據(jù)生成

        針對(duì)數(shù)據(jù)流模型,測試用例的覆蓋性和充分性決定于測試輸入數(shù)據(jù)能否有效覆蓋模型中的全部有效路徑。

        根據(jù)數(shù)據(jù)流模型中圖元的語義,對(duì)模型結(jié)構(gòu)進(jìn)行解析,將其轉(zhuǎn)換為有向圖,計(jì)算可執(zhí)行路徑;根據(jù)路徑上變量類型和輸入域、輸出域范圍、表達(dá)式類型及測試覆蓋要求,求解表達(dá)式中變量數(shù)據(jù)值,作為測試用例的數(shù)據(jù)。數(shù)據(jù)流模型計(jì)算轉(zhuǎn)換過程如圖3 所示。

        圖3 計(jì)算轉(zhuǎn)換過程

        2.1 數(shù)據(jù)流模型

        根據(jù)需求模型中數(shù)據(jù)對(duì)象的變化過程進(jìn)行建模,判定節(jié)點(diǎn)上為判定表達(dá)式,動(dòng)作節(jié)點(diǎn)上為賦值表達(dá)式。

        2.2 模型結(jié)構(gòu)解析與計(jì)算

        根據(jù)模型圖元及屬性對(duì)結(jié)構(gòu)進(jìn)行解析,建立數(shù)據(jù)流模型中圖元與有向圖的映射關(guān)系,活動(dòng)、動(dòng)作節(jié)點(diǎn)對(duì)應(yīng)有向圖的節(jié)點(diǎn),數(shù)據(jù)流對(duì)應(yīng)有向圖的邊,確定有向圖的初始節(jié)點(diǎn)、終止節(jié)點(diǎn)等基本屬性。采用深度優(yōu)先搜索遍歷有向圖,考慮節(jié)點(diǎn)是否有父節(jié)點(diǎn)、是否有子節(jié)點(diǎn)、父節(jié)點(diǎn)名稱、相鄰節(jié)點(diǎn)、是否遍歷終止節(jié)點(diǎn)等情況,計(jì)算得到可執(zhí)行路徑的集合。

        2.3 數(shù)據(jù)表達(dá)式求解

        2.3.1 變量基本屬性

        模型中涉及的所有變量都需要進(jìn)行基本屬性定義,基本屬性有變量名、輸入/輸出、變量類型(靜態(tài)、動(dòng)態(tài))、數(shù)據(jù)類型(整形、單精度浮點(diǎn)型、雙精度浮點(diǎn)、結(jié)構(gòu)體等)、有效范圍、離散/連續(xù)、步長、初值。

        對(duì)于模型變量類型,靜態(tài)變量表示初值可觀,數(shù)值來自于外部設(shè)定;動(dòng)態(tài)變量表示初值無法直接觀測,數(shù)值由模型中表達(dá)式求解所得。

        2.3.2 表達(dá)式類型及測試覆蓋要求

        將模型中的表達(dá)式分為兩種類型和四種子類型。類型有判定表達(dá)式和賦值表達(dá)式;子類型有邏輯表達(dá)式、關(guān)系表達(dá)式、條件表達(dá)式、算術(shù)表達(dá)式。表達(dá)式子類型不同,生成數(shù)據(jù)的覆蓋要求不同,要求如圖4 所示。

        圖4 表達(dá)式類型及數(shù)據(jù)覆蓋要求

        數(shù)據(jù)覆蓋要求如下:

        1)等價(jià)類數(shù)據(jù):有效等價(jià)類數(shù)據(jù)為有效取值范圍內(nèi)的典型或者任意數(shù)據(jù);無效等價(jià)類數(shù)據(jù)為有效取值范圍外的典型或者任意數(shù)據(jù)。

        2)邊界值數(shù)據(jù):高端邊界值考慮有效取值范圍內(nèi)等于邊界值,稍小于邊界值,有效取值范圍外稍大于邊界值;低端邊界值考慮有效取值范圍內(nèi)等于邊界值,稍小于邊界值,有效取值范圍外稍大于邊界值。

        3)修正條件判定數(shù)據(jù):數(shù)據(jù)集合應(yīng)滿足每個(gè)輸入輸出至少出現(xiàn)一次,每一個(gè)判定中的每一個(gè)條件必須能夠獨(dú)立影響一個(gè)判定的輸出,即在其他條件不變的前提下僅改變這個(gè)條件的值,而使判定結(jié)果改變的數(shù)據(jù)。4)初始數(shù)據(jù):算術(shù)表達(dá)式變量的初始值。5)指定數(shù)據(jù):算術(shù)表達(dá)式的指定數(shù)據(jù)值。

        2.3.3 表達(dá)式求解

        建立路徑上表達(dá)式組的集合,依據(jù)每類表達(dá)式所需滿足的數(shù)據(jù)覆蓋要求求解表達(dá)式組。算法實(shí)現(xiàn)過程如圖5 所示。

        圖5 表達(dá)式組求解過程

        2.4 用例數(shù)據(jù)

        根據(jù)測試用例設(shè)計(jì)要求對(duì)測試數(shù)據(jù)進(jìn)行分組,形成測試用例集。確定某個(gè)或多個(gè)靜態(tài)變量的數(shù)值變化規(guī)律作為用例前提條件,測試用例可包括多個(gè)步驟,每個(gè)步驟包括輸入數(shù)據(jù)和輸出數(shù)據(jù),一個(gè)用例中多個(gè)步驟之間的輸入數(shù)據(jù)值應(yīng)有所不同。

        3 實(shí)例驗(yàn)證

        選取星載嵌入式軟件某數(shù)據(jù)處理功能建立數(shù)據(jù)流對(duì)象模型,該功能屬于算法類功能,模型中涉及多個(gè)輸入數(shù)據(jù)排列組合的表達(dá)式,設(shè)計(jì)測試用例時(shí)考慮輸入數(shù)據(jù)的覆蓋情況。

        依據(jù)輸入文件,建立活動(dòng)圖數(shù)據(jù)流模型作為功能需求模型,生成滿足路徑和數(shù)據(jù)覆蓋的測試用例集。功能需求模型如圖6 所示。

        圖6 數(shù)據(jù)處理功能模型

        1)變量定義

        根據(jù)變量基本屬性對(duì)圖6 中的模型變量進(jìn)行定義,共定義九個(gè)變量:

        ①In_A[N]、In_B[N]、In_C[N]:輸入,靜態(tài),整型,有效范圍0/1,離散,步長無,初值無;

        ②t_Cal[N]、t_P[N]:輸入,動(dòng)態(tài),整型,有效范圍0/1,離散,步長無,初值無;

        ③N:輸入,靜態(tài),整型,有效范圍6,離散,步長無,初值無;

        ④i:輸入,靜態(tài),整型,有效范圍0~N-1,離散,步長1,初值0;

        ⑤num:輸入,靜態(tài),整型,有效范圍3,離散,步長無,初值3;

        ⑥g_Flag:輸出,靜態(tài),整型,有效范圍0/1,離散,步長無,初值無。

        2)變量操作說明

        FOR 表示依次遍歷某個(gè)變量中指定范圍的數(shù)據(jù);SUM 表示計(jì)算指定范圍內(nèi)數(shù)值的和。

        3)生成路徑集合

        對(duì)需求模型進(jìn)行解析,圖5 中的數(shù)據(jù)流用編號(hào)進(jìn)行標(biāo)識(shí),生成全部路徑六條,可執(zhí)行路徑三條,刪除不可執(zhí)行三條路徑。路徑集合為:①路徑1:(1)-(2)-(3)-(5)-(6)-(8)-(9),可執(zhí)行;②路徑2:(1)-(2)-(3)-(5)-(7)-(8)-(9),可執(zhí)行;③路徑3:(1)-(2)-(4)-(8)-(10),可執(zhí)行;④路徑4:(1)-(2)-(3)-(5)-(6)-(8)-(10),不可執(zhí)行;⑤路徑5:(1)-(2)-(3)-(5)-(7)-(8)-(10),不可執(zhí)行;⑥路徑6:(1)-(2)-(4)-(8)-(9),不可執(zhí)行。

        4)生成表達(dá)式組集合

        根據(jù)表達(dá)式類型建立每條路徑上的表達(dá)式組集合,求解生成表達(dá)組的輸入數(shù)據(jù)集合,在三條可執(zhí)行路徑上共生成六組表達(dá)式集合,選取可執(zhí)行路徑1和3 上表達(dá)式組進(jìn)行說明,如圖7 所示。

        圖7 表達(dá)式組示例

        5)測試用例集生成

        ①路徑1(1)-(2)-(3)-(5)-(6)-(8)-(9)表達(dá)式組

        當(dāng)In_A 有且僅有四個(gè)1 時(shí),生成15 組數(shù)據(jù);當(dāng)In_A 有且僅有五個(gè)1 時(shí),生成6 組數(shù)據(jù);當(dāng)In_A 有且僅有六個(gè)1 時(shí),生成1 組數(shù)據(jù)。

        滿足等價(jià)類數(shù)據(jù)覆蓋要求,形成三個(gè)測試用例,具體如表1-3 所示。測試用例1 考慮當(dāng)In_A 有且僅有四個(gè)1 的情況;測試用例2 考慮當(dāng)In_A 有且僅有五個(gè)1 的情況;測試用例3 考慮當(dāng)In_A 有且僅有六個(gè)1 的情況。

        表1 測試用例1

        表2 測試用例2

        表3 測試用例3

        ③路徑3(1)-(2)-(4)-(8)-(10)表達(dá)式組

        在In_A有且僅有兩個(gè)1,In_B、In_C輸入值有解情況下,生成15 組數(shù)據(jù);在In_A 有且僅有一個(gè)1,In_B、In_C 輸入值有解的情況下,生成六組數(shù)據(jù);在In_A 全0,In_B、In_C 輸入值有解的情況下,生成一組數(shù)據(jù)。

        滿足等價(jià)類數(shù)據(jù)覆蓋要求,形成三個(gè)測試用例。

        4 結(jié)論

        文中選取活動(dòng)圖模型作為需求建模語言,活動(dòng)圖中控制流和數(shù)據(jù)流對(duì)象在適用功能場景、用例數(shù)據(jù)方面具有差異,控制流強(qiáng)調(diào)軟件執(zhí)行一串活動(dòng)、動(dòng)作的過程情況;數(shù)據(jù)流強(qiáng)調(diào)從一個(gè)活動(dòng)、動(dòng)作流向下一個(gè)活動(dòng)、動(dòng)作的數(shù)據(jù)變化。建立數(shù)據(jù)流對(duì)象模型,設(shè)定變量類型、有效范圍等基本屬性,對(duì)模型解析后得到可執(zhí)行路徑及表達(dá)式組,可求解生成滿足測試覆蓋要求的數(shù)據(jù)及測試用例集,這種方法將測試重點(diǎn)放在測試需求分析及建模上,既能有效縮短用例設(shè)計(jì)時(shí)間又同時(shí)保證生成測試用例的充分性,大幅提升測試效率。

        基于模型的自動(dòng)化測試方法,在提升需求分析能力的同時(shí)保證測試充分性,后續(xù)結(jié)合領(lǐng)域軟件特征及用例設(shè)計(jì)要求,繼續(xù)研究典型需求建模方法,推進(jìn)模型測試在航天領(lǐng)域的工程化應(yīng)用。

        猜你喜歡
        控制流接收數(shù)據(jù)測試用例
        沖激噪聲背景下基于幅度預(yù)處理的測向新方法*
        抵御控制流分析的Python 程序混淆算法
        工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
        電子科技(2021年2期)2021-01-08 02:25:58
        抵御控制流分析的程序混淆算法
        基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
        低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
        基于混合遺傳算法的回歸測試用例集最小化研究
        單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
        基于依賴結(jié)構(gòu)的測試用例優(yōu)先級(jí)技術(shù)
        基于控制流隱藏的代碼迷惑
        81久久免费精品国产色夜| 亚洲熟妇无码av在线播放| 51看片免费视频在观看| 伊人色综合视频一区二区三区| 无码午夜剧场| 一级做a爱视频在线播放| 国产成人精品一区二区不卡| 久久精品免费一区二区喷潮| 久久精品99久久香蕉国产| 色妺妺在线视频| 久久精品综合国产二区| 亚洲一区二区三区精品久久av| 蜜桃视频免费进入观看| 天堂新版在线资源| 四虎国产精品永久在线无码| 丰满少妇人妻无码超清 | 免费人成视频网站网址| 久久久精品一区aaa片| 亚洲综合无码一区二区三区| 国产日产亚洲系列av| 男女啪啪啪的高清视频| 一 级做人爱全视频在线看| 国产精品v欧美精品v日韩精品| 亚洲动漫成人一区二区| 日本精品熟妇一区二区三区 | 少妇人妻大乳在线视频不卡 | 午夜男女很黄的视频| 日韩精品无码一区二区中文字幕| 中国免费av网| 精品女厕偷拍视频一区二区区| 亚洲国产精品日本无码网站| 国产精品老熟女露脸视频| 最新国产成人在线网站| 亚洲av色香蕉一区二区三区软件| 色中文字幕在线观看视频| 99久久久无码国产精品6| 欧美中文字幕在线看| 亚洲av日韩av天堂久久不卡 | 国产一精品一av一免费爽爽| 国产成人亚洲精品无码mp4| 在线av野外国语对白|