999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于模型的聯鎖軟件測試用例生成方法

2022-12-01 07:03:42彭麗維宋鵬飛江雪瑩
鐵路通信信號工程技術 2022年11期
關鍵詞:模型

彭麗維,宋鵬飛,江雪瑩,謝 林

(1.卡斯柯信號(成都)有限公司,成都 610083;2.卡斯柯信號有限公司,上海 200071)

隨著科技飛速發展,軌道交通等領域軟件的復雜性和規模性越來越高,保證這些軟件的可靠性和安全性有重要意義。軟件測試是保證軟件質量的重要環節和依據[1],然而,軟件測試工作是一項費時費力的活動,軟件測試成本日益增加。因此,如何高效、正確、快速地對軟件進行測試逐漸成為研究的主流方向。

文獻[2]著重介紹了分塊劃分的原理,分析節點和分區兩種類型的模塊結構,將所有的代碼分成若干個模塊,分別在測試引擎中編譯鏈接每個模塊,并將結果存儲在臨時數據庫中。測試引擎將自動測試模塊和額外的可執行程序結合起來,使得測試工具可以根據新的測試需求和不同的測試標準來實時進行測試。利用上述原理設計了計算機輔助軟件測試工具。文獻[3]將軟件的檢驗和驗證(V&V)與商業計算機輔助軟件工具(CASE)結合,在實時的硬件環境下循環測試,相比于傳統的CASE,在軟件測試方面增加了Matlab需求仿真工具箱、逆向工程工具箱、生成單元測試程序工具箱和在線幫助以及信息輔助控制,實例證明在很大程度上減少了測試所需時間和物力。

楊波等從軟件的需求分析出發提出了基于需求建模的測試用例生成方法,從軟件開發的需求階段著手,利用UML建立需求元模型,再從元模型中提取出測試特征元模型,采用OCL約束對模型進行驗證,生成抽象測試用例[4]。

上述方案中在一定程度上提高了測試效率,但是僅針對某一種具體應用的聯鎖軟件,測試模型通用性不強,仍需要大量地人工編寫測試用例。

1 總體框架

為解決上述問題,本文提出一種通用聯鎖軟件測試用例的生成方法,如圖1所示,從狀態信息表生成、狀態信息處理、測試用例生成3個階段來展開研究。根據計算機聯鎖技術條件羅列出每個階段的所有狀態及狀態之間的轉換條件和轉換關系,利用這些狀態和關系生成若干四元組合,形成聯鎖狀態轉換模型的樹形網狀結果,最后通過解析該樹形網狀結果來生成測試用例。

圖1 總體框架Fig.1 General framework

2 狀態信息表生成階段

狀態信息表生成階段是指根據計算機聯鎖技術條件中描述的進路建立、進路鎖閉、信號開放、進路解鎖、聯鎖結合功能和聯鎖接口功能各個階段所需的聯鎖條件,列出每個階段所有的狀態及狀態之間轉換的條件,利用聯鎖自動化工具將這些狀態和狀態之間的轉換條件輸出到狀態信息表中。

其中狀態信息表中包括所有狀態的名稱、初始狀態和結束狀態,以及每個狀態下可執行的操作、操作對應的結果狀態和操作對應的聯鎖條件。

針對每個階段包含若干狀態,在信息表中需要指定初始狀態、結束狀態和操作對應的結果狀態,其中初始狀態和結束狀態是指從每個階段羅列出的所有狀態中,指定一個初始狀態作為后續搜索的起點和若干結束狀態作為后續搜索的結束條件[5]。

在狀態信息表中,每個狀態還需包含可執行的操作和操作對應的結果狀態,這些操作和結果是通用聯鎖軟件根據先驗閾值設定的適用于所有類型車站的通用判斷條件和操作,再結合具體站場的實際聯鎖邏輯變為具體的值來進行使用,其中操作對應的轉化條件和狀態下可執行的操作是一個適用于所有站型的通用條件判斷和操作,需要結合具體車站數據,將通用條件判斷和操作描述用實際的站場元素來替代[6]。

3 狀態信息處理階段

狀態信息處理階段是指根據狀態信息表提供的狀態轉換名稱、結束狀態、初始化狀態及狀態下可執行的操作及該操作對應的結果狀態,得到聯鎖狀態轉換模型,過程如下。

本階段劃分為2個模塊,分別為:狀態及條件信息組合模塊、聯鎖狀態轉換模塊,各模塊詳細處理分為以下若干步。

1)狀態及條件信息組合模塊,用3個子模塊Module1-1,Module1-2,Module1-3來表示。

Module1-1:將狀態信息表中描述的初始狀態作為入口點狀態,識別該狀態下可執行的所有操作,并找到操作對應的狀態結果,操作對應的轉化條件,針對每一個操作生成一個入口四元組合:“入口點狀態”“轉換條件”“可執行的操作”“結果狀態”。

“結果狀態”可能包含多個,這里將所有的結果狀態用“結果狀態1”“結果狀態2”……“結果狀態n”來描述。

Module1-2:每一個結果狀態下也包括若干個可執行的操作,重復Module1的操作,針對每一個結果狀態下的每個操作生成一個執行四元組合:結果狀態1、轉換條件、結果狀態2,循環執行Module1-2,最終生成若干個執行四元組合:結果狀態n-1、轉換條件、結果狀態n。

Module1-3:將狀態信息表中描述的結束狀態作為出口點狀態,識別所有能轉換到該狀態下的操作對應的狀態及轉化條件,針對每一個操作生成一個出口四元組合:“結果狀態”“轉換條件”“可執行的操作”“出口點狀態”。

2)聯鎖狀態轉換模塊,將1)描述的所有四元組合拼接起來,形成一棵以入口點狀態為起點,出口點狀態為結束點的中間連接若干結果狀態,并帶有轉換條件和可執行操作的樹形網狀結構。如圖2所示,具體步驟如下[7]。

圖2 樹形網狀結構生成邏輯Fig.2 Tree network structure generation logic

定義任意一個四元組合中,第一個狀態為源狀態,第三個狀態為目標狀態。

S1:尋找所有包含入口點狀態的四元組合,確定目標狀態和源狀態,每一個四元組合循環執行以下搜索。

S2:以S1步驟中找到的每一個四元組合的目標狀態為搜索起點,在所有四元組合中搜索以該目標狀態為源狀態的所有四元組合,并記錄四元組合中的轉換條件和可執行操作。

S3:若S2中搜索到的四元組合中的目標狀態包含結果狀態或者目標狀態或者源狀態在前一次的搜索結果中出現,則以該四元組合的目標狀態為源狀態的搜索結束,將本次搜索的內容組合起來形成一個分支。

S4:若S3搜索未結束,取下一個四元組合繼續S2步搜索,直到所有三元S1中描述的所有四元組合搜索完成。

S5:S4執行完成后,將S3中組合起來的若干分支合并,形成一棵以入口點狀態為起點,出口點狀態為結束點的中間連接若干結果狀態,并帶有轉換條件和可執行操作的樹形網狀結構[8]。

4 生成測試用例

測試用例生成階段是指解析狀態信息處理階段得到的樹形網狀結構,生成抽象的測試用例,根據抽象測試用例中的每個四元組合的源狀態、轉換條件、可執行操作和目標狀態,注入實際車站數據,生成實例化的測試用例。

4.1 抽象測試用例生成

在得到具體的測試用例前,必須要有符合邏輯的狀態轉換過程作為對應的輸出,因此必須要生成抽象的測試用例。

抽象測試用例生成過程中不考慮遷移的條件,只考慮所有的狀態轉化過程。采用狀態覆蓋準則生成的用例會遺漏很多過程,嚴重影響測試質量,為了保證測試用例的完備性,必須要能夠覆蓋到所有遷移條件。在遷移覆蓋準則的前提下,設計深度優先搜索算法,解析聯鎖狀態轉換模型得到的樹形結構。

1)以樹形結構中每個四元組合的入口點狀態為起點,取出每個入口點包含的所有分支;

2)解析每條分支中包含的n個四元組合,其中第一個四元組合的源狀態必須是入口點狀態,第二個四元組合源狀態為第一個四元組合的目標狀態,第三個四元組合源狀態為第二個四元組合的目標狀態,依次類推,第n個四元組合的源狀態為第n-1個四元組合的目標狀態,第n個四元組合的目標狀態為出口點狀態或者第1個到第n-1個四元組合中出現過的目標狀態或者源狀態;

3)將步驟2)中每條分支得到的所有狀態按四元組合出現的順序組合在一起,構成一條抽象測試用例[9]。

4.2 實例化用例生成

根據JAVA語言提供的反射機制,動態調用類中的函數和方法,結合模型的建立情況,為模型中的每個模板建立一個類。該類中包含模型中所有遷移涉及到的方法,每個方法有關的輸入通過該方法返回,以便在對模型解析時能夠得到具體的輸入,具體過程如下:

1)取4.1中得到的抽象測試用例,取出抽象用例得到所有狀態信息,并結合樹形結構,獲取狀態之間的聯鎖條件及可執行的操作;

2)利用JAVA反射機制解析步驟1)中抽象用例的聯鎖條件和可執行操作,注入實際車站數據,將適用于所有站的轉換條件和可執行操作以實際站的數據中描述的元素來替代;

3)將步驟2)中解析好的聯鎖條件和可執行操作按步驟1)中取出的抽象測試用例中的四元組合順序條件到抽象用例的源狀態和目標狀態之間,構成一條可執行的實例化的測試用例;

4)每個抽象案例對應軟件的一個測試用例,解析所有的抽象測試用例,最終生成軟件所有的測試用例[10]。

5 結論

安全軟件潛在的危險性對系統可靠性有很大影響,本文提出了一種基于模型的聯鎖軟件測試用例生成方法。以鐵路信號系統中的安全軟件計算機聯鎖系統部分設計過程為實例,根據軟件的需求規范和可能影響軟件安全的環境因素著手,建立聯鎖安全軟件的狀態機模型,來生成測試用例,在一定程度上提高了軟件測試的可靠性,將傳統測試軟件的方法由黑盒測試逐步轉化為白盒測試,有效地避免了由于軟件的保密性而造成軟件內部運行程序的不可靠性引起測試不全面的問題。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 亚洲人成在线精品| 无码中文字幕乱码免费2| 亚洲精品国产乱码不卡| 免费jizz在线播放| 国产在线精品99一区不卡| 亚洲 欧美 偷自乱 图片| 午夜精品一区二区蜜桃| 这里只有精品在线播放| 91久久偷偷做嫩草影院| 97无码免费人妻超级碰碰碰| 青青青草国产| 国产精品成人久久| 亚洲日韩精品欧美中文字幕| 欧美日本激情| 欧美视频在线观看第一页| 东京热一区二区三区无码视频| 无码免费的亚洲视频| 婷婷六月激情综合一区| 国产一区免费在线观看| 国产在线观看91精品亚瑟| 日韩高清成人| 69国产精品视频免费| 高清视频一区| 91高清在线视频| 国产麻豆va精品视频| 色妞永久免费视频| 久热这里只有精品6| 日韩欧美视频第一区在线观看| 91精品视频播放| 二级毛片免费观看全程| 国产在线拍偷自揄观看视频网站| 日韩精品成人在线| 青青操国产| 久久久久中文字幕精品视频| 国产1区2区在线观看| 亚洲中文久久精品无玛| 国产高清在线观看91精品| 在线免费不卡视频| 亚洲成a人片| 国产人免费人成免费视频| 国产精品19p| 亚洲Av激情网五月天| 国产成人精品一区二区秒拍1o| 91久久偷偷做嫩草影院电| 精品三级网站| 天天操天天噜| 日韩天堂视频| 成人年鲁鲁在线观看视频| 人人澡人人爽欧美一区| 蜜桃臀无码内射一区二区三区| 中文字幕66页| 久久99国产综合精品1| 97在线观看视频免费| 777午夜精品电影免费看| 茄子视频毛片免费观看| 日日噜噜夜夜狠狠视频| 9丨情侣偷在线精品国产| 成年看免费观看视频拍拍| 久久香蕉国产线看观| 天天色天天综合网| 久久久无码人妻精品无码| 久久久久久久久久国产精品| 天天综合亚洲| 日本免费新一区视频| 毛片卡一卡二| 国产美女主播一级成人毛片| 国产日韩欧美中文| 激情国产精品一区| 亚洲欧美人成人让影院| 精品夜恋影院亚洲欧洲| 老司机久久精品视频| 一级在线毛片| 国产偷倩视频| 这里只有精品国产| 九色在线视频导航91| 久久精品亚洲中文字幕乱码| 播五月综合| 欧美劲爆第一页| 欧美 国产 人人视频| 亚洲欧美h| 欧美啪啪网| 国产探花在线视频|