• 
    

    
    

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

      嵌入式軟件測試方法的初探

      2014-04-01 05:39:36周韶園鄭薦中
      關(guān)鍵詞:嵌入式軟件軟件測試測試方法

      周韶園 鄭薦中

      摘要:嵌入式計算機(jī)技術(shù)的飛速發(fā)展加速了電器行業(yè)嵌入式系統(tǒng)的應(yīng)用,嵌入式系統(tǒng)中軟件系統(tǒng)的比重越來越大,軟件架構(gòu)也越發(fā)復(fù)雜,軟件運行的可靠性逐漸成為業(yè)界關(guān)注的焦點問題。本文由嵌入式軟件測試的基本概念入手,基于嵌入式軟件測試特點,綜合分析嵌入式軟件的關(guān)鍵技術(shù)和測試方法,旨在改善嵌入式軟件的質(zhì)量,提高其應(yīng)用性能。

      關(guān)鍵詞:嵌入式軟件 軟件測試 測試方法

      0 引言

      當(dāng)前,嵌入式軟件已廣泛運用于工業(yè)控制系統(tǒng)、信息家電、通訊設(shè)備、醫(yī)療儀器、智能儀器儀表等眾多領(lǐng)域,軟件的質(zhì)量和應(yīng)用性能備受業(yè)界關(guān)注。以往業(yè)界僅僅將功能的軟件開發(fā)-測試模式作為重點研究課題,但當(dāng)前所取得研究成果已無法滿足日益增長的軟件測試需求,其對軟件行業(yè)的發(fā)展也產(chǎn)生了一些負(fù)面影響。嵌入式軟件測試的工作內(nèi)容主要是軟件質(zhì)量的監(jiān)測,這對于嵌入式軟件的開發(fā)及應(yīng)用十分關(guān)鍵。

      本文在軟件測試基本技術(shù)的基礎(chǔ)上,進(jìn)一步探究嵌入式軟件測試技術(shù)與監(jiān)測方法,試圖形成一種較為規(guī)范化的嵌入式軟件測試解決方法。

      1 軟件測試基礎(chǔ)

      1.1 軟件測試概念 軟件是可以用來設(shè)計、制造、運行并且能有效維護(hù)的高質(zhì)量、高可靠性的技術(shù)解決方案的一系列計算機(jī)程序和相關(guān)的組件。對軟件進(jìn)行測試是軟件能否正常運行的重要保證,軟件測試是以發(fā)現(xiàn)錯誤和缺陷為目的的一系列處理分析的程序或過程。

      根據(jù)IEEE(1983)對測試定義是選擇合適的測試用例,執(zhí)行被測試程序的過程,其目的在于發(fā)現(xiàn)程序錯誤。在IEEEStd829-1998對IEEE(1983)修訂版中,將測試定義為:測試(A)一個或多個的測試用例集,或(B)一個或多個的測試過程集,或(C)一個或多個的測試用例和測試過程集,是軟件的分析過程,其目的在于發(fā)現(xiàn)軟件功能特性等實現(xiàn)和要求不一致的地方(也即軟件錯誤)及對軟件的評估[1]。

      從以上對軟件測試的定義我們可以了解到,軟件測試是以發(fā)現(xiàn)軟件缺陷為目的,進(jìn)而測試軟件功能,最終評估軟件質(zhì)量為目的的試驗過程。另外,為了確保測試結(jié)果客觀、準(zhǔn)確,必須按照設(shè)計要求選用合理的施測軟件。

      1.2 軟件測試步驟 軟件測試工作分五步完成,即單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試和驗收測試(詳見圖1-1)。

      單元測試完成對最小的軟件設(shè)計單元的檢驗工作,篩查程序最小單位(模塊)中的缺陷,編碼后也需要作進(jìn)一步驗證。單元測試主要包括模塊接口、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨立路徑及錯誤處理五項內(nèi)容。

      集成測試是將經(jīng)過單元測試的模塊按照軟件結(jié)構(gòu)組合在一起作為系統(tǒng)或子系統(tǒng)來進(jìn)行的測試,驗證模塊間接口的正確性和各部分工作是否達(dá)到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求。集成測試一般在宿主機(jī)環(huán)境中進(jìn)行。

      確認(rèn)測試是把軟件系統(tǒng)作為單一的執(zhí)行實體而進(jìn)行的需求有效性測試。其目的是驗證軟件是否滿足所有功能、性能、行為和執(zhí)行要求。主要驗證兩個方面:一是確認(rèn)軟件正確實現(xiàn)了需求中所要求的功能,二是確認(rèn)軟件實現(xiàn)的功能是需求中所需要的。

      系統(tǒng)測試實際是通過比較系統(tǒng)的需求定義,篩查軟件中與需求定義不相符或相互矛盾的功能架構(gòu)。系統(tǒng)測試須綜合驗證軟件及其所含的信息、硬件程序是否與需求定義相一致,并檢驗程序的運行狀態(tài)能否達(dá)到應(yīng)用要求。

      確認(rèn)測試主要通過用戶的參與,檢驗軟件的性能、功能能否滿足用戶的使用需求,即驗證軟件的有效性,因此確認(rèn)測試亦可稱作有效性測試。

      2 嵌入式軟件測試的特點

      性能和功能的測試是嵌入式軟件測試的主要內(nèi)容,但相對于一般性的軟件測試而言,嵌入式軟件測試仍有其特殊性。

      ①嵌入式軟件運行時對硬件環(huán)境有一定的要求,嵌入式軟件測試的重要目的是測試軟件在特定的硬件環(huán)境下能否可靠運行,故對嵌入式軟件的測試就需要在相應(yīng)的硬件環(huán)境下進(jìn)行。

      ②嵌入式軟件測試還要保證嵌入式軟件的實時性。測試還需在特定的外部環(huán)境下對嵌入式軟件進(jìn)行測試,例如強(qiáng)磁場、高溫等環(huán)境中保證軟件運行的可靠性。

      ③嵌入式軟件產(chǎn)品除了滿足設(shè)計的外部性能要求,還需要在特定的平臺上運用相應(yīng)的測試工具對軟件進(jìn)行內(nèi)存測試、GUI測試、覆蓋率分析。

      嵌入式軟件的質(zhì)量以及程序的穩(wěn)定性須通過軟件測試來維護(hù),這也是軟件從開發(fā)階段到應(yīng)用階段所必經(jīng)的環(huán)節(jié)。圖2-1即為嵌入式軟件測試模型。

      測試用例是詳細(xì)描述測試如何執(zhí)行的正式文檔。選用相應(yīng)的測試用例,配以測試平臺的操作系統(tǒng)以及驅(qū)動程序,使得被測軟件在正確的環(huán)境中運行。根據(jù)測試用例的執(zhí)行結(jié)果與預(yù)期的測試結(jié)果相比較,找出被測程序的缺陷,并加以改進(jìn)。

      3 嵌入式軟件測試技術(shù)

      科學(xué)合理的軟件測試技術(shù)是嵌入式軟件測試項目順利實施的基本前提。根據(jù)軟件測試程序的應(yīng)用情況我們可以對軟件測試技術(shù)進(jìn)行分類探討。從測試對象在施測階段是否被執(zhí)行角度來看,軟件測試涵蓋了動態(tài)測試與靜態(tài)測試兩部分內(nèi)容。

      靜態(tài)測試即靜態(tài)分析,是對被測軟件進(jìn)行特性分析的一些方法的總稱。靜態(tài)測試無需執(zhí)行程序代碼,即可通過其他途徑篩查程序內(nèi)部的缺陷或?qū)Τ绦虼a目的進(jìn)行綜合評估。靜態(tài)測試的測試主要包括代碼審查、代碼走查、桌面檢查、技術(shù)評查,這些內(nèi)容全部須手動完成,另外還包括軟件自動完成的靜態(tài)分析[3]。

      和靜態(tài)測試相對應(yīng),動態(tài)測試是使被測代碼在真實環(huán)境或仿真環(huán)境下有控制地運行,通過輸入測試用例,對代碼在運行時體現(xiàn)出的功能、邏輯、行為、結(jié)構(gòu)等多角度觀察,檢查運行結(jié)果與預(yù)期結(jié)果的差異以發(fā)現(xiàn)其中的缺陷,并分析運行效率和健壯性等性能。動態(tài)測試的關(guān)鍵在于如何選擇測試用例。

      按軟件測試技術(shù)分類有兩種,即白盒測試與黑盒測試。

      白盒測試主要涉及程序的內(nèi)部設(shè)計和結(jié)構(gòu)的測試。它將施測對象視為一可視化軟件,施測人員須全面掌握程序的內(nèi)部邏輯構(gòu)造和功能特性,然后選擇及設(shè)計測試用例,根據(jù)程序的邏輯路徑施測。在各施測點對程序運行狀態(tài)進(jìn)行監(jiān)測,確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。

      黑盒測試在某些情況下也稱功能測試。這類測試方法根據(jù)軟件的用途和外部特征查找軟件缺陷,無須了解程序內(nèi)部的結(jié)構(gòu),黑盒測試的最大優(yōu)勢在于不依賴代碼,只需根據(jù)需求,設(shè)計相應(yīng)的測試用例,根據(jù)輸出結(jié)果判斷程序功能以及性能正確性。

      4 嵌入式軟件系統(tǒng)測試方法

      理論上講,將所有可能的輸入均作為測試情況考慮,軟件測試只有采用窮舉輸入測試,才能將程序內(nèi)所有的錯誤檢測出來。而現(xiàn)實中測試情況可有無窮多個,所有可能的輸入包含著合法輸入和非法輸入,要將所有的可能性輸入一一檢測仍有一定難度,因而須針對測試對象采取適當(dāng)?shù)臏y試手段,并參考測試對象的基本條件制定科學(xué)的測試用例,為測試工作提供參考依據(jù),以確保有序地落實軟件測試各個步驟。筆者結(jié)合實踐經(jīng)驗,對當(dāng)前常用的等價分類、邊界值分析、McCabe循環(huán)復(fù)雜度度量和因果圖法進(jìn)行了具體分析。

      4.1 等價分類 等價類劃分就是把輸入劃分為若干部分,從每個部分中選取少量代表性數(shù)據(jù),來對被測應(yīng)用進(jìn)行測試的方法。等價類應(yīng)為互不相交的一組子集,而子集的并應(yīng)該是整個集合[4]。

      因為軟件不僅要接收合理的數(shù)據(jù)信息,同時須經(jīng)受意外的考驗,因此等價類可細(xì)分為有效和無效兩種情況。有效等價類,即對于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。通過有效等價類,可對程序所達(dá)到的性能和功能是否符合規(guī)格說明進(jìn)行驗證。而無效等價類與有效等價類恰好是兩個相反的概念。另外,對等價類進(jìn)行劃分后須根據(jù)設(shè)計要求全面測試用例的有效性。

      4.2 邊界值分析 邊界值分析是一種黑盒測試方法,它是對等價類劃分方法的補(bǔ)充,通過選擇等價類邊界的測試用例。通過這種測試方法設(shè)計測試用例,須對邊界情況有大致的了解。一般來講,輸入與輸出等價類的邊界即應(yīng)著重測試的邊界情況[5]。

      從某種意義上講,邊界值分析法也是一種測試輸入或輸出的邊界值的有效途徑。這里所有的邊界值涵蓋了邊界值兩邊的值。邊界值測試的基本原理:輸入變量的極值附近極有可能是缺陷點;基本思想:在最小值、略高于最小值、正常值、略低于最大值和最大值處取輸入變量的值。

      4.3 McCabe循環(huán)復(fù)雜度度量 要全面測試某一軟件或某一功能模塊的有效性,先確保被測對象具有可測試性。顧名思義,可測試性即被測對象所具有的內(nèi)在屬性,它與測試工具或測試方法無關(guān)??蓽y試性能夠反映出軟件質(zhì)量優(yōu)劣,只有高內(nèi)聚、低耦合、接口明確、意圖清晰的軟件才具有可測試性。相反,高耦合、內(nèi)部邏輯混亂的軟件即為不可測試性軟件。

      4.4 因果圖法 等價劃分和邊界值分析沒有對輸入條件進(jìn)行分析。組合分析有時是一件困難的事情,因為組合的數(shù)量可能達(dá)到天文數(shù)字。因果圖有助于找出高效的測試用例,甚至可以找到規(guī)格說明欠缺的地方。

      因果圖法的步驟如下:①分析規(guī)格說明中的原因、結(jié)果,并賦予標(biāo)示符。②找出因果之間的對應(yīng)關(guān)系,畫出因果圖。③在因果圖上標(biāo)明約束條件。④把因果圖轉(zhuǎn)化為判定表。⑤根據(jù)判定表每一列表示的情況生成測試用例。

      5 結(jié)束語

      伴隨著嵌入式軟件事業(yè)的持續(xù)拓展,軟件測試作為保證軟件質(zhì)量的一項關(guān)鍵性的工作,已越來越受到重視。正確的嵌入式測試方法是軟件測試工作的工作重點。本文除了對有關(guān)軟件測試的基本概念作了簡要闡述,還對它們之間的內(nèi)在架構(gòu)進(jìn)行了重點分析,并介紹了幾種常用的嵌入式軟件測試技術(shù)及嵌入式軟件測試方法。這些技術(shù)與方法的運用對軟件測質(zhì)量和穩(wěn)定性起到非常關(guān)鍵的作用。

      參考文獻(xiàn):

      [1]IEEE,IEEE Standard for Software Test Documentation.IEEEStd829-1998.

      [2]梁合慶.當(dāng)今嵌入式系統(tǒng)綜述與新的投資機(jī)遇[J].測控技術(shù),2000(4).

      [3]康一梅,張永革.嵌入式軟件測試[M].北京:機(jī)械工業(yè)出版社,2007.

      [4]古樂,史九林.軟件測試技術(shù)概論[M].北京:清華大學(xué)出版社,2004.

      [5]蔡建平.嵌入式軟件測試實用技術(shù)[M].北京:清華大學(xué)出版社,2010.

      基金項目:

      浙江省大學(xué)生科研創(chuàng)新團(tuán)隊資助項目(編號:2012R409046);

      2011國家公益性質(zhì)檢行業(yè)科研專項資助項目(編號:20110059)。

      猜你喜歡
      嵌入式軟件軟件測試測試方法
      基于泊松對相關(guān)的偽隨機(jī)數(shù)發(fā)生器的統(tǒng)計測試方法
      基于OBE的軟件測試課程教學(xué)改革探索
      基于云計算的軟件自動化測試方法
      電子制作(2019年16期)2019-09-27 09:34:56
      DLD-100C型雷達(dá)測試方法和應(yīng)用
      電子制作(2019年15期)2019-08-27 01:12:02
      EXCEL和VBA實現(xiàn)軟件測試記錄管理
      電子制作(2018年16期)2018-09-26 03:27:18
      實時嵌入式軟件的測試技術(shù)
      電子測試(2018年10期)2018-06-26 05:54:08
      關(guān)于軟件測試技術(shù)應(yīng)用與發(fā)展趨勢研究
      電子測試(2017年15期)2017-12-18 07:19:20
      全景相機(jī)遙控器嵌入式軟件V1.0 相關(guān)操作分析
      電子制作(2017年17期)2017-12-18 06:40:56
      軟件測試工程化模型及應(yīng)用研究
      對改良的三種最小抑菌濃度測試方法的探討
      岱山县| 邢台市| 莲花县| 开阳县| 廊坊市| 灌云县| 永济市| 巴塘县| 桦甸市| 金门县| 兴义市| 苏尼特左旗| 夏津县| 彩票| 蒲城县| 赤城县| 渭南市| 江门市| 华坪县| 顺平县| 峡江县| 扶绥县| 宜都市| 财经| 容城县| 金昌市| 兴山县| 东阿县| 乌拉特前旗| 马龙县| 彭州市| 大洼县| 靖江市| 密云县| 嘉峪关市| 济源市| 丽水市| 汝南县| 瑞丽市| 阳曲县| 来宾市|