• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    嵌入式軟件集成測試函數集成策略研究

    2019-09-17 08:28:12樊茜何雨昂宋茜
    電子技術與軟件工程 2019年16期
    關鍵詞:嵌入式軟件單元測試閉環(huán)控制

    文/樊茜 何雨昂 宋茜

    伺服控制設備嵌入式軟件特別注重軟件測試工作。原因在于對傳統(tǒng)軟件開發(fā)的研究表明,大約65%的軟件缺陷是使用白盒測試方法發(fā)現的,其中集成測試中由于只包含了模塊的軟件代碼,代碼量較少,所以軟件缺陷容易被隔離出來,且集成測試發(fā)現的問題多為模塊內部功能缺失、單元測試未發(fā)現接口問題、時序問題、資源競爭問題等致命缺陷,因此集成測試是最有效的一類測試。

    圖1:某項目嵌入式軟件子功能調用關系圖

    1 集成測試集成策略概述

    1.1 集成測試定義

    集成測試是把經過單元測試的函數按照軟件的結構組合在一起,作為一個系統(tǒng)或一個子系統(tǒng)來進行的測試。與單元測試不同,集成測試中的所有的調用或被調用的函數均為真實函數。雖然經過單元測試后的單元函數滿足詳細設計要求,但是并不能保證這些函數集成后能正常工作。因為程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。集成測試的目的是驗證單元函數組裝成模塊后,模塊內部函數以及模塊與其他模塊之間的關系的正確性,并且發(fā)現其缺陷。

    集成測試的測試過程為:將各單元函數連接起來,檢查模塊內的函數相互調用時,數據經過接口是否丟失;將各個子系統(tǒng)或子功能組合起來,檢查能否達到預期要求的各項功能;各模塊之間是否會存在功能互斥或者產生不利的影響;在模塊內使用的全局數據是否存在讀寫沖突,會不會被異常修改;多個模塊的計算誤差是否會積累起來,從而被放大到不可接受的程度。

    1.2 集成策略類型

    生成集成測試集成序列的方式,稱為集成策略。按照集成策略的方式,一般可分為非增量集成和增量式集成。非增量集成指將所有已通過單元測試的函數一次性集成為整體軟件,不需要設計任何驅動模塊和樁模塊,但是由于一次性集成后的函數調用關系多,數據關聯耦合度高,測試用例設計難度大且易出錯,針對函數調用層數較多的軟件不建議使用該策略。

    增量集成指的是程序以小增量的方式逐步進行構造和測試,可以較早的發(fā)現模塊間接口不匹配、不正確假設等編程錯誤。這樣錯誤易于分離和糾正,更易于對接口進行徹底測試。

    增量集成中分為如下三種:

    (1)自頂向下集成。以功能分解樹為基礎,從樹的頂端出發(fā),依次將大功能分解為小功能,從下方節(jié)點中選擇單元函數集成為新的模塊,需要開發(fā)樁模塊來模擬父節(jié)點的向下調用關系。

    (2)自底向上集成。自底向上集成是自頂向下順序的“鏡像”。在自底向上集成中,首先從分解樹的葉子開始,需要特殊編寫驅動模塊進行集成測試。驅動模塊包含有效的測試輸入、調用被測試塊且將輸出顯示出來的模塊。大多數情況下,驅動模塊比樁模塊開發(fā)難度小。

    (3)三明治集成。三明治集成測試是將自頂向下測試與自底向上測試兩種模式有機結合起來,采用并行的自頂向下、自底向上集成方式,形成的方法。三明治集成測試更重要的是采取持續(xù)集成的策略。樁和驅動的開發(fā)工作都比較小,不過代價是在大量集成函數的后,在一定程度上增加了定位缺陷的難度。

    以功能分解樹為基礎的函數集成方法能很好的驗證模塊功能,能盡早的在子功能模塊中發(fā)現設計缺陷,但是由于功能分解樹的構造易出錯,非常依賴被測文檔的正確性和測試人員的業(yè)務能力,如果功能分解樹構造有偏差則嚴重影響了集成測試的有效性。

    2 嵌入式軟件的快速生成集成序列方法

    2.1 集成序列生成方法簡介

    伺服控制設備嵌入式軟件是運行在伺服控制器的一種強實時高可靠軟件,實現軟硬件資源協同處理,從而完成伺服系統(tǒng)控制功能。每個功能的實現是由函數間的逐級調用的過程完成,直至最底層的代碼。因此函數之間相互調用關系正確合理,是保證整個嵌入式軟件功能完備的基礎。

    根據以上特點,同時解決集成測試集成策略依賴功能分解樹的問題,本文研究了一種快速生成嵌入式軟件集成測試集成序列的方法:基于調用圖的自底向上的生成集成序列。該方法不僅能覆蓋了嵌入式軟件所有函數的調用關系,自底向上的集成策略還便于測試人員快速分析測試結果和定位軟件問題,提高了集成測試的測試效率。

    表1:定時中斷閉環(huán)控制功能集成序列

    2.2 函數集成原則

    軟件函數調用圖能清晰的反應整個軟件函數之間的實際關系,并且容易通過測試工具獲得,是進行集成測試的基礎。通過調用關系圖生成集成序列有以下原則:

    (1)從調用關系圖的葉子節(jié)點出發(fā),將已完成測試的單元或模塊,按照調用關系添加到新模塊;

    (2)如果程序中存在關鍵部分,那么在設計集成序列時應將關鍵模塊盡可能早地添加進去。所謂的關鍵模塊可能是某個復雜的模塊、某個采用新算法的模塊或某個被懷疑容易發(fā)生錯誤的模塊;

    (3)在設計集成序列時,應將I/O模塊盡可能早地添加進來。

    3 實驗結果

    本文用某項目中的嵌入式軟件為示例,來說明該項目集成序列的生成過程。如圖1所示。

    根據該軟件的概要設計說明要求,該軟件包含各芯片初始化功能、1553B總線消息處理功能和定時中斷閉環(huán)控制功能等。其中序號1為定時中斷閉環(huán)控制功能入口。依照上述集成序列生成原則,先確定該軟件的關鍵功能為定時中斷閉環(huán)控制功能,該功能再細分為本地時鐘管理(序號2)、數字量采集(序號3)、閉環(huán)控制運算(序號4)、監(jiān)控寄存器(序號5)等子功能。其中涉及外設I/O的子功能為AD采集測量數據,且該子功能的輸出值為閉環(huán)控制運算的輸入值,以上幾點均符合集成序列的選擇原則,那么該子功能的集成序列為:

    a:{27,17}

    b:{27,17,16,7}

    c:{27,17,16,7,2}

    以此類推可以生成該軟件定時中斷閉環(huán)控制功能的集成序列如表1。表1中一共列舉了16個集成序列,覆蓋了定時中斷閉環(huán)控制功能的所有函數調用,是后續(xù)設計測試用例的基礎。

    4 結論

    基于調用圖的自底向上序列集成方法,無需人工構造功能分解圖,減輕了測試人員的工作量。該方法能夠很快的發(fā)現處于底層模塊的問題,且由于被調用的函數均為真實函數,更容易觀測到模塊輸出值,更便于測試人員判斷測試結果是否滿足設計要求,從而提高了集成測試的測試效率。

    猜你喜歡
    嵌入式軟件單元測試閉環(huán)控制
    基于LMI的過渡態(tài)主控回路閉環(huán)控制律優(yōu)化設計
    適用于厚度在線測量的水壓閉環(huán)控制系統(tǒng)
    測控技術(2018年1期)2018-11-25 09:43:30
    智能車競賽中的閉環(huán)控制算法應用分析
    電子制作(2018年11期)2018-08-04 03:25:58
    實時嵌入式軟件的測試技術
    電子測試(2018年10期)2018-06-26 05:54:08
    全景相機遙控器嵌入式軟件V1.0 相關操作分析
    電子制作(2017年17期)2017-12-18 06:40:56
    基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設計與實現
    航天嵌入式軟件浮點運算誤差分析與控制
    SSSC的雙閉環(huán)控制策略及仿真分析
    電測與儀表(2015年3期)2015-04-09 11:37:38
    一年級上冊第五單元測試
    一年級上冊一、二單元測試
    蒲江县| 淮北市| 措美县| 岱山县| 昭通市| 黄骅市| 龙井市| 绥江县| 阿克苏市| 墨玉县| 锡林浩特市| 屏东县| 铁岭市| 南安市| 梁山县| 大竹县| 灵川县| 饶阳县| 集贤县| 应用必备| 大邑县| 柘城县| 会泽县| 昭苏县| 剑川县| 靖远县| 邯郸市| 祁连县| 定日县| 阳山县| 西畴县| 黄石市| 五指山市| 剑川县| 陵川县| 晋宁县| 丰县| 张家川| 柳江县| 都江堰市| 鸡东县|