www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式JavaPOS系統(tǒng)測(cè)試的設(shè)計(jì)與實(shí)現(xiàn)

摘要:UnifiedPOS和其衍生的JavaPOS標(biāo)準(zhǔn),對(duì)收款機(jī)的硬件設(shè)備進(jìn)行了規(guī)范。利用JUnit單元測(cè)試工具對(duì)嵌入式JavaPOS系統(tǒng)的設(shè)備接口進(jìn)行了白盒測(cè)試,分析了市場(chǎng)主流收款機(jī)的不足,給出了嵌入式收款機(jī)的測(cè)試方法和測(cè)試用例POSDouble。測(cè)試結(jié)果表明,嵌入式JavaPOS系統(tǒng)成功地引入了JavaPOS規(guī)范,規(guī)范了各種外圍設(shè)備的接口定義,由于采用Java語(yǔ)言,解決了移植性、動(dòng)態(tài)加載、安全性等很多方面的問(wèn)題。
關(guān)鍵詞:嵌入式系統(tǒng);稅控收款機(jī);JavaPOS;ARM


0 引 言
    隨著嵌入式計(jì)算機(jī)應(yīng)用技術(shù)的發(fā)展,嵌入式技術(shù)已經(jīng)廣泛應(yīng)用到現(xiàn)代生活的方方面面。在零售系統(tǒng)方面,零售收款機(jī)是嵌入式應(yīng)用的一個(gè)重要領(lǐng)域。目前,市場(chǎng)上的收款機(jī)大體上可分為三類:第一類是基于PC和DOS/Windows體系的,這類產(chǎn)品目前占市場(chǎng)絕大多數(shù),屬于高端產(chǎn)品,價(jià)格太高,適合大的商場(chǎng)和銷售系統(tǒng);第二類是基于單片機(jī)(51系列居多)的,基本上沒(méi)有操作系統(tǒng)的支持,功能也較弱,主要用于餐飲娛樂(lè),占據(jù)中低檔市場(chǎng);第三類是正在快速發(fā)展的基于嵌入式芯片和嵌入式操作系統(tǒng)的,價(jià)格較低,功能較強(qiáng),適用于中高檔市場(chǎng),這類產(chǎn)品將是未來(lái)市場(chǎng)的主體。以上三類收款機(jī)的開(kāi)發(fā)平臺(tái)形形色色,基本上是每一款就是一種開(kāi)發(fā)平臺(tái),沒(méi)有統(tǒng)一的規(guī)范、開(kāi)發(fā)和調(diào)試平臺(tái)。系統(tǒng)升級(jí)和移植困難,尤其對(duì)于一體機(jī)等需要第三方開(kāi)發(fā)軟件的應(yīng)用,造成開(kāi)發(fā)上更大的難度。虛擬機(jī)VM的改進(jìn),Java應(yīng)用的速度已經(jīng)不是太大的問(wèn)題。


1 JUnit分析與應(yīng)用
    MUnit是JUnit的子集,使用方法類似JUnit,在這里只對(duì)JUnit做分析。JUnit是一個(gè)開(kāi)源的Java測(cè)試框架,它是XUnit測(cè)試體系架構(gòu)的一種實(shí)現(xiàn)。在JUnit單元測(cè)試框架的設(shè)計(jì)時(shí),設(shè)定了三個(gè)總體目標(biāo),第一個(gè)是簡(jiǎn)化測(cè)試的編寫(xiě),這種簡(jiǎn)化包括測(cè)試框架的學(xué)習(xí)和實(shí)際測(cè)試單元的編寫(xiě);第二個(gè)是使測(cè)試單元保持持久性;第三個(gè)則是可以利用既有的測(cè)試編寫(xiě)相關(guān)的測(cè)試。所以這些目的也是為什么使用模式的根本原因。JUnit的設(shè)計(jì)使用以Patterns Generate Architectures的方式來(lái)架構(gòu)系統(tǒng)。其設(shè)計(jì)思想是通過(guò)從零開(kāi)始應(yīng)用設(shè)計(jì)模式,然后一個(gè)接一個(gè),直至獲得最終合適的系統(tǒng)架構(gòu)。JUnit是一個(gè)測(cè)試Framework,測(cè)試人員只需開(kāi)發(fā)測(cè)試用例,然后把這些測(cè)試用例(TestCase)組成請(qǐng)求(可能是一個(gè)或者多個(gè)),發(fā)送到JUnit,然后由JUnit執(zhí)行,最后報(bào)告詳細(xì)測(cè)試結(jié)果。其中,包括執(zhí)行的時(shí)間、錯(cuò)誤方法、錯(cuò)誤位置等。這樣測(cè)試用例的開(kāi)發(fā)人員就不需知道JUnit內(nèi)部的細(xì)節(jié),只要符合它定義的請(qǐng)求格式即可。從JUnit的角度考慮,它并不需要知道請(qǐng)求TestCase的具體操作信息,僅把它當(dāng)作一種命令來(lái)執(zhí)行,然后把執(zhí)行測(cè)試結(jié)果發(fā)給測(cè)試人員。這樣就使JUnit框架和TestCase的開(kāi)發(fā)人員獨(dú)立開(kāi)來(lái),使得請(qǐng)求的一方不必知道接收請(qǐng)求一方的詳細(xì)信息,更不必知道是怎樣被接收,以及怎樣被執(zhí)行的,實(shí)現(xiàn)系統(tǒng)的松耦合。[!--empirenews.page--]
    Junit.Framework包中包含了JUnit測(cè)試類所需要的所有基類,實(shí)際上這個(gè)包也是整個(gè)JUnit的基礎(chǔ)框架。TestCase類是這個(gè)包的核心類,測(cè)試人員對(duì)TestCase類進(jìn)行繼承開(kāi)發(fā)自己的類測(cè)試驅(qū)動(dòng)程序。其余的類用來(lái)支援這個(gè)TestCase類,比如TestSuite用類聚合多個(gè)測(cè)試用例(Testcase),Assert類實(shí)現(xiàn)期望值和實(shí)際值的驗(yàn)證,TestResult收集所有測(cè)試用例執(zhí)行后的結(jié)果。Test接口是這個(gè)包的關(guān)鍵所在,它建立了TestCase和TestSuite之間的關(guān)聯(lián),同時(shí)為整個(gè)框架做了擴(kuò)展預(yù)留。在J2SE下簡(jiǎn)單應(yīng)用舉例:
    右擊項(xiàng)目名稱選擇新建→JUnit測(cè)試用例

   
    (運(yùn)行)調(diào)試方式→JUnit測(cè)試。圖1為運(yùn)行結(jié)果。

    JUnit在J2SE下可以很好地應(yīng)用,但是在J2ME下應(yīng)用存在比較大的困難,因?yàn)樵贘2ME下沒(méi)有反射機(jī)制。在實(shí)際測(cè)試中可以利用其優(yōu)點(diǎn)來(lái)最大地發(fā)揮。


2 POSDouble測(cè)試
    由于MIDP 1.0下不支持浮點(diǎn)數(shù)(float)運(yùn)算,因此必須開(kāi)發(fā)適合J2ME下的浮點(diǎn)數(shù)運(yùn)算方法。這里主要實(shí)現(xiàn)了以下方法,這些方法的測(cè)試都是通過(guò)JUnit進(jìn)行的白盒測(cè)試,測(cè)試數(shù)據(jù)的選擇主要是根據(jù)市場(chǎng)的實(shí)際需求設(shè)定,保證了現(xiàn)階段的實(shí)際需求;而在MIDP 2.0下可以支持浮點(diǎn)數(shù)的運(yùn)算,無(wú)須自己開(kāi)發(fā)浮點(diǎn)數(shù)運(yùn)算的方法。
    類名:POSDouble,主要是用于浮點(diǎn)數(shù)計(jì)算,主要測(cè)試以下方法:

    POSDouble:將字符串轉(zhuǎn)換為POSDouble數(shù)。
    POSDouble.Add:加法。
    POSDouble.Sub:減法。
    POSDouble.Mult:乘法。
    POSDouble.Div:除法。
    POSDouble isMax:比較浮點(diǎn)數(shù)大小。
    POSDouble tolong:將POSDouble數(shù)轉(zhuǎn)化成長(zhǎng)整數(shù)。
    POSDouble測(cè)試用例(以POSDouble.Add:加法為例):

   


3 通用接口測(cè)試
    由于POSDouble是在J2SE下開(kāi)發(fā)的,所以使用了JUnit工具,而其他接口函數(shù)是在J2ME下開(kāi)發(fā)的,所以接口的測(cè)試采用了MUnit(JUnit的子集)工具。MUnit工具的使用方法、規(guī)則請(qǐng)參考《MUnit測(cè)試集編寫(xiě)規(guī)范》。
    (1)測(cè)試框架
    目錄結(jié)構(gòu)的總原則是:源代碼目錄與測(cè)試代碼目錄分離,互不干擾;測(cè)試代碼目錄與源代碼目錄的分支結(jié)構(gòu)一致,便于查找、維護(hù)。
    (2)仿真環(huán)境測(cè)試執(zhí)行流程
    首先編寫(xiě)測(cè)試代碼,測(cè)試代碼盡量放在與源代碼相對(duì)應(yīng)的測(cè)試目錄中。修改測(cè)試程序入口,如使用ePos.set.FunctionFormFactory。
    (3)目標(biāo)環(huán)境測(cè)試執(zhí)行流程
    編寫(xiě)測(cè)試代碼,修改測(cè)試程序入口,構(gòu)建測(cè)試代碼的Jar文件,下載Jar文件到目標(biāo)機(jī)運(yùn)行。
    (4)測(cè)試捷徑
    通常情況下,在目標(biāo)環(huán)境下測(cè)試,需要先編寫(xiě)測(cè)試用例、再編譯、再下載、再運(yùn)行,如果突然想到一個(gè)測(cè)試用例,又需重復(fù)上述操作步驟,就會(huì)非常耗時(shí)。為了增強(qiáng)測(cè)試的靈活性,可以加入鍵盤(pán)監(jiān)聽(tīng)事件。首先編寫(xiě)鍵盤(pán)監(jiān)聽(tīng)類,將所有的測(cè)試單步對(duì)應(yīng)到不同的按鍵上去,即按一個(gè)鍵執(zhí)行一個(gè)操作步驟。如:“a”對(duì)應(yīng)open操作,“b”對(duì)應(yīng)claim操作,“c”對(duì)應(yīng)setDeviceEnable(true)操作。要執(zhí)行一個(gè)完整的測(cè)試過(guò)程,就分步驟按相應(yīng)的按鍵。要想執(zhí)行不同的測(cè)試用例就按不同的順序按相應(yīng)的按鍵,這樣就不再需要編寫(xiě)測(cè)試用例、編譯、構(gòu)建、下載,可以節(jié)約很多時(shí)間,測(cè)試效率得到很大提升。同時(shí)可以結(jié)合原有測(cè)試用例,讓不同的按鍵對(duì)應(yīng)到不同的(完整的)測(cè)試用例,這樣不占用程序入口,同樣可以實(shí)現(xiàn)并執(zhí)行原來(lái)的測(cè)試用例。[!--empirenews.page--]
    (5)快速回歸測(cè)試
    bug修正后需要做回歸測(cè)試,為了在目標(biāo)環(huán)境上回歸測(cè)試,必須經(jīng)過(guò)以下步驟:
    ①?gòu)腃VS更新最新源碼;
    ②將Java源碼編譯成C文件;
    ③構(gòu)建Elf文件;
    ④下載Elf文件;
    ⑤執(zhí)行測(cè)試用例做回歸測(cè)試。
    其中的步驟②~④將耗費(fèi)很多時(shí)間。為了提升回歸測(cè)試效率,將設(shè)備的DeviceServices從Elf文件中剝離出來(lái),單獨(dú)生成一個(gè)Jar文件,如果只有DeviceSer-Vices更新,只需要重新編譯DeviceServices的Jar文件,不需更改Elf文件。更新Jar文件比更新Elf文件從步驟及時(shí)間上都高效得多。


4 示例
    (1)占用一個(gè)入口,加入鍵盤(pán)監(jiān)聽(tīng)事件,如圖2所示。

    (2)在keyboardlistener中編寫(xiě)按鍵對(duì)應(yīng)的測(cè)試用例或方法,如圖3所示。

    (3)編譯構(gòu)建Elf文件。先編譯evm,ejpos兩個(gè)項(xiàng)目;編譯ROMJavaWin.c,NativeFunctionTable.c用于構(gòu)建Elf(含evm,ejpos);在LambdaIDE下構(gòu)建Elf文件并優(yōu)化;通過(guò)LBOOT下載到目標(biāo)環(huán)境中。
    (4)編譯測(cè)試用例的Jar文件。
    (5)在目標(biāo)機(jī)上根據(jù)按鍵執(zhí)行不同的測(cè)試用例。
    bug回歸測(cè)試時(shí),更新DeviceService的內(nèi)容,重復(fù)步驟(5)即可完成回歸測(cè)試。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

經(jīng)過(guò)幾十年發(fā)展,嵌入式技術(shù)已經(jīng)用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強(qiáng)的屬性,讓很多非嵌入式領(lǐng)域的同學(xué)望而卻步。近十幾年的發(fā)展,物聯(lián)網(wǎng)覆蓋了越來(lái)越多領(lǐng)域,包括了家居,商業(yè),工業(yè),農(nóng)業(yè)等領(lǐng)域,不僅吸引...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 技術(shù)

隨著IT技術(shù)飛速發(fā)展,互聯(lián)網(wǎng)已經(jīng)進(jìn)入了“物聯(lián)網(wǎng)”時(shí)代。物聯(lián)網(wǎng)中需要的大量設(shè)備不在依賴人與人之間的交互產(chǎn)生聯(lián)系,更多通過(guò)協(xié)議、通信、程序設(shè)計(jì)等方式連接到一處。即 “物聯(lián)網(wǎng)”的目的則是讓所有的物品都具有計(jì)算機(jī)的智能但并不以通...

關(guān)鍵字: 嵌入式 物聯(lián)網(wǎng) 計(jì)算機(jī)

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉