• 
    

    
    

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

      嵌入式星載軟件單元測試方法探討

      2014-03-12 15:50:15曹斌
      新媒體研究 2014年2期
      關(guān)鍵詞:單元測試

      曹斌

      摘 要 軟件測試是軟件質(zhì)量保障的基礎(chǔ),而單元測試是軟件測試的重要階段,單元測試用例的設(shè)計(jì)是軟件測試的重要環(huán)節(jié)。文章重點(diǎn)結(jié)合xx型號嵌入式星載軟件的一個(gè)模塊,詳細(xì)介紹并論述單元測試的方法。

      關(guān)鍵詞 軟件質(zhì)量;單元測試;測試用例設(shè)計(jì);安全性措施

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-7597(2014)02-0026-03

      YingHuo-1 Mars Probe Embedded software unit testing methods

      CAO BIN

      Abstract:Software testing is the key to software quality assurance. Unit testing is an important stage of software testing. The design of the unit test cases is an important part of software testing. This article focuses on combination of YingHuo-1 integrated electronic system software introduces and discusses the test case design methods, and provide an idea for the design of test cases.

      Key words: Softeware quality; Unit testing; Design of test cases; Security measures

      隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,軟件質(zhì)量成為產(chǎn)品質(zhì)量的一個(gè)不可或缺的組成部分。尤其對于航天型號來說,軟件的可靠性安全性設(shè)計(jì)更加重要。為保障軟件質(zhì)量,軟件測試則是關(guān)鍵的技術(shù)環(huán)節(jié)。軟件測試是軟件測試人員或者軟件測試工具來測試或者運(yùn)行特定的系統(tǒng)過程,它的目的是驗(yàn)證它本身是否滿足需求規(guī)定的要求、預(yù)期設(shè)計(jì)結(jié)果與世界結(jié)果的差異。

      在軟件開發(fā)過程中,單元測試是最低級別的測試活動。單元測試是將獨(dú)立的單元模塊與其他部分分離的情況下來測試的。單元測試作為編碼的一種輔助手段,無論在程序修改、移植在新的環(huán)境中,它都應(yīng)該具備可重復(fù)性。因此,所有版本的單元測試都應(yīng)該是在軟件的開發(fā)生命周期中進(jìn)行的。

      根據(jù)航天飛行器軟件的設(shè)計(jì)開發(fā)特點(diǎn),其需要較高的軟件可靠性、健壯度、以及無錯(cuò)的設(shè)計(jì)要求。本文針對這類軟件的單元測試進(jìn)行測試流程以及用例設(shè)計(jì)方面的描述。

      1 嵌入式航天飛行軟件單元測試流程

      圖1 軟件單元測試測試內(nèi)容

      Fig.1 Test content of software unit test

      單元測試是測試人員設(shè)計(jì)的一個(gè)代碼模塊,用來驗(yàn)證被測試代碼的一個(gè)明確的功能的正確性。一般來說,一個(gè)單元測試的用例設(shè)計(jì)是用來判斷一個(gè)特定條件背景下的某個(gè)特定函數(shù)的邏輯。

      單元測試針對每個(gè)程序的模塊,主要測試5個(gè)方面的問題:模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨(dú)立的路徑和錯(cuò)誤處理,如圖1所示。

      1.1 文檔審查

      檢查文檔的流程如圖2所示,文檔檢查主要包括文檔內(nèi)容的完整性、一致性。同時(shí)度量文檔編寫的質(zhì)量。

      圖2 文檔審查工作流程

      Fig.2 Document review workflow

      圖3 代碼審查

      Fig.3 Code review workflow

      1.2 代碼審查

      代碼審查如圖3。代碼審查是審查代碼的設(shè)計(jì)與文檔描述之劍的一致性,還有代碼邏輯正確性、程序的結(jié)構(gòu)和代碼的可閱讀性。

      1.3 動態(tài)測試過

      動態(tài)測試即測試模塊能否正確地運(yùn)行需求中所描述的內(nèi)容,還有在極限條件、邊界條件、溢出條件下的健壯度。在動態(tài)測試過程中,應(yīng)該對被測試模塊給出執(zhí)行路徑、語句覆蓋率、分支覆蓋率等一些量化的數(shù)據(jù)。

      在進(jìn)行對xx型號應(yīng)用軟件的單元測試中,主要的測試流程如圖4所示。

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

      2.1 需求分析測試

      根據(jù)動態(tài)測試中的要求,本節(jié)用實(shí)例演示,對一個(gè)被測模塊的覆蓋率統(tǒng)計(jì)。

      實(shí)例是XX型號軟件中某判斷電池是否正常的函數(shù)。

      function IsBatteryTempNormal return Boolean is

      TempVolt1:Float;

      TempVolt2:Float;

      result:Boolean:=False;

      begin

      TempVolt1:=GetEffectValue(16);

      TempVolt2:=GetEffectValue(17);

      if (a > TEMP1 and a < TEMP2) or

      (b > TEMP3 and b < TEMP4) then

      result:=True;

      end if;

      return result;

      end IsBatteryTempNormal;

      上述程序模塊,a/b變量在不同值的情況下,模塊返回不同的計(jì)算結(jié)果。軟件流程圖如圖5所示。

      圖5 軟件邏輯流程圖

      Fig.5 Software logic flow chart

      根據(jù)需求分析,該程序單元包含兩個(gè)判定,即a∈(TEMP1,TEMP2)和b∈(TEMP3,TEMP4)。endprint

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

      在本函數(shù)中,共有兩種判斷條件,單一判斷和組合判斷,根據(jù)流程圖的分支結(jié)構(gòu),設(shè)計(jì)可以用來覆蓋所有分支的測試用例,滿足分支覆蓋率的測試指標(biāo)。

      滿足全語句覆蓋需要3個(gè)用例,見表1。

      滿足全分支覆蓋需要9個(gè)用例,見表2。

      邊界測試用例設(shè)計(jì)需要4個(gè)用例,見表3。

      3 利用工具進(jìn)行單元測試

      Adatest95是一款支持M1750 Ada程序的單元和集成測試工具,由英國的IPL公司開發(fā)。

      AdaTest95支持采用Ada83、Ada95編寫的程序的單元測試,包括樁函數(shù)的定義、單元模塊的輸入設(shè)定、單元模塊涉及全局變量的設(shè)定以及返回值檢測、全局變量檢測、語句覆蓋率分析、分支覆蓋率分析等單元測試功能。

      在AdaTest95測試工具的幫助下,無需考慮驅(qū)動模塊,驅(qū)動模塊由該測試軟件缺省完成。樁模塊是額外的開銷,雖然在單元測試中必須編寫,但并不是作為最終的結(jié)果。

      被測模塊、驅(qū)動模塊和樁模塊共同構(gòu)成了一個(gè)如圖6所示的單元測試的測試環(huán)境。

      軟件使用歸納起來一共分成九步,具體流程如圖7所示。

      4 測試結(jié)論

      按照測試計(jì)劃中各個(gè)用例的要求,一共進(jìn)行了16個(gè)用例的測試。測試用例輸出都滿足期望輸出要求,測試結(jié)果正確;各被測模塊的語句覆蓋率、分支覆蓋率、錯(cuò)誤路徑覆蓋率均達(dá)到100%。

      5 結(jié)束語

      通過對軟件進(jìn)行單元測試,確保了軟件在編碼上的邏輯正確性、驗(yàn)證了軟件功能與文檔設(shè)計(jì)的一致性。降低了軟件開發(fā)風(fēng)險(xiǎn)以及開發(fā)成本,更是對航天飛行器軟件的高可靠性、安全性提供了保障。

      參考文獻(xiàn)

      [1]易海勝.單元測試用例設(shè)計(jì)方法初探[J].武漢科技學(xué)院學(xué)報(bào).

      [2]張巍,尹海波,孫立財(cái).軟件的單元測試方法[J].光電技術(shù)應(yīng)用.

      [3]中國航天科技集團(tuán)公司軟件專家組.航天軟件工程實(shí)施技術(shù)指南及范例(修訂版)[M].

      [4]姜靜波,蔡建平,郭勇.Ada程序設(shè)計(jì)語言高級教程[M].

      [5]Myers,G,J.,張曉明,黃琳.軟件測試的藝術(shù)[M].

      [6]馬瑟,王峰,郭長國,陳振華.軟件測試基礎(chǔ)教程[M].

      [7]徐宏革.白盒測試之道[M].endprint

      猜你喜歡
      單元測試
      圓錐曲線單元測試卷
      “三角形”單元測試卷
      “整式的乘法與因式分解”單元測試題
      “勾股定理”單元測試題
      “整式的乘法與因式分解”單元測試卷(提高卷)
      《一次函數(shù)》單元測試題
      《一次函數(shù)》單元測試題
      一年級語文下冊第五單元測試
      一年級上冊第五單元測試
      一年級上冊一、二單元測試
      石首市| 巍山| 白水县| 龙江县| 五华县| 佛坪县| 高要市| 黎平县| 四平市| 邹平县| 刚察县| 吕梁市| 瑞昌市| 蒙阴县| 莒南县| 松阳县| 鄱阳县| 和平县| 德兴市| 崇仁县| 宁国市| 太仆寺旗| 祁阳县| 恩施市| 本溪市| 开化县| 永川市| 栾川县| 景谷| 鲜城| 涪陵区| 佛学| 英吉沙县| 岳普湖县| 连城县| 长海县| 青铜峡市| 涪陵区| 桂阳县| 赤城县| 浮山县|