RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于嵌入式芯片和操作系統(tǒng)的POSDouble測試研究

電子設計 ? 來源:現(xiàn)代電子技術 ? 作者:李林杰 ? 2020-09-30 09:55 ? 次閱讀

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

1 JUnit分析與應用

MUnit是JUnit的子集,使用方法類似JUnit,在這里只對JUnit做分析。JUnit是一個開源的Java測試框架,它是XUnit測試體系架構的一種實現(xiàn)。在JUnit單元測試框架的設計時,設定了三個總體目標,第一個是簡化測試的編寫,這種簡化包括測試框架的學習和實際測試單元的編寫;第二個是使測試單元保持持久性;第三個則是可以利用既有的測試編寫相關的測試。所以這些目的也是為什么使用模式的根本原因。JUnit的設計使用以Patterns Generate Architectures的方式來架構系統(tǒng)。其設計思想是通過從零開始應用設計模式,然后一個接一個,直至獲得最終合適的系統(tǒng)架構。JUnit是一個測試Framework,測試人員只需開發(fā)測試用例,然后把這些測試用例(TestCase)組成請求(可能是一個或者多個),發(fā)送到JUnit,然后由JUnit執(zhí)行,最后報告詳細測試結果。其中,包括執(zhí)行的時間、錯誤方法、錯誤位置等。這樣測試用例的開發(fā)人員就不需知道JUnit內部的細節(jié),只要符合它定義的請求格式即可。從JUnit的角度考慮,它并不需要知道請求TestCase的具體操作信息,僅把它當作一種命令來執(zhí)行,然后把執(zhí)行測試結果發(fā)給測試人員。這樣就使JUnit框架和TestCase的開發(fā)人員獨立開來,使得請求的一方不必知道接收請求一方的詳細信息,更不必知道是怎樣被接收,以及怎樣被執(zhí)行的,實現(xiàn)系統(tǒng)的松耦合。

Junit.Framework包中包含了JUnit測試類所需要的所有基類,實際上這個包也是整個JUnit的基礎框架。TestCase類是這個包的核心類,測試人員對TestCase類進行繼承開發(fā)自己的類測試驅動程序。其余的類用來支援這個TestCase類,比如TestSuite用類聚合多個測試用例(Testcase),Assert類實現(xiàn)期望值和實際值的驗證,TestResult收集所有測試用例執(zhí)行后的結果。Test接口是這個包的關鍵所在,它建立了TestCase和TestSuite之間的關聯(lián),同時為整個框架做了擴展預留。在J2SE下簡單應用舉例:

右擊項目名稱選擇新建→JUnit測試用例

JUnit在J2SE下可以很好地應用,但是在J2ME下應用存在比較大的困難,因為在J2ME下沒有反射機制。在實際測試中可以利用其優(yōu)點來最大地發(fā)揮。

2 POSDouble測試

由于MIDP 1.0下不支持浮點數(shù)(float)運算,因此必須開發(fā)適合J2ME下的浮點數(shù)運算方法。這里主要實現(xiàn)了以下方法,這些方法的測試都是通過JUnit進行的白盒測試,測試數(shù)據(jù)的選擇主要是根據(jù)市場的實際需求設定,保證了現(xiàn)階段的實際需求;而在MIDP 2.0下可以支持浮點數(shù)的運算,無須自己開發(fā)浮點數(shù)運算的方法。

類名:POSDouble,主要是用于浮點數(shù)計算,主要測試以下方法:

3 通用接口測試

由于POSDouble是在J2SE下開發(fā)的,所以使用了JUnit工具,而其他接口函數(shù)是在J2ME下開發(fā)的,所以接口的測試采用了MUnit(JUnit的子集)工具。MUnit工具的使用方法、規(guī)則請參考《MUnit測試集編寫規(guī)范》。

(1)測試框架

目錄結構的總原則是:源代碼目錄與測試代碼目錄分離,互不干擾;測試代碼目錄與源代碼目錄的分支結構一致,便于查找、維護。

(2)仿真環(huán)境測試執(zhí)行流程

首先編寫測試代碼,測試代碼盡量放在與源代碼相對應的測試目錄中。修改測試程序入口,如使用ePos.set.FunctionFormFactory。

(3)目標環(huán)境測試執(zhí)行流程

編寫測試代碼,修改測試程序入口,構建測試代碼的Jar文件,下載Jar文件到目標機運行。

(4)測試捷徑

通常情況下,在目標環(huán)境下測試,需要先編寫測試用例、再編譯、再下載、再運行,如果突然想到一個測試用例,又需重復上述操作步驟,就會非常耗時。為了增強測試的靈活性,可以加入鍵盤監(jiān)聽事件。首先編寫鍵盤監(jiān)聽類,將所有的測試單步對應到不同的按鍵上去,即按一個鍵執(zhí)行一個操作步驟。如:“a”對應open操作,“b”對應claim操作,“c”對應setDeviceEnable(true)操作。要執(zhí)行一個完整的測試過程,就分步驟按相應的按鍵。要想執(zhí)行不同的測試用例就按不同的順序按相應的按鍵,這樣就不再需要編寫測試用例、編譯、構建、下載,可以節(jié)約很多時間,測試效率得到很大提升。同時可以結合原有測試用例,讓不同的按鍵對應到不同的(完整的)測試用例,這樣不占用程序入口,同樣可以實現(xiàn)并執(zhí)行原來的測試用例。

(5)快速回歸測試

bug修正后需要做回歸測試,為了在目標環(huán)境上回歸測試,必須經過以下步驟:

①從CVS更新最新源碼;

②將Java源碼編譯成C文件;

③構建Elf文件;

④下載Elf文件;

⑤執(zhí)行測試用例做回歸測試。

其中的步驟②~④將耗費很多時間。為了提升回歸測試效率,將設備的DeviceServices從Elf文件中剝離出來,單獨生成一個Jar文件,如果只有DeviceSer-Vices更新,只需要重新編譯DeviceServices的Jar文件,不需更改Elf文件。更新Jar文件比更新Elf文件從步驟及時間上都高效得多。

4 示例

(1)占用一個入口,加入鍵盤監(jiān)聽事件,如圖2所示。

(2)在keyboardlistener中編寫按鍵對應的測試用例或方法,如圖3所示。

(3)編譯構建Elf文件。先編譯evm,ejpos兩個項目;編譯ROMJavaWin.c,NativeFunctionTable.c用于構建Elf(含evm,ejpos);在LambdaIDE下構建Elf文件并優(yōu)化;通過LBOOT下載到目標環(huán)境中。

(4)編譯測試用例的Jar文件。

(5)在目標機上根據(jù)按鍵執(zhí)行不同的測試用例。

bug回歸測試時,更新DeviceService的內容,重復步驟(5)即可完成回歸測試。

責任編輯:gt

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

    關注

    455

    文章

    50714

    瀏覽量

    423139
  • 嵌入式
    +關注

    關注

    5082

    文章

    19104

    瀏覽量

    304808
  • 操作系統(tǒng)

    關注

    37

    文章

    6801

    瀏覽量

    123283
  • Junit
    +關注

    關注

    0

    文章

    6

    瀏覽量

    6627
收藏 人收藏

    評論

    相關推薦

    概述及匯總ARM的嵌入式操作系統(tǒng)

    嵌入式操作系統(tǒng)(Embedded Operation System,EOS)是指用于嵌入式系統(tǒng)操作系統(tǒng)。
    發(fā)表于 12-23 11:39 ?3000次閱讀

    如何利用TS101DSP芯片實現(xiàn)嵌入式實時操作系統(tǒng)的設計?

    本文在對嵌入式實時操作系統(tǒng)進行研究的基礎上,完成了基于TS101DSP芯片嵌入式實時操作系統(tǒng)
    發(fā)表于 04-27 06:41

    基于Linux的嵌入式操作系統(tǒng)

    嵌入式操作系統(tǒng)一、嵌入式操作系統(tǒng)概述1.1 嵌入式操作系統(tǒng)的特點1.2
    發(fā)表于 11-08 09:05

    嵌入式實時操作系統(tǒng)教程

    嵌入式實時操作系統(tǒng)教程:以VRTX為對象詳細介紹了嵌入式實時操作系統(tǒng)的原理和應用,特別是第一部分關于嵌入式實時
    發(fā)表于 04-19 21:55 ?44次下載
    <b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>教程

    嵌入式操作系統(tǒng)的內核研究

    嵌入式操作系統(tǒng)嵌入式系統(tǒng)應用的核心。而內核完成操作系統(tǒng)最核心的功能,本文通過對兩種嵌入式
    發(fā)表于 07-30 14:55 ?22次下載

    嵌入式操作系統(tǒng)裁剪技術研究

    本文以提高繪圖機數(shù)據(jù)傳輸率為目的,通過裁剪普通ⅡnIlx操作系統(tǒng),最終獲得繪圖機需要的嵌入式UnIl】【操作系統(tǒng)。本文首先介紹了嵌入式操作系統(tǒng)
    發(fā)表于 10-30 16:28 ?18次下載

    嵌入式操作系統(tǒng)-李春杰

    主要內容: 嵌入式操作系統(tǒng)概述 典型嵌入式操作系統(tǒng)介紹 嵌入式操作系統(tǒng)選型
    發(fā)表于 01-04 18:30 ?0次下載

    嵌入式實時操作系統(tǒng)MQX內核研究

    嵌入式實時操作系統(tǒng)MQX內核研究
    發(fā)表于 10-31 08:20 ?7次下載
    <b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>MQX內核<b class='flag-5'>研究</b>

    嵌入式操作系統(tǒng)是什么_嵌入式操作系統(tǒng)有哪些

    嵌入式操作系統(tǒng)(Embedded OperatingSystem,簡稱:EOS)是指用于嵌入式系統(tǒng)操作系統(tǒng)。
    發(fā)表于 04-08 14:36 ?2.1w次閱讀

    嵌入式操作系統(tǒng)的介紹和嵌入式操作系統(tǒng)的發(fā)展狀況和應用前景說明

    本文介紹了嵌入式操作系統(tǒng)的概念,分析了嵌入式操作系統(tǒng)的發(fā)展狀況和應用前景,特別是嵌入式Linux的研究
    發(fā)表于 06-06 17:49 ?8次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>的介紹和<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>的發(fā)展狀況和應用前景說明

    嵌入式操作系統(tǒng)如何應用_嵌入式操作系統(tǒng)的組成

    本文首先介紹了入操作系統(tǒng)的特點,其次闡述了嵌入式操作系統(tǒng)的應用,最后介紹了嵌入式操作系統(tǒng)的組成
    發(fā)表于 09-01 16:36 ?3607次閱讀

    什么是嵌入式操作系統(tǒng) 常見的嵌入式系統(tǒng)有哪些

    、INTEGRITY、OSE、C ExecuTIve  什么是嵌入式操作系統(tǒng) 嵌入式操作系統(tǒng)是一種支持嵌入式
    發(fā)表于 10-21 09:36 ?27次下載
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b> 常見的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>有哪些

    嵌入式操作系統(tǒng)

    參考:[1] 《嵌入式系統(tǒng)軟件及操作系統(tǒng)》1、嵌入式操作系統(tǒng)的功能在嵌入式
    發(fā)表于 10-21 11:21 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>

    嵌入式操作系統(tǒng)

    嵌入式操作系統(tǒng)一、嵌入式操作系統(tǒng)概述1.1 嵌入式操作系統(tǒng)的特點1.2
    發(fā)表于 11-03 18:36 ?46次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>

    什么是嵌入式操作系統(tǒng)?

    嵌入式操作系統(tǒng)是一種專門的操作系統(tǒng)(OS),旨在為非計算機的設備執(zhí)行特定任務。嵌入式操作系統(tǒng)的主要工作是運行允許設備完成其工作的代碼。
    的頭像 發(fā)表于 12-23 15:33 ?7767次閱讀
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>?
    RM新时代网站-首页