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

基于組合測試的V&V單元測試用例設計研究

2012-10-16 07:38:08李運堅
太原科技大學學報 2012年2期
關鍵詞:信號系統

劉 博,李運堅,張 磊

(北京廣利核系統工程有限公司,北京 100094)

單元測試(Component Testing)是在軟件開發過程中必要的基礎測試活動之一,為實現軟件預期的質量和性能提供了有力保障。特別是在核電數字化安全級系統中,單元測試是提前發現軟件缺陷和保證安全系統平臺正常運行的有效措施,在V&V(Verification and Validation)標準 IEEE 1012 Software Verification and Validation[1]與美國核管會審查導則RG1.171[2]中分別強調了單元測試的必要性。

在核電安全級應用軟件中,軟件單元(Software Component)的邊界劃分并無明確規定[3]。單元既可以指一個函數(工程組態中封裝的模塊),如“與門”、“二取一表決器”運算,也可以代表一個基本的軟件功能,如“超溫超壓停堆保護”。通常情況下,為了保證測試的全面性,軟件單元的界定往往更傾向于后者,函數功能則在平臺測試中完成。因此,安全級應用軟件的一個單元會包含大量的輸入信號和控制邏輯運算,輸入信號值域的組合代表不同的工況。如果將每個單元的工況都測試一遍,意味著要窮舉輸入變量的取值組合,測試用例數量將以對數形式增長[4],但組合測試方法則可以有效減少測試用例數量。

Mandl首先將組合測試運用于軟件測試中,對Ada編譯器進行了兩兩組合測試和配對組合測試。在之后的大量研究當中表明,組合測試具有檢測軟件缺陷的能力[5]。根據Kuhn和Reilly對Mozila瀏覽器做的一項測試報告表明,70%的錯誤是由于相關的兩個參數導致的,超過90%的錯誤是由3個以內的參數相互作用而引起的,要發現所有缺陷,覆蓋強度僅需要達到6-way[6-7]。同時,美國國家標準和技術協會(NIST)的Kuhn等人通過4個軟件系統研究組合測試的錯誤檢出率,結果表明3組合覆蓋(3-way covering)的錯誤檢出率超過80%[8]。目前組合測試已廣泛應用于兼容性測試和高度可配置的系統測試等[9]。

本文提出分級組合測試的概念,并以工程實例展示了這種方法生成測試用例的具體過程。

1 組合測試基本概念

組合測試方法是一種將系統中相互作用的因素值域組合,用盡可能少的測試用例,覆蓋這些因素對系統的影響狀況。例如,數字邏輯圖1,若要發現其中“與門”的缺陷(輸入條件B與輸出短接),一般情況下窮舉需要8(23)個測試用例才能發現錯誤,如表1所示。然而,組合測試只需要運用兩兩覆蓋(pairwise covering)4個測試用例即可,如表2所示。

圖1 數字邏輯圖Fig.1 Digital logic diagram

表1 常規測試方法Tab.1 General testing method

表2 兩兩覆蓋組合測試Tab.2 Pairwise covering test

表1中第二個測試用例可以檢測出邏輯錯誤,表2中第一個測試用例可以檢測出邏輯錯誤。

根據變量的取值范圍、采用的覆蓋標準和測試強度,可以將組合測試用例分為4類[9]:正交矩陣(Orthogonal Array)、覆蓋矩陣(Covering Array)、混合水平覆蓋矩陣(Mixed Level Covering Array)和可變強度覆蓋矩陣(Variable Strength Covering Array)。

1.1 正交矩陣

正交測試法是基于數理統計和概率論的一種經驗設計技術,利用已有的標準正交表處理多因素實驗問題[10]。正交表實際是一個二維矩陣(又稱正交矩陣),可以實現兩兩參數覆蓋的測試要求。針對不同的參數數量和值域范圍,選擇適當的正交表,即可得到優化的測試用例。

根據大量理論和實踐證明,正交測試的優勢主要有[11]:(1)保證所有參數變量成對組合;(2)生成的測試集在組合全集中是均勻分布的;(3)與人工生成測試集相比,不會遺漏某些變量組合,可靠性高,實現過程簡單。

正交表構造過程雖然簡單,但是常用的標準正交表不能涵蓋所有因素與水平的情況,因此在選擇正交表的過程中往往需要測試設計人員調整因素與水平的數量,以滿足現有的正交表。特別是對于核電應用軟件,系統中同時包括數字與模擬變量,由于取值范圍不同,構成混合水平正交表,很難從標準正交表中直接查到。例如:L4(23×45),則無法查到完全符合的正交表。

1.2 覆蓋矩陣

一個值域大小為v的N×k覆蓋矩陣,任意的N×t子矩陣包含了在v值域上所有大小為t的排列,可表示為 CA(N;t,k,v),其中 N 為測試用例數,t為測試強度(strength),k為階數(degree),v稱為序(order)[12]。當一個覆蓋矩陣有最小的行數時,這個最小行數稱為覆蓋數(covering array number),表示為CAN(t,k,v)。

通常情況下,測試強度為2的覆蓋矩陣稱為兩兩覆蓋矩陣(pairwise covering array),即任意兩列變量的取值組合全覆蓋,前提條件要求矩陣的每列參數具有相同的值域。例如表2,是一個標準的覆蓋矩陣,共4個測試用例,測試強度為2,階數是3,序為2,矩陣表示為 CA(4;2,3,2)。

1.3 混合水平覆蓋矩陣

一個值域大小為v的N×k混合水平覆蓋矩陣,任意的N×t子矩陣包含了在相應值域上的所有 t元組,可表示為 MCA(N;t,k,v1,v2…vk)。與正交矩陣和覆蓋矩陣不同的是每列參數的值域可以不同,即,vi代表第 i列參數的取值個數。

混合水平覆蓋矩陣用于不同值域的參數變量進行組合測試。例如,假設表2中輸入變量C的取值范圍為{0,1,2},則可得到混合水平覆蓋矩陣MCA(6;2,3,2,2,3),經過簡化得 MCA(6;2,3,223)。

1.4 可變強度覆蓋矩陣

可變強度覆蓋矩陣 VCA(N;K,(n1,n2,…nk),())是 N ×k的矩陣,N 為矩陣行數,k為輸入參數個數,ni代表第i個參數的值域為參數集合P的某個子集,但子集不構成對集合P的劃分,ti是子集的測試強度。

一般地,強度為t的覆蓋矩陣被稱為t覆蓋矩陣(t-covering array),要求在值域范圍內,任意t個因素之間的取值組合全覆蓋。

2 分級組合測試

分級組合測試是將一個系統劃分成若干次級系統,各次級系統采用不同的測試強度生成測試用例子集后,在次級系統之間再次使用組合測試算法,最終生成單元測試用例。算法架構見圖2.

圖2 分級組合測試架構Fig.2 Structure of multi-level combinatorial test

核電安全級應用軟件邏輯結構較復雜,使用分級組合測試前,必須找到系統的主干邏輯,在此基礎上再劃分次級系統。雖然核電安全級系統輸入信號眾多,但這些信號往往控制一個或幾個執行機構,邏輯結構逐漸收斂,所以大部分系統能夠找到其主干邏輯。

例如,以目前國內某二代改進型壓水堆停堆保護的典型邏輯為例,“中間量程中子通量高時,產生停堆信號”,其主干邏輯是“P10不存在,或沒有手動閉鎖信號時,二選一表決邏輯產生緊急停堆信號”。按照功能需求,將P10、手動閉鎖信號、二選一表決邏輯分別劃分為3個次級系統。見圖3,圖中3個數字分別代表:①實現帶降級“二取一”功能;②產生P10信號;③產生手動閉鎖信號(注:允許信號P—在保護系統中需要設置一些允許功能,在一定條件下自動允許或抑制(閉鎖)某些保護功能,或允許操縱員手動閉鎖某些保護信號或禁止某些保護通道的動作;P10—判斷功率量程中子通量測量值是否低于定值[13])。

圖3 CPR1000中間量程中子通量高停堆邏輯Fig.3 Trip logic of CPR1000 high neutron flux intermediate range

2.1 次級系統①測試用例子集

次級系統①為“二取一”邏輯,由于帶有降級功能,不能單純運用組合測試,否則生成的用例不能保證覆蓋所有降級功能,見表3.為了保證測試用例完全覆蓋“降級功能”,采用人工選取與組合測試相結合的方法生成次級系統①的測試用例。

表3 帶降級邏輯的“二取一”功能需求Tab.3 Requirement specifications of 1/2with degradation

這里介紹的方法是將旁通信號(F1、F2)與表決信號(A、B)分別討論。旁通信號的所有組合形式見表4.表決信號采用兩兩組合覆蓋,見表5.完成之后,將每種降級類型分別與表決信號組合,最終形成次級系統①的測試用例子集,見表6.降級類型Ⅱ有兩種旁通信號組合,用例子集中至少選用其中一種組合形式。

2.2 次級系統②測試用例子集

鑒于P10信號的重要性與邏輯結構的復雜性,需要單獨進行測試。然而,P10與“中間量程中子通量高,保護停堆功能”有重要交互接口,故作為樁函數出現在單元測試用例中,值域范圍{0,1}。

表4 旁通信號組合Tab.4 By-pass signal combination

表5 表決信號組合(兩兩組合覆蓋)Tab.5 Voting signal combination(pairwise covering)

表6 次級系統①測試用例子集Tab.6 Test cases of sub-system ①

2.3 次級系統③測試用例子集

次級系統③的功能是產生手動閉鎖信號,邏輯中沒有涉及典型工藝,不需要再次分級或采用其他輔助方法生成測試用例,可直接選擇pairwise covering,或者3-way covering以達到更高的測試強度。表7為采用pairwise covering生成的測試用例子集,達到任意兩個輸入變量的值域組合全部覆蓋。

表7 次級系統③測試用例子集Tab.7 Test cases of sub-system ③

2.4 單元測試用例

①、②、③三個次級系統的測試用例子集運用組合測試的方式生成覆蓋矩陣,得到最終的單元測試用例。當測試強度為pairwise covering,生成混合覆蓋矩陣 MCA(48;2,3,12,2,4),見表 8.如果測試強度為3-way covering,則生成混合覆蓋矩陣MCA(96;3,3,12,2,4)。

“V&V Smart”工具可一次性完成以上步驟。輸入每個次級模塊的輸入變量后,直接輸出最終單元測試用例。軟件操作界面如圖4.除變強度組合測試外,此軟件同時適用于非經典組合測試,如:種子組合[14],參數之間的限制[15]等。

圖4 V&V Smart工具Fig.4 V&V Smart tool

3 分級組合測試優勢

分級組合測試算法的優勢主要有3點:

(1)減少測試用例數量。如果采用窮舉法,本文中的測試單元將生成256(28)個測試用例。如果使用分級組合測試,見表8,只生成了48個測試用例,減少用例81.25%。同時,覆蓋了表4中的3種降級類型、表5中表決信號的4種組合方式與表7中兩兩信號之間的全部組合,滿足測試需求。

(2)靈活調整測試強度。根據次級模塊在被測單元中的重要性程度,指定不同的測試強度,合理調整測試重點。如,次級系統①加入人工輔助分析,充分覆蓋測試需求;或次級系統③可選擇更高的測試強度。

(3)算法簡單,易于軟件實現。分級組合測試算法原理簡單,可以借助軟件實現計算過程,本文利用自行開發的工具“V&V Smart”自動生成單元測試用例。

4 總結與展望

針對核電安全級應用軟件輸入變量較多,設計單元測試用例困難特點,研究了被工業界廣泛應用的組合測試方法[5]后,在實際項目背景下提出了分級組合測試的概念。分級組合測試在保證覆蓋測試需求的前提下,不僅可以減少測試用例數量,而且算法簡單,易于軟件實現,為核電應用軟件的單元測試提供了一種可行的實現方法。

未來的研究方向主要包括以下幾個方面:(1)針對核電系統的特點,選擇適合項目的組合測試用例生成算法,例如貪心算法[16]、元啟發式搜索方法[17]、完備搜索算法等[18]。不同算法對覆蓋率、生成用例速度和數量的要求各不相同,通過實際項目檢驗每種算法的適用性。(2)分級組合測試面對某些核電典型邏輯仍需要人工分析,例如:次級模塊①“帶降級的二取一邏輯”。如果可以統一算法,不再需要測試人員分析,將提高測試效率。(3)組合測試具有較高的錯誤檢出率是通過實驗得出的結論[19],如何建立可靠性模型定量的分析組合測試對核電應用軟件可靠性的影響,是一個值得研究的方向。

表8 單元測試用例Tab.8 Component test cases

[1]Software Engineering Standards Committee of the IEEE Computer Society.IEEE Std 1012-2004,IEEE Standard for Software Verification and Validation[S].

[2]Regulatory Guide 1.171,U.S.Nuclear Regulatory Commission[S].

[3]IEC 60880 Nuclear power plants-instrumentation and control systems important to safety-Software aspects for computer-based systems performing category A functions[S].2006.

[4]GODBOLE A P,SKIPPER D E,SUNLEY R A.t-Covering arrays:Upper bounds and Poisson approximations[J].Combinatorics,Probability and Computing,1996,5:105-117.

[5]YAN J,ZHANG J.Combinatorial Testing:Principles and Methods[J].Journal of Software,2009,20(6):1393-1405.

[6]KUHN D R,WALLACE D R,GALLO A M.Software Fault Interactions and Implications for Software Testing[J].IEEE Transactions on Software Engineering,2004,30(6):418-421.

[7]KUHN R,LEI Y,KACKER R.Practical combinatorial testing:Beyond pairwise[J].IT Professional,2008,10(3):19-23.

[8]CHEN C,WANG F T,ZHAO S C.Orthogonal Test and Its Application in Software Test Case Design[J].Computer Applications and Software,2008,25(7):158-160.

[9]CHEN X,GU Q,WANG X P,CHEN D X.Research Advances in Interaction Testing[J].Computer Science,2010,37(3):1-5.

[10]LEE Copeland.A Practitioner's Guide to Software Test Design[M].London:Artech House,2003.

[11]TANG H X,FANG M Y,LIU M,et al.Test Case Generation for Software Based on Orthogonal Experiment Design[J].Computer Engineering and Design,2008,29(14):3673-3676

[12]NIE C H,XU B W,SHI L.A new pairwise covering test data generation algorithm for the system with many 2-level factors[J].Chinese Journal of Computers,2006,29(6):841-848.

[13]廣東核電培訓中心.900MW壓水堆核電站系統與設備[M].北京:原子能出版社,2005.

[14]DALAL S R,JAIN A,KARUNANITHI N,et al.Model-Based testing in practice[C]//the Int'21 Conf on Software Engineering.New York:ACM Press,1999:285-294.

[15]CZERWONKA J.Pairwise testing in real world:Practical extensions to test case generators[C]//Butt D,Gens C,eds.Proc of the 24th Pacific Northwest Software Quality Conf,2006.

[16]COHEN D M,DALAL S R,FREDMAN M L,et al.The AETG system:An approach to testing based on combinatorial design[J].IEEE Trans.on Software Engineering,1997,23(7):437-443.

[17]CZERWONKA J.Pairwise Testing[EB/OL].[2011-9-14].http://www.pairwise.org/

[18]YAN J,ZHANG J.Backtracking algorithms and search heuristics to generate test suites for combinatorial testing[C]//Wong J,ed.Proc.of the IEEE Annual Int’1 Computer Software and Applications Conf(COMPSAC).Los Alamitos:IEEE Press,2006:385-394.

[19]WANG Z Y,XU B W,NIE C H.Survey of Combinatorial Test Generation[J].Journal of Frontiers of Computer Science and Technology,2008,2(6):571-588.

猜你喜歡
信號系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
孩子停止長個的信號
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 国产亚洲精久久久久久久91| 久久天天躁狠狠躁夜夜2020一| 亚洲人人视频| 色婷婷国产精品视频| 第一页亚洲| 亚洲首页在线观看| 国产乱子伦视频在线播放| 国产乱肥老妇精品视频| 鲁鲁鲁爽爽爽在线视频观看 | 国产三级韩国三级理| 欧美人在线一区二区三区| 亚洲人成日本在线观看| 老司机精品一区在线视频| 日本AⅤ精品一区二区三区日| 无码人中文字幕| 午夜视频免费试看| 第一区免费在线观看| 婷婷丁香色| 亚洲av无码久久无遮挡| 国产极品嫩模在线观看91| 久久大香香蕉国产免费网站| 日本午夜影院| 久久综合亚洲色一区二区三区| 最新痴汉在线无码AV| 国产情精品嫩草影院88av| 伊人久久福利中文字幕| 再看日本中文字幕在线观看| 波多野结衣爽到高潮漏水大喷| 久夜色精品国产噜噜| 日韩在线第三页| 色婷婷在线影院| 亚洲色图狠狠干| 婷婷开心中文字幕| 国产精品无码翘臀在线看纯欲| 欧美亚洲第一页| 亚洲国产精品人久久电影| 国产欧美日韩在线一区| 国产日韩欧美在线播放| 丁香六月激情婷婷| 亚洲成a人片| 日韩精品毛片| 国产成人凹凸视频在线| 久久国产精品夜色| 亚洲精品波多野结衣| 国产欧美日韩综合一区在线播放| 亚洲美女一级毛片| 亚洲欧洲日韩久久狠狠爱| 午夜一级做a爰片久久毛片| 白丝美女办公室高潮喷水视频| 亚洲欧美日韩成人在线| 日韩精品一区二区三区中文无码| 四虎永久在线| 国产精品美乳| 日韩国产综合精选| 波多野结衣一二三| 色婷婷色丁香| 亚洲日韩在线满18点击进入| 精品偷拍一区二区| 日韩在线影院| 国产精品亚洲精品爽爽| 国产精品亚洲va在线观看| 精品一區二區久久久久久久網站| 尤物国产在线| 99久久性生片| 日韩欧美国产精品| 一区二区日韩国产精久久| 69av免费视频| 91国内外精品自在线播放| 九九视频免费在线观看| 国产精品毛片一区视频播| 欧美精品三级在线| 国产男女免费视频| 呦女精品网站| 99久久国产综合精品女同| 免费精品一区二区h| 99久久国产综合精品女同 | 婷婷激情五月网| 波多野结衣中文字幕一区| 国产亚洲欧美在线专区| 亚洲久悠悠色悠在线播放| 91精品国产无线乱码在线| 欧美日韩导航|