一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CodeTest嵌入式測試工具實(shí)現(xiàn)DCS分布式系統(tǒng)的測試方案

牽手一起夢(mèng) ? 來源:電子技術(shù)應(yīng)用 ? 作者:趙忠明,李天輝 ? 2020-10-04 17:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著DCS系統(tǒng)的發(fā)展,迫切需要一種工具能夠在軟件開發(fā)的集成階段、系統(tǒng)階段等對(duì)DCS系統(tǒng)的軟件進(jìn)行實(shí)時(shí)在線的測試與分析,以保證系統(tǒng)的性能和可靠性。

DCS系統(tǒng)長期運(yùn)行的穩(wěn)定性、實(shí)時(shí)性等特點(diǎn),使得廠家對(duì)其軟件質(zhì)量有著非常苛刻的要求,而DCS系統(tǒng)的分布式特點(diǎn),又使得其集成測試、系統(tǒng)級(jí)測試非常困 難。本文介紹一種獨(dú)特的DCS分布式系統(tǒng)的測試方案,對(duì)分布在一個(gè)網(wǎng)絡(luò)中多臺(tái)電腦上的各個(gè)系統(tǒng)模塊(每臺(tái)電腦運(yùn)行多個(gè)系統(tǒng)模塊)同時(shí)測試,監(jiān)視其覆蓋率、 內(nèi)存泄漏、運(yùn)行性能等重要測試指標(biāo)。測試工具選用美國Metrowerks公司的CodeTest嵌入式測試工具。

1 DCS系統(tǒng)概述

DCS 系統(tǒng)一般是物理上分布的控制系統(tǒng),有兩種基本結(jié)構(gòu):總線網(wǎng)結(jié)構(gòu)和星型網(wǎng)結(jié)構(gòu)。有些DCS客戶由于生產(chǎn)規(guī)模小,可能對(duì)系統(tǒng)要求不高,把服務(wù)器、工程師站、操 作員站集于一臺(tái)機(jī)器上即可,但就其控制站和上機(jī)系統(tǒng)而言,整個(gè)系統(tǒng)在物理上、邏輯上仍然是分布式的。以總線結(jié)構(gòu)為例,系統(tǒng)結(jié)構(gòu)如圖l所示。

基于CodeTest嵌入式測試工具實(shí)現(xiàn)DCS分布式系統(tǒng)的測試方案

2 CodeTest嵌入式測試工具概述

CodeTest具有強(qiáng)大的測試分析功能。

由于CodeTest對(duì)軟件打點(diǎn)技術(shù)和從總線捕獲數(shù)據(jù)進(jìn)行了改善和提升,正是這種原理上的優(yōu)勢(shì),使得CodeTest具有強(qiáng)大的性能分析、內(nèi)存分析、高級(jí)覆蓋率分析和代碼跟蹤功能。

CodeTest工具主要有三個(gè)版本:一個(gè)是純硬件版,由于它不能滿足用戶的需求,早已被淘汰;另外兩個(gè)是純軟件版和硬件輔助軟件版,其中以硬件輔助軟件版最好。

純軟件測試工具的測試原理有兩個(gè)必需的任務(wù)——插樁函數(shù)和預(yù)處理任務(wù)。由于插入插樁函數(shù)和預(yù)處理任務(wù)的存在,使系統(tǒng)的代碼增大, 對(duì)系統(tǒng)的運(yùn)行效率有一定的影響。但是,隨著CPU速度和存儲(chǔ)技術(shù)不斷提高,純軟件版方案仍然可行。

3 DCS系統(tǒng)嵌入式測試方案設(shè)計(jì)

由于DCS系統(tǒng)比較復(fù)雜,服務(wù)器上有15個(gè)lib 文件、20個(gè)exe任務(wù),操作員站有4個(gè)dll工程和6個(gè)exe任務(wù),這些模塊在管理網(wǎng)層構(gòu)成一個(gè)實(shí)時(shí)運(yùn)行的整體。測試一個(gè)程序或者一個(gè)測試用例,必將影 響其他任務(wù),例如:在操作員站上寫一個(gè)值到I/0控制站,改變一個(gè)閥門的開關(guān)狀態(tài),這個(gè)值會(huì)被傳到實(shí)時(shí)數(shù)據(jù)庫,完成操作歷史記錄,然后送到系統(tǒng)網(wǎng)驅(qū)動(dòng),由 與I/0站通信的gateway.exe和GatewayMonitor模塊發(fā)到現(xiàn)場控制站。工程師站主要用于離線組態(tài),其dll工程和exe工程一共有 十幾個(gè),在進(jìn)行工程組態(tài)時(shí),會(huì)出現(xiàn)多個(gè)模塊同時(shí)運(yùn)行。在下裝時(shí),下裝任務(wù)模塊和服務(wù)器操作員站程序會(huì)同時(shí)運(yùn)行(至少與操作員站、服務(wù)器的守護(hù)程序同時(shí)運(yùn) 行),此時(shí),要想把覆蓋率數(shù)據(jù)收集齊全,在以前是非常困難的。因?yàn)闇y試者的一個(gè)動(dòng)作將會(huì)引起幾臺(tái)機(jī)器上的多個(gè)模塊的代碼執(zhí)行。使用CodeTest測試工 具,運(yùn)用其設(shè)計(jì)巧妙的測試方案,終于解決了這個(gè)難題。

3.1 純軟件版CodoTest測試方法

用純軟件版CodeTest工具測試時(shí),先用CodeTest進(jìn)行插樁(打點(diǎn)),生成exe或者其他可執(zhí)行文件,然后在裝載測試程序的機(jī)器A上運(yùn)行 CodeTest的ctserver.exe,并設(shè)定其收集測試數(shù)據(jù)的端口,格式如下:

ctserver-p 3050

接著在機(jī)器B上(A和B也可以是同一臺(tái)機(jī)器)運(yùn)行CodeTest Manager(ctmgr),創(chuàng)建workspace,指定插樁文件、內(nèi)存檢查目標(biāo)文件、端口和etserver所在機(jī)器的IP地址,連接 ctserver并執(zhí)行。最后在A上運(yùn)行需要測試的程序C.exe,這樣C.exe的執(zhí)行情況、性能、覆蓋率、內(nèi)存是否泄漏等數(shù)據(jù)都被采集在 CodeTest Manager的Software Probe中。CodeTest Manager提供了友好的窗口界面,可以查看每個(gè)函數(shù)的運(yùn)行覆蓋率,也可以查看每個(gè)文件的覆蓋率,還可以對(duì)測試結(jié)果進(jìn)行保存、導(dǎo)出、合并等。

3.2 一個(gè)小的測試方案的分析與設(shè)計(jì)

圖l已經(jīng)給出了DCS系統(tǒng)的體系結(jié)構(gòu).這里將結(jié)合CodeTest設(shè)計(jì)測試方案。

為了便于理解,先舉個(gè)簡單的設(shè)計(jì)實(shí)例:設(shè)一個(gè)小的軟件系統(tǒng)在A機(jī)和B機(jī)上運(yùn)行。A機(jī)上運(yùn)行著兩個(gè)進(jìn)程(或任務(wù)模塊):A1.exe和A2.exe, A1.exe使用ALIB1.1ib和ALIB2.1ib庫文件,A2.exe使用A.dll動(dòng)態(tài)鏈接庫;B.exe運(yùn)行在B機(jī)上,B.exe上的操作將 引起A機(jī)上的兩個(gè)進(jìn)程A1和A2?,F(xiàn)在對(duì)A1、A2和B三個(gè)任務(wù)模塊組成的系統(tǒng)進(jìn)行系統(tǒng)測試,監(jiān)視其覆蓋率、內(nèi)存泄漏、運(yùn)行性能等重要測試指標(biāo)。

測試方案如圖2,設(shè)C機(jī)(C機(jī)也可以是A機(jī)或者B機(jī))用于收集測試數(shù)據(jù)。

對(duì)于這個(gè)簡單的系統(tǒng),其測試系統(tǒng)已經(jīng)不算簡單,而對(duì)于總共有60多個(gè)工程,至少有20個(gè)以上的進(jìn)程同時(shí)運(yùn)行的DCS綜合自動(dòng)化控制系統(tǒng),其測試方案圖就更復(fù)雜了,要考慮的問題就更多了。

圖2的子系統(tǒng)測試方案中,還有一些難點(diǎn)需要解決:

(1)對(duì)于A1和A2,怎樣同時(shí)采集代碼執(zhí)行測試數(shù)據(jù),調(diào)用lib靜態(tài)庫文件或者dll動(dòng)態(tài)鏈接庫文件,怎樣才能查看這些庫文件的執(zhí)行情況,是否在庫程序中存在內(nèi)存泄呢?

經(jīng)過探索得到解決方法如下:采用CodeTest的追加打點(diǎn)方法,將Al和A2以及它們的庫文件打點(diǎn)到一個(gè)符號(hào)數(shù)據(jù)庫文件(CodeTest打點(diǎn)生成的 IDB文件,追加打點(diǎn)命令格式:-CTidb=E:importan\test.idb。CodeTest使用有很多細(xì)節(jié)上的技巧,請(qǐng)參見用戶手冊(cè)和軟 件自帶的幫助文件),用一個(gè)ctserver、一個(gè)通信端口采集測試數(shù)據(jù)。注意,為了在CodeTest Manager的Coverage Data中追蹤到代碼每一行的執(zhí)行情況,必須在Configuration窗口內(nèi)Source Code Directories中加入各源碼的路徑。

(2)A1和A2可能是由兩個(gè)工程師開發(fā)的,他們可能不愿意把測試數(shù)據(jù)混在一起。在這種情況下,可以在A機(jī)上運(yùn)行兩個(gè)不同端口各自采集測試數(shù)據(jù) ctserver,在CodeTest Manager中也要多開一個(gè)Software Probe,并指定相應(yīng)的配置。插樁時(shí),也要分開插樁,生成各自的IDB符號(hào)庫文件。

3.3 大型DCS綜合自動(dòng)化控制系統(tǒng)的測試方案

大型DCS綜合自動(dòng)化控制系統(tǒng)的測試方案與上述小系統(tǒng)的測試方案類似,但要考慮插樁函數(shù)對(duì)DCS系統(tǒng)的影響。為了減輕這種影響,單獨(dú)用一個(gè)配置很高(內(nèi)存 1.5GB)的電腦H,運(yùn)行codeTest Manager采集系統(tǒng)服務(wù)器、操作員站和工程師站的各個(gè)模塊的測試數(shù)據(jù)。這樣服務(wù)器、操作員站、工程師站只需運(yùn)行采集測試數(shù)據(jù)的服務(wù)器 ctservei,從而大太減輕測試系統(tǒng)的額外負(fù)擔(dān)。

電腦H成為測試數(shù)據(jù)的集中地,主要基于以下幾點(diǎn)考慮:

(1)測試數(shù)據(jù)集中起來,可直接導(dǎo)出測試報(bào)告進(jìn)行合并,便于分析。尤其對(duì)覆蓋率太低的模塊,便于測試經(jīng)理和開發(fā)工程師根據(jù)代碼的執(zhí)行情況,找出哪些功能沒有相對(duì)應(yīng)的測試用例,然后交給測試工程師進(jìn)一步豐富測試用例。

(2)節(jié)省測試成本。集中收集測試信息,可以減少工作量。另一方面,也是受CodeTest的license的限制,當(dāng)時(shí)只有一個(gè)網(wǎng)卡和一個(gè) license,只能在一臺(tái)機(jī)器上運(yùn)行CodeTest Manager。當(dāng)然,在條件好的情況下,用幾臺(tái)電腦分別收集服務(wù)器、操作員站和工程師站的數(shù)據(jù),測試效果會(huì)更好。對(duì)軟件系統(tǒng)的影響最小,但成本也會(huì)相應(yīng) 增加。

綜上所述,制定DCS系統(tǒng)的測試方案如圖3所示。

從圖3可以看到,用到的ctserver比較多,主要原因有兩個(gè),一是系統(tǒng)模塊比較多,而且很多模塊是不同的開發(fā)工程師負(fù)責(zé)開發(fā)維護(hù),并且由另一個(gè)測試工 程師測試。采用不同的ctserver可以把收集的測試信息分開,便于測試用例的分析討論、bug的分析、測試力度的分析。二是系統(tǒng)中每個(gè)模塊擔(dān)負(fù)著不同 的任務(wù)或者完成某些功能,從而為功能測試提供便利。

3.4 DCS系統(tǒng)嵌入式測試方案實(shí)現(xiàn)

至此,測試方案設(shè)計(jì)完畢,由前面小系統(tǒng)的示例性實(shí)驗(yàn)作指引,實(shí)現(xiàn)環(huán)節(jié)難點(diǎn)不多。按照codeTest的測試過程,先插樁,再搭建系統(tǒng)。由于系統(tǒng)龐大, exe工程和庫文件工程多,所以插樁本身就是一個(gè)難點(diǎn),而且工作量也不小。但是,一旦插樁完成,生成exe文件后,就一直用這些可執(zhí)行文件測試。系統(tǒng)源碼 要放在CodeTestManager所在機(jī)器上,以便在以追蹤方式查看代碼執(zhí)行情況時(shí),追蹤到源碼的每一頁每一行。

筆要遇到的困難者主有以下兩點(diǎn):

(1)插樁上的困難:系統(tǒng)用刊的庫文件比較多,每個(gè)庫都是一個(gè)vc工程。關(guān)鍵在于這個(gè)庫會(huì)被多個(gè)exe工程包含。為了避免測試系統(tǒng)搭建好后,出現(xiàn)idb符 號(hào)數(shù)據(jù)庫與插樁后的程序不符,必須按照exe分別插樁。每插樁一個(gè)exe工程,先查一查它所依賴的庫文件,把庫文件的vc工程以idb符號(hào)數(shù)據(jù)庫追加方式 插樁,把exe工程插樁后的符號(hào)數(shù)據(jù)庫追加在最后。

(2)測試系統(tǒng)運(yùn)行的困難:系統(tǒng)的進(jìn)程比較多,加上多個(gè)ctsever進(jìn)程就更多。而系統(tǒng)的啟動(dòng)過程,尤其是服務(wù)器的啟動(dòng)是有規(guī)律有順序的。如果手動(dòng)啟動(dòng) 程序,則啟動(dòng)服務(wù)器將是一件痛苦的事。解決辦法是采用Windows腳本。例如連續(xù)啟動(dòng)兩個(gè)進(jìn)程,方法如下:

對(duì)于分布式系統(tǒng)和嵌入式系統(tǒng),CodeTest的確能提供獨(dú)特的測試方案,尤其硬件輔助軟件版的CodeTest工具,功能更加強(qiáng)大。CodeTest工 具可以在測試的各個(gè)階段設(shè)計(jì)不同的測試方案,還可以作為軟件開發(fā)過程中的輔助工具。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    5706

    瀏覽量

    128900
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317690
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9795

    瀏覽量

    88009
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    分享一種嵌入式系統(tǒng)自動(dòng)化測試的詳細(xì)方案

    嵌入式系統(tǒng)由于具有多種輸入和輸出接口,涉及到各種復(fù)雜時(shí)序,測試難度比較大,一般的測試工具很難對(duì)嵌入式系統(tǒng)
    的頭像 發(fā)表于 12-05 13:43 ?3403次閱讀

    基于模型的動(dòng)態(tài)測試工具TPT

    針對(duì)嵌入式系統(tǒng)的基于模型的動(dòng)態(tài)測試工具,支持眾多業(yè)內(nèi)主流的工具平臺(tái)和測試環(huán)境,可應(yīng)用于整個(gè)嵌入式
    發(fā)表于 02-20 14:28 ?1182次閱讀
    基于模型的動(dòng)態(tài)<b class='flag-5'>測試工具</b>TPT

    通用型嵌入式系統(tǒng)測試平臺(tái)介紹

    測試平臺(tái)是針對(duì)嵌入式系統(tǒng)的自動(dòng)化測試工具,支持各個(gè)級(jí)別系統(tǒng)的多接口測試、實(shí)時(shí)仿真
    發(fā)表于 06-26 16:19

    求一種獨(dú)特的DCS分布式系統(tǒng)測試方案

    本文介紹一種獨(dú)特的DCS分布式系統(tǒng)測試方案,對(duì)分布在一個(gè)網(wǎng)絡(luò)中多臺(tái)電腦上的各個(gè)
    發(fā)表于 04-26 06:57

    嵌入式軟件測試工作職責(zé)是什么

    **嵌入式軟件測試工程師#有合適的可以留言#**科華恒盛職位介紹:嵌入式軟件測試工作職責(zé):1、負(fù)責(zé)公司核心產(chǎn)品的軟件測試工作及
    發(fā)表于 10-28 06:16

    HDC2021技術(shù)分論壇:如何高效完成HarmonyOS分布式應(yīng)用測試?

    全景視圖,基于開發(fā)旅程不同階段的測試活動(dòng),給開發(fā)者提供對(duì)應(yīng)測試工具測試服務(wù)能力。圖2DevEco Testing測試能力全景視圖基于分布式
    發(fā)表于 12-13 14:55

    如何高效完成HarmonyOS分布式應(yīng)用測試?

    全景視圖,基于開發(fā)旅程不同階段的測試活動(dòng),給開發(fā)者提供對(duì)應(yīng)測試工具測試服務(wù)能力。圖2DevEco Testing測試能力全景視圖基于分布式
    發(fā)表于 12-13 18:07

    Tessy嵌入式軟件單元測試/ 集成測試工具的相關(guān)資料分享

    Tessy — 嵌入式軟件單元測試/ 集成測試工具本文章向大家介紹Tessy — 嵌入式軟件單元測試/ 集成
    發(fā)表于 12-21 07:11

    嵌入式軟件測試工具TPT17的相關(guān)資料推薦

    Piketec嵌入式測試工具TPT的最新版本現(xiàn)已發(fā)布。TPT17為嵌入式系統(tǒng)開發(fā)階段的所有用戶以多重新特性上線。ECU測試變得更加快捷,簡單
    發(fā)表于 12-24 06:02

    基于CodeTest工具DCS系統(tǒng)嵌入式測試設(shè)計(jì)與實(shí)現(xiàn)

    介紹了CodeTest嵌入式測試工具及其在大型DCS系統(tǒng)嵌入式
    發(fā)表于 07-06 16:24 ?28次下載

    基于CodeTEST嵌入式軟件測試技術(shù)

    嵌入式軟件測試有助于提高嵌入式軟件質(zhì)量和可靠性。因此,利用CodeTEST相對(duì)于其他嵌入式軟件測試工具
    發(fā)表于 01-17 15:53 ?41次下載

    分布式整流橋測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    分布式整流橋測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 12-17 16:43 ?3次下載

    嵌入式軟件測試

    **嵌入式軟件測試工程師#有合適的可以留言#**科華恒盛職位介紹:嵌入式軟件測試工作職責(zé):1、負(fù)責(zé)公司核心產(chǎn)品的軟件測試工作及
    發(fā)表于 10-21 10:06 ?12次下載
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>測試</b>

    嵌入式Linux測試工具

    嵌入式Linux測試工具1 Nbench—性能測試工具nbench的結(jié)果主要分為MEM、INT和FP,其中MEM指數(shù)主要體現(xiàn)處理器總線、CACHE和存儲(chǔ)器性能,INT當(dāng)然是整數(shù)處理性能,F(xiàn)P則體現(xiàn)雙
    發(fā)表于 11-01 16:26 ?2次下載
    <b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>測試工具</b>

    上??匕睸martRocket系列:嵌入式軟件智能化測試工具

    SmartRocket TestGrid嵌入式軟件智能化測試工具支持國軍標(biāo)、MISRA 等靜態(tài)分析、C/C++語言的單元測試和集成測試
    的頭像 發(fā)表于 08-02 14:53 ?2058次閱讀