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

“魂芯”DSP配套基礎軟件的自動化測試平臺①

2018-05-17 06:46:58林廣棟
計算機系統(tǒng)應用 2018年5期
關鍵詞:調試

林廣棟,耿 銳,王 昊

(中國電子科技集團公司第三十八研究所 集成電路設計中心,合肥 230088)

“魂芯”DSP是由中國電子科技集團公司第38研究所自主研發(fā)的一款高性能浮點處理器芯片.該芯片配套有若干個自主開發(fā)的基礎軟件單元,如編譯器、主機調試器、軟件模擬器等等[1,2].“魂芯”芯片配套的各軟件單元是一個緊密結合的整體,其中任何一個軟件單元產生錯誤都會使整體開發(fā)環(huán)境產生錯誤.這些軟件單元經常會修復一些自身的錯誤,但常常帶來另外一些新的問題.或者單個軟件單元的修改導致其與其他軟件單元不再匹配,進而使整個系統(tǒng)無法工作.發(fā)現(xiàn)與解決這些問題非常耗費時間和人力.雖然存在測試工具和方法對某個單獨的軟件單元進行測試,但是缺少一種對整體軟件環(huán)境進行測試的工具[3–5].

為解決以上問題,設計并實現(xiàn)了一個以主機調試器軟件為測試核心的自動化測試平臺,稱為: 回放式自動化測試平臺.回放式自動化測試平臺是一個基于命令行接口對“魂芯”DSP主機調試器軟件進行自動化測試的平臺.該平臺支持以命令行方式添加測試用例,并自動化地將測試用例中的調試記錄回放.若回放結果與添加測試用例時的輸出結果不一致,則認為測試失敗; 若全部一致,認為測試成功.由于通過主機調試器軟件調試的應用程序與編譯器、軟件模擬器都有關系,本平臺也可以同時測試其他軟件單元.本平臺支持批量式回放測試記錄,當主機調試器、編譯器、模擬器等任何相關的軟件單元發(fā)生變化時,可批量回放測試記錄,以測試軟件系統(tǒng)的整體正確性.

1 設計

1.1 被測軟件單元介紹

被測軟件單元是“魂芯”DSP配套的一系列軟件單元,包括: C編譯器、匯編工具鏈、主機調試器、軟件模擬器、調試鏈接服務軟件等等.它們之間的關系如圖1所示.

使用“魂芯”DSP主機調試器軟件的唯一接口就是命令行,而本測試平臺以命令行方式進行測試,因此可以測試“魂芯”DSP調試器的絕大部分功能.由于“魂芯”DSP主機調試器的調試對象是使用“魂芯”DSP編譯器編譯出的應用程序,因此,調試結果的正確性與編譯器編譯出的程序正確性、編譯器生成的調試信息的正確性密切相關.因此,本平臺還可以對編譯器進行測試.自動化測試平臺存儲的測試用例不僅包括調試器的輸入輸出,還包括源代碼程序.每次回放測試用例時,都要重新編譯一次源代碼程序,以實現(xiàn)對編譯器的測試.若以軟件模擬的方式運行被調試程序,則調試結果的正確性與“魂芯” 芯片軟件模擬器的正確性也密切相關.因此,本測試平臺還可以用來測試軟件模擬器.本平臺支持添加基于硬件平臺的測試用例,因此,也可以測試與硬件平臺通信的調試鏈接服務軟件.各軟件單元的功能以及測試方式如表1所示.

圖1 被測軟件單元之間的關系

表1 被測試軟件單元的功能與測試方法

1.2 編程語言與基礎設施

回放式測試平臺使用 TCL (Tool Command Language)腳本語言編寫.TCL語言是一種解釋型語言.在TCL語言中,所有的變量都可以看成是字符串.TCL語言集成了大量對字符串進行處理的功能,且語言本身就支持正則表達式的解析.選擇TCL語言是因為它進行字符串處理的功能很強,而本測試平臺就是基于字符串同被測試對象進行交互的.

回放式測試平臺還使用了Expect軟件組件.Expect是一種基于TCL語言的支持與其他軟件進行交互的軟件組件.基于 Expect,可以使用常規(guī)的 TCL 語言,也可以使用Expect提供的額外功能.使用Expect,可以方便地向其他軟件發(fā)送字符串,然后對其他軟件發(fā)回的字符串進行解析.Expect已經構建了一個軟件框架,可以向第三方軟件發(fā)送命令,然后期待(expect)第三方軟件的某種格式的回復.由于回放式測試平臺的測試對象是調試系統(tǒng),它們之間通過字符串進行交互,因此使用Expect是比較合適的選擇.

1.3 整體架構

使用自動化測試平臺分為兩個階段: 錄制(record)階段和回放(replay)階段.錄制階段,回放式測試平臺指導用戶指定一個測試用例號、編譯源文件、開始調試過程.在錄制過程,用戶不斷輸入調試命令,對調試系統(tǒng)、底層硬件、編譯器、軟件模擬器等進行測試.若用戶在錄制階段發(fā)現(xiàn)主機調試器的輸出與預期不符,用戶應立即展開排查,解決問題.即用戶錄制到測試用例庫中的測試用例都應該是正確的、符合預期的.

自動化測試平臺把發(fā)送給主機調試器的命令記錄在一個文本文件中,把主機調試器反饋的回復記錄在另外一個文本文件中.前者稱為命令序列,后者稱為回復序列.當測試平臺檢測到用戶發(fā)送exit命令時,終止錄制過程.每個測試用例還包括一個編譯被調試應用程序的makefile文件.命令序列文件、回復序列文件、makefile文件、應用程序源代碼文件、測試用例號共同組成了一個測試用例.測試用例被存儲在文件系統(tǒng)中,稱為測試用例庫.測試用例庫的組織結構如圖2所示.testcase文件夾存儲每個測試用例調試的應用程序源代碼以及makefile.每個測試用例號一個子文件夾,文件夾的名字就是測試用例號.testsuite存儲命令序列和回復回序文件.以.cmdstr為后綴的是命令序列文件; 以.resp為后綴的是回復序列文件,文件名就是測試用例號.

圖2 測試用例庫組織結構

在回放階段,用戶只需要指定測試用例號,自動化測試平臺會自動開始回放過程.測試平臺首先會根據測試用例記錄的makefile文件,運行該makefile文件,編譯生成可執(zhí)行文件.測試平臺隨后啟動一個主機調試器軟件,讀取該測試用例的命令序列,發(fā)送給主機調試器軟件.測試平臺每發(fā)送一次命令,都等待主機調試器的回復,并將主機調試器的回復與測試用例記錄的回復比較.若比較不同,則認為回放失敗,立即報錯,停止回放.若比較相同,則接著發(fā)送命令序列中的下一條命令,直到檢測到exit命令為止.整個過程如圖3所示.

1.4 常用命令緩存

每次進行調試時,需要進行與模擬器(或真實芯片)之間建立鏈接、選擇被調試芯片、選擇被調試文件、加載文件等調試操作.這些操作需要一些固定序列的調試命令來驅動.添加基于同一份應用程序工程的測試用例時,前面若干條調試操作也經常是相同的.為了方便使用本調試平臺,可在根目錄下添加common.cmdstr文件.該文件存儲每個測試用例的前面若干個調試命令,每行存儲一個調試命令.添加測試用例時,首先執(zhí)行common.cmdstr中存儲的調試命令,然后再提示用戶輸入剩余調試命令.所有的調試命令,包括common.cmdstr中的調試命令和用戶輸入的調試命令,都會被記錄到測試用例中.回放測試用例時,首先執(zhí)行common.cmdstr中存儲的調試命令,這些調試命令的回復不與測試用例回復序列進行比較.然后再執(zhí)行測試用例中相應個調試命令之后的調試命令.例如,若common.cmdstr中有 3 條命令,則回放時,首先執(zhí)行common.cmdstr中的3條命令,然后從測試用例中的第4條命令開始執(zhí)行.通過這種方法,可以方便地進行測試用例之間的移植.例如: 基于軟件模擬器的內核,已經添加了一批測試用例.現(xiàn)在希望復用這批測試用例,將其在真實芯片上回放,只需要在common.cmdstr加入一行與真實芯片建立調試連接的命令即可.回放時,測試平臺首先執(zhí)行common.cmdstr中的這行命令,與真實芯片建立鏈接,并且不將主機調試器的回復與測試用例中的回復進行比較.之后,測試平臺再從測試用例中的第二個命令開始進行執(zhí)行,并將主機調試器軟件的實際回復與測試用例記錄的回復比較.只要被調試應用程序僅僅與處理器內核有關系,基于模擬器的調試回復與基于真實芯片的調試回復應該是相同的.若回放成功,說明本測試用例測試通過; 若回放失敗,說明本測試用例未能測試通過.

圖3 回放式自動化測試平臺工作流程示意圖

1.5 臨時文件

為了避免編譯應用程序生成的.out、.o等臨時文件混雜在測試用例庫中,本測試平臺在添加測試用例和回放時,都會把被調試程序源代碼復制到測試平臺所在目錄下workdir目錄中,再進行編譯、調試.被調試程序的makefile應位于被調試程序源代碼所在目錄的根目錄下,makefile中的編譯命令都應該是相對路徑.被調試程序的整個工程源代碼都應當位于該目錄下.調試時,用戶需要指定加載的.out可執(zhí)行文件.用戶必須指定位于workdir中剛剛被本測試平臺編譯出來的.out文件,不能指定其他文件夾中的.out文件.否則,無法進行下一步操作.

1.6 限制條件

由于回放式測試平臺通過字符串與主機調試器之間進行交互,并通過字符串比較判斷測試是否成功,因此本測試平臺的使用具有一定的限制條件:

1) 不能運行scanf等接受用戶輸入功能的調試過程.

2) 調試過程中不能使用暫停命令; 運行之后,再執(zhí)行“暫?!闭{試命令,不同的平臺上處理器暫停的時機不同,測試用例的回復和回放時的回復不一定相同.因此,不能運行含有“暫?!闭{試命令的測試用例.

3) 單核運行時,應在單核停止之后再進行下一步調試操作.多核運行時,必須在所有的核停止之后再進行下一步調試操作.

4) 多核運行時,若其中一個核帶有printf打印操作,則運行結果有可能是不確定的.有可能是其中一個核先停下,也有可能是另一個核先停下來.因此,執(zhí)行多核調試測試用例時,謹慎使用printf功能.只有當用戶可以確定多核運行時每個核的輸出(printf)順序時,才添加多核運行測試用例.

5) 暫時不支持通過“上”、“下”方向鍵選擇上一條調試命令.

6) 為了方便將測試用例在不同主機上遷移,用戶輸入的測試用例目錄、makefile目錄等等都應該使用相對目錄.makefile內調用occ.exe(編譯器)時應不帶目錄,通過環(huán)境變量找到occ.exe.

1.7 應用情況

該自動化測試平臺已經提供給“魂芯”DSP配套基礎軟件的測試人員使用.測試人員在該平臺上添加了大量測試用例.這些測試用例包含軟件模擬器調試和硬件芯片調試兩類.測試用例加載調試的應用程序中包括對DSP的各項功能進行測試的應用程序.這些應用程序中也包括復雜的C語言程序,以測試編譯器的正確性.這些測試用例可以一次性批量回放.測試人員反映該平臺添加測試用例方便,回放測試用例更加快捷.每次發(fā)布一個“魂芯”DSP開發(fā)環(huán)境的正式版本前,測試人員不必再逐項進行各項調試操作確認各功能的正確性,只需輸入一條命令即可,大大減小了測試人員的工作量.

2 總結

本文介紹了一種“魂芯”DSP配套基礎軟件的自動化測試平臺.該平臺以主機調試器為測試對象,通過主機調試器與其他軟件模塊的交互,間接地測試其他軟件單元.該平臺可以方便地添加測試用例,也可以批量回放測試用例.是一個簡單高效的自動化測試平臺.下一步的工作方向是改進回放時的字符串匹配方式,不再簡單地進行字符串比較,而是利用正則表達式,僅僅對關鍵的子串進行匹配,從而減少使用本測試平臺時的限制條件.另一個工作方向是將該測試平臺與集成開發(fā)環(huán)境(IDE)結合起來,將用戶通過界面的調試動作記錄下來,再進行批量回放,以實現(xiàn)更加方便地添加測試用例.

參考文獻

1林廣棟,黃光紅,耿銳.一種C語言級單步調試系統(tǒng)的功能實現(xiàn)方案.單片機與嵌入式系統(tǒng)應用,2015,15(2): 48–51.

2林廣棟,朱艷,黃光紅.一種調試系統(tǒng)中C語言復雜變量查看功能實現(xiàn)方案.中國集成電路,2015,24(8): 41–49.

3宋婷.淺談軟件測試自動化解決方案.中小企業(yè)管理與科技,2010,(7): 217.

4徐進.自動化軟件測試的分析.信息技術,2010,(3): 152–155.

5郭俊.軍用軟件測試的影響因素及改進措施.現(xiàn)代計算機,2007,(11): 54–55.[doi: 10.3969/j.issn.1007-1423-B.2007.11.018]

猜你喜歡
調試
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
燃氣輪機發(fā)電機組運行調試
FOCAS功能在機床調試中的開發(fā)與應用
核電廠主給水系統(tǒng)調試
中國核電(2017年1期)2017-05-17 06:10:11
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
調壓柜的調試與試運行探討
工業(yè)電氣設備控制系統(tǒng)的安裝與調試
音頻處理器的調試
同期繼電保護調試中出現(xiàn)的問題及處理
基于JTAG的SoC片上調試系統(tǒng)設計
主站蜘蛛池模板: 欧美一级特黄aaaaaa在线看片| 久草青青在线视频| 在线综合亚洲欧美网站| 四虎精品免费久久| 免费一级α片在线观看| 黄色网址免费在线| 99精品视频播放| 国产情侣一区| 91精品久久久无码中文字幕vr| 丝袜美女被出水视频一区| 久久精品娱乐亚洲领先| 国产精品成人AⅤ在线一二三四| www.99在线观看| 亚洲视频无码| 男女性色大片免费网站| 青青青国产视频手机| 国产剧情国内精品原创| 精品久久久久久久久久久| 在线观看免费人成视频色快速| 中文无码精品a∨在线观看| 亚洲精品少妇熟女| 97人人做人人爽香蕉精品| 精品国产成人a在线观看| 欧美成人日韩| 亚洲日本韩在线观看| 国产夜色视频| 四虎国产精品永久一区| 成人福利在线视频免费观看| 国产欧美视频在线观看| 欧美一级大片在线观看| 欧美伊人色综合久久天天| 人人91人人澡人人妻人人爽| 国产欧美视频综合二区 | 亚洲天天更新| 亚瑟天堂久久一区二区影院| 国产免费怡红院视频| 成年人久久黄色网站| 色欲综合久久中文字幕网| 国产免费高清无需播放器| 日本午夜精品一本在线观看| 亚洲专区一区二区在线观看| 国产福利小视频在线播放观看| 亚洲日韩第九十九页| 日韩欧美国产中文| 国产产在线精品亚洲aavv| 国产成人毛片| 日韩av在线直播| 亚洲综合极品香蕉久久网| 国产成人精品2021欧美日韩| 国产原创演绎剧情有字幕的| 最新国语自产精品视频在| 亚洲午夜综合网| 国产网友愉拍精品视频| 亚洲综合日韩精品| 2022国产91精品久久久久久| 国产亚洲第一页| 国产靠逼视频| 亚洲第七页| 国产福利拍拍拍| 亚洲日韩AV无码精品| 最近最新中文字幕免费的一页| 午夜国产理论| 99在线观看精品视频| 亚洲人成网站18禁动漫无码| 亚洲日韩日本中文在线| 狠狠做深爱婷婷久久一区| 夜夜操天天摸| 无码中文字幕精品推荐| 狠狠五月天中文字幕| 欧美亚洲一区二区三区在线| 精品国产三级在线观看| 精品国产污污免费网站| 午夜毛片免费观看视频 | 四虎永久在线| 欧美成人免费| 伊人久久久久久久| 日韩人妻无码制服丝袜视频| 亚洲精品在线观看91| 视频一区视频二区日韩专区| 日韩人妻无码制服丝袜视频| 久久久久人妻一区精品色奶水| 视频一区视频二区日韩专区 |