• 
    

    
    

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

      核電DCS軟件開發(fā)中白盒測試的方法與實(shí)踐

      2019-05-24 14:13:16王飛于凱華
      電腦知識與技術(shù) 2019年11期
      關(guān)鍵詞:軟件測試

      王飛 于凱華

      摘要:軟件單元測試是軟件測試的基礎(chǔ),是保證軟件質(zhì)量的一個(gè)重要階段,同時(shí)也是發(fā)現(xiàn)軟件缺陷的關(guān)鍵步驟;該文首先介紹軟件單元測試中白盒測試的方法;然后以核電DCS歷史數(shù)據(jù)庫軟件為案例,具體研究了歷史數(shù)據(jù)庫軟件白盒測試的測試用例的設(shè)計(jì)方法,詳細(xì)介紹了白盒測試用例的設(shè)計(jì)步驟,并對幾種邏輯覆蓋準(zhǔn)則進(jìn)行了比較。

      關(guān)鍵詞:核電DCS;軟件測試;白盒測試

      中圖分類號:TP31 文獻(xiàn)標(biāo)識碼:A

      文章編號:1009-3044(2019)11-0095-02

      Abstract: Software unit testing is the foundation of software testing and an important stage of software quality assurance. The white-box-testing method in the software testing is introduced; then it takes some history database software used in DCS of nuclear power plant as the case and studies the white-box-testing test cases design method. The design procedure of the white-box-testing test cases is summarized and several kinds of cover criteria are compared. At last the merits of MC/DC coverage and the white-box-testing coverage criterion of history database used in DCS of nuclear power plant are studied.

      Key words: DCS of nuclear power plant; software testing; White-box-testing

      自從數(shù)字計(jì)算機(jī)應(yīng)用于核電站控制系統(tǒng)以來,軟件在核電廠控制系統(tǒng)中起著日益重要的作用,而有缺陷的軟件的確存在。核電站控制系統(tǒng)軟件的工作情況復(fù)雜,一旦軟件出現(xiàn)問題,往往造成災(zāi)難性后果。因此,核電廠對核電廠控制系統(tǒng)軟件部分提出了相當(dāng)高的要求。

      軟件測試的方法可以分為黑盒測試和白盒測試,其中白盒測試是保證并提高軟件質(zhì)量的常規(guī)手段之一,是發(fā)現(xiàn)軟件缺陷的關(guān)鍵步驟,是軟件測試的基礎(chǔ)。本文涉及的編程語言均為C/C++語言。

      1 白盒測試方法

      白盒測試又稱結(jié)構(gòu)、邏輯測試或程序測試。這種測試需要了解程序的內(nèi)部情況,并依據(jù)內(nèi)部構(gòu)造設(shè)計(jì)和執(zhí)行測試用例。單元測試時(shí)一般采用白盒測試。白盒測試測試方法有邏輯覆蓋法和基本路徑法。

      2 核電DCS歷史數(shù)據(jù)庫軟件測試白盒測試用例的設(shè)計(jì)

      2.1 設(shè)計(jì)測試用例的步驟

      通過對核電DCS歷史數(shù)據(jù)庫軟件的分析,得出相應(yīng)白盒測試測試用例設(shè)計(jì)步驟如下:

      1)首先采用等價(jià)類劃分、邊界值分析的方法進(jìn)行用例設(shè)計(jì),主要從以下幾個(gè)方面進(jìn)行用例設(shè)計(jì):

      ① 在數(shù)據(jù)允許范圍內(nèi);

      ② 在數(shù)據(jù)允許范圍外;

      ③ 數(shù)據(jù)的邊界;

      ④ 極限值;

      ⑤ 這些類型的綜合。

      2)然后在語句覆蓋、組合條件方面進(jìn)行考慮,檢查是否有沒有執(zhí)行到的語句、組合條件,然后采用回溯的方法,考慮相應(yīng)的數(shù)據(jù)參數(shù)。

      3)基于以上兩種用例設(shè)計(jì)方法,還可以靠經(jīng)驗(yàn)和直覺推測程序中可能存在的各種錯(cuò)誤,進(jìn)行錯(cuò)誤推測,從而有針對性地編寫檢查這些錯(cuò)誤的測試用例。

      2.2 測試用例設(shè)計(jì)實(shí)例

      下面以核電DCS歷史數(shù)據(jù)庫中基于斜率比較的旋轉(zhuǎn)門壓縮算法模塊中程序?yàn)槔鞒虉D如圖1所示,具體研究白盒測試用例的設(shè)計(jì)。

      1) 對程序流程圖的說明:如圖1所示,英文字母A、B、C、D、E、G表示程序分支的判定,其中的某個(gè)判定可能是一系列條件的組合,圖1中英文字母T、F表示程序分支的判定結(jié)果的真、假,小寫英文字母表示程序的路徑。

      2) 對覆蓋準(zhǔn)則進(jìn)行選取,選為修正條件/判定覆蓋(MC/DC)。

      3) 分析流程圖中的程序分支點(diǎn),對分支點(diǎn)的判定進(jìn)行提取,如表1所示。

      4) 根據(jù)選取的準(zhǔn)則來確定需要覆蓋的路徑,并進(jìn)行測試用例的設(shè)計(jì),如表2所示。

      通過表2中的測試用例可以看出:測試用例1和測試用例2使判定A取真、假各一次,測試用例3和測試用例4使判定C取真、假各一次,測試用例2、測試用例3、測試用例4、測試用例5使判定B取真、假各一次,測試用例5、測試用例6、測試用例7使分支結(jié)構(gòu)中條件斜率的取值取得了所有的可能的結(jié)果,并進(jìn)行了轉(zhuǎn)換一次和單條件的變化,同時(shí)程序模塊的入口以及出口點(diǎn)都被調(diào)用了。由此可見,表2中測試用例達(dá)到了判定準(zhǔn)則修正條件/判定覆蓋的標(biāo)準(zhǔn),滿足測試要求。

      3 核電DCS歷史數(shù)據(jù)庫軟件測試白盒測試覆蓋準(zhǔn)則

      通過對單元測試中白盒測試方法的研究,設(shè)計(jì)測試用例時(shí)需要滿足的幾種覆蓋準(zhǔn)則存在以下特點(diǎn):

      設(shè)計(jì)測試用例(a,b,x)=(2,0,4) 就可達(dá)到語句覆蓋標(biāo)準(zhǔn)。若第一個(gè)條件語句中的邏輯與被錯(cuò)誤地編寫成邏輯或,上面設(shè)計(jì)的測試用例是不能發(fā)現(xiàn)這個(gè)錯(cuò)誤的;又如若第三個(gè)條件語句中x>1誤寫成x>0,這個(gè)測試用例也是不能發(fā)現(xiàn)這個(gè)錯(cuò)誤的。

      2) 判定覆蓋:在判定覆蓋中,判定語句基本是由多個(gè)邏輯條件組合而成,若只是判斷其整個(gè)最終結(jié)果,而忽略單個(gè)條件的取值情況,必然會導(dǎo)致部分測試路徑無法覆蓋。這樣的判定覆蓋并不全面。

      3) 條件覆蓋:條件覆蓋中需要保證使一個(gè)判定中的每一個(gè)條件都取到兩個(gè)不同的結(jié)果,而判定覆蓋中對這一點(diǎn)并無要求,由此可見條件覆蓋相較判定覆蓋,其發(fā)現(xiàn)錯(cuò)誤的能力較強(qiáng)。

      4) 條件判定覆蓋:條件判定覆蓋要求測試用例使得條件語句中每個(gè)條件的所有可能都至少出現(xiàn)一次,同時(shí)判定條件可能的結(jié)果都至少出現(xiàn)一次,每一個(gè)條件能獨(dú)立影響判定結(jié)果的變化都至少出現(xiàn)一次(即:其他條件不變,只改變這個(gè)條件時(shí)判定結(jié)果變化)。

      4 結(jié)論

      對于數(shù)據(jù)庫軟件來說,其執(zhí)行語句中可能包含布爾表達(dá)式,在進(jìn)行軟件白盒測試用例設(shè)計(jì)時(shí),其表達(dá)式的復(fù)雜性值得深入研究。由于數(shù)據(jù)庫軟件數(shù)據(jù)存儲的下一步動作受到多個(gè)條件的制約,在程序設(shè)計(jì)中分支判斷必然是一個(gè)多條件組合的布爾表達(dá)式,對于這樣的程序模塊,對其進(jìn)行白盒測試,使用修正條件/判定覆蓋是一個(gè)比較有實(shí)效的折中辦法,這樣能有效的發(fā)現(xiàn)程序中的錯(cuò)誤,又可以避免陷入煩瑣的用例設(shè)計(jì)中。

      參考文獻(xiàn):

      [1] RTCA DO-178B Software Considerations in Airborne Systems and equipment certification [S]. Prepared by RTCA SC-167/EURO-CAE WG-12. 1,1992

      [2] 鄭人杰. 計(jì)算機(jī)軟件測試技術(shù) [M]. 北京:清華大學(xué)出版社,1992.

      [3] 徐宏革. 郭慶. 白盒測試之道C++test [M]. 北京:北京航空航天大學(xué)出版社,2010.

      【通聯(lián)編輯:梁書】

      猜你喜歡
      軟件測試
      軟件測試方向人才培養(yǎng)“1+X”融合研究
      基于OBE的軟件測試課程教學(xué)改革探索
      航天軟件測試模型構(gòu)建與應(yīng)用
      軟件(2020年3期)2020-04-20 01:45:34
      基于MBD模型自動生成測試用例的軟件測試方法
      計(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)用研究
      青冈县| 乌拉特后旗| 萨嘎县| 大方县| 达尔| 韩城市| 江华| 南郑县| 凤庆县| 石首市| 中宁县| 开鲁县| 开阳县| 含山县| 新竹县| 平阴县| 南宫市| 电白县| 石城县| 东乡族自治县| 会理县| 开平市| 杭州市| 山西省| 越西县| 静宁县| 伊宁市| 孝义市| 梅河口市| 崇阳县| 嘉兴市| 平顺县| 开原市| 阳东县| 海城市| 同心县| 栾城县| 昌都县| 保山市| 余干县| 策勒县|