嵌入式JavaPOS系统测试的设计与实现

发布者:genius5最新更新时间:2010-02-03 来源: 现代电子技术关键字:嵌入式系统  税控收款机  JavaPOS  ARM 手机看文章 扫描二维码
随时随地手机看文章

0 引 言

    随着嵌入式计算机应用技术的发展,嵌入式技术已经广泛应用到现代生活的方方面面。在零售系统方面,零售收款机是嵌入式应用的一个重要领域。目前,市场上的收款机大体上可分为三类:第一类是基于PC和DOS/Windows体系的,这类产品目前占市场绝大多数,属于高端产品,价格太高,适合大的商场和销售系统;第二类是基于单片机(51系列居多)的,基本上没有操作系统的支持,功能也较弱,主要用于餐饮娱乐,占据中低档市场;第三类是正在快速发展的基于嵌入式芯片和嵌入式操作系统的,价格较低,功能较强,适用于中高档市场,这类产品将是未来市场的主体。以上三类收款机的开发平台形形色色,基本上是每一款就是一种开发平台,没有统一的规范、开发和调试平台。系统升级和移植困难,尤其对于一体机等需要第三方开发软件的应用,造成开发上更大的难度。虚拟机VM的改进,Java应用的速度已经不是太大的问题。

1 JUnit分析与应用

    MUnit是JUnit的子集,使用方法类似JUnit,在这里只对JUnit做分析。JUnit是一个开源的Java测试框架,它是XUnit测试体系架构的一种实现。在JUnit单元测试框架的设计时,设定了三个总体目标,第一个是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则是可以利用既有的测试编写相关的测试。所以这些目的也是为什么使用模式的根本原因。JUnit的设计使用以Patterns Generate Architectures的方式来架构系统。其设计思想是通过从零开始应用设计模式,然后一个接一个,直至获得最终合适的系统架构。JUnit是一个测试Framework,测试人员只需开发测试用例,然后把这些测试用例(TestCase)组成请求(可能是一个或者多个),发送到JUnit,然后由JUnit执行,最后报告详细测试结果。其中,包括执行的时间、错误方法、错误位置等。这样测试用例的开发人员就不需知道JUnit内部的细节,只要符合它定义的请求格式即可。从JUnit的角度考虑,它并不需要知道请求TestCase的具体操作信息,仅把它当作一种命令来执行,然后把执行测试结果发给测试人员。这样就使JUnit框架和TestCase的开发人员独立开来,使得请求的一方不必知道接收请求一方的详细信息,更不必知道是怎样被接收,以及怎样被执行的,实现系统的松耦合。

    Junit.Framework包中包含了JUnit测试类所需要的所有基类,实际上这个包也是整个JUnit的基础框架。TestCase类是这个包的核心类,测试人员对TestCase类进行继承开发自己的类测试驱动程序。其余的类用来支援这个TestCase类,比如TestSuite用类聚合多个测试用例(Testcase),Assert类实现期望值和实际值的验证,TestResult收集所有测试用例执行后的结果。Test接口是这个包的关键所在,它建立了TestCase和TestSuite之间的关联,同时为整个框架做了扩展预留。在J2SE下简单应用举例:

    右击项目名称选择新建→JUnit测试用例

   
    (运行)调试方式→JUnit测试。图1为运行结果。

    JUnit在J2SE下可以很好地应用,但是在J2ME下应用存在比较大的困难,因为在J2ME下没有反射机制。在实际测试中可以利用其优点来最大地发挥。

2 POSDouble测试

    由于MIDP 1.0下不支持浮点数(float)运算,因此必须开发适合J2ME下的浮点数运算方法。这里主要实现了以下方法,这些方法的测试都是通过JUnit进行的白盒测试,测试数据的选择主要是根据市场的实际需求设定,保证了现阶段的实际需求;而在MIDP 2.0下可以支持浮点数的运算,无须自己开发浮点数运算的方法。

    类名:POSDouble,主要是用于浮点数计算,主要测试以下方法:

    POSDouble:将字符串转换为POSDouble数。
    POSDouble.Add:加法。
    POSDouble.Sub:减法。
    POSDouble.Mult:乘法。
    POSDouble.Div:除法。
    POSDouble isMax:比较浮点数大小。
    POSDouble tolong:将POSDouble数转化成长整数。
    POSDouble测试用例(以POSDouble.Add:加法为例):

   

3 通用接口测试

    由于POSDouble是在J2SE下开发的,所以使用了JUnit工具,而其他接口函数是在J2ME下开发的,所以接口的测试采用了MUnit(JUnit的子集)工具。MUnit工具的使用方法、规则请参考《MUnit测试集编写规范》。

    (1)测试框架

    目录结构的总原则是:源代码目录与测试代码目录分离,互不干扰;测试代码目录与源代码目录的分支结构一致,便于查找、维护。

    (2)仿真环境测试执行流程

    首先编写测试代码,测试代码尽量放在与源代码相对应的测试目录中。修改测试程序入口,如使用ePos.set.FunctionFormFactory。

    (3)目标环境测试执行流程

    编写测试代码,修改测试程序入口,构建测试代码的Jar文件,下载Jar文件到目标机运行。

    (4)测试捷径

    通常情况下,在目标环境下测试,需要先编写测试用例、再编译、再下载、再运行,如果突然想到一个测试用例,又需重复上述操作步骤,就会非常耗时。为了增强测试的灵活性,可以加入键盘监听事件。首先编写键盘监听类,将所有的测试单步对应到不同的按键上去,即按一个键执行一个操作步骤。如:“a”对应open操作,“b”对应claim操作,“c”对应setDeviceEnable(true)操作。要执行一个完整的测试过程,就分步骤按相应的按键。要想执行不同的测试用例就按不同的顺序按相应的按键,这样就不再需要编写测试用例、编译、构建、下载,可以节约很多时间,测试效率得到很大提升。同时可以结合原有测试用例,让不同的按键对应到不同的(完整的)测试用例,这样不占用程序入口,同样可以实现并执行原来的测试用例。

    (5)快速回归测试

    bug修正后需要做回归测试,为了在目标环境上回归测试,必须经过以下步骤:

    ①从CVS更新最新源码;

    ②将Java源码编译成C文件;

    ③构建Elf文件;

    ④下载Elf文件;

    ⑤执行测试用例做回归测试。

    其中的步骤②~④将耗费很多时间。为了提升回归测试效率,将设备的DeviceServices从Elf文件中剥离出来,单独生成一个Jar文件,如果只有DeviceSer-Vices更新,只需要重新编译DeviceServices的Jar文件,不需更改Elf文件。更新Jar文件比更新Elf文件从步骤及时间上都高效得多。

4 示例

    (1)占用一个入口,加入键盘监听事件,如图2所示。

    (2)在keyboardlistener中编写按键对应的测试用例或方法,如图3所示。

    (3)编译构建Elf文件。先编译evm,ejpos两个项目;编译ROMJavaWin.c,NativeFunctionTable.c用于构建Elf(含evm,ejpos);在LambdaIDE下构建Elf文件并优化;通过LBOOT下载到目标环境中。

    (4)编译测试用例的Jar文件。

    (5)在目标机上根据按键执行不同的测试用例。

    bug回归测试时,更新DeviceService的内容,重复步骤(5)即可完成回归测试。

关键字:嵌入式系统  税控收款机  JavaPOS  ARM 引用地址:嵌入式JavaPOS系统测试的设计与实现

上一篇:VxWorks下的异步通用定时器设计
下一篇:风河嵌入式软件开发工具套件全面升级

推荐阅读最新更新时间:2024-05-02 21:00

ARM-Linux驱动相关头文件知识点
#include linux/***.h 在linux-2.6.31/include/linux下面寻找源文件 #include asm/***.h 在linux-2.6.31/arch/arm/include/asm下面寻找源文件 #include mach/***.h 在linux-2.6.31/arch/arm/mach-s3c2410/include/mach下面寻找源文件 #include plat/regs-adc.h 在linux-2.6.31/arch/arm/plat-s3c/include/plat下面寻找源文件 ---------------------------------------------
[单片机]
Lumia 950 XL成功运行Win10 ARM:可装32位应用
在黑客开发者Ben | imbushuo先后完成Lumia 950 XL上的Windows 10 UEFI引导,成功支持Windows 10启动后,现在已经成功实现Lumia 950 XL对Windows 10 ARM的安装,并且能够实际操作运行系统了。    上手演示:    根据Ben Imbushuo介绍,目前Lumia 950 XL运行Windows 10桌面版取得了基本的成功,该设备上有完整的64位Windows on ARM系统,支持触摸屏操作。    不过目前还不支持无线网络,但Ben Imbushuo认为将会很快实现,另外还有对Win10 32位应用程序的支持,比如安装Chrome浏览器等。
[手机便携]
收购截止期将近,英伟达ARM提交长文:ARM市场影响力被夸大
据报道,一直以来,美国图形芯片巨头英伟达计划以400亿美元的代价,从日本软银集团手中买下英国芯片设计巨头ARM,但是这一交易的进展并不顺利。    最初收购交易的截止期限是今年三月份,眼看着就要错过。而这一交易在美国、英国、欧洲等地都遭到了反垄断监管部门的审核,监管担心,交易将会削弱市场竞争。    按照最初计划,软银集团、英伟达和ARM计划在2020年9月以后的一年半时间内完成交易。    科技市场研究公司高德纳的分析师阿兰·普雷斯利(Alan Priestley)和一些股市投资人认为,一国和多个国家监管机构否决这一交易的可能性很大。    不过,英伟达和ARM并未坐以待毙。    本周一,交易双方提交给英国“竞争市场局”的一份
[半导体设计/制造]
OK6410A 开发板 (八) 118 linux-5.11 OK6410A arm异常原因及linux应用场景及结果
异常之后,会返回吗? 应用程序会被杀掉吗?内核会崩溃吗? gic 还会一直中断吗? .section .vectors, ax , %progbits .L__vectors_start: W(b) vector_rst W(b) vector_und W(ldr) pc, .L__vectors_start + 0x1000 W(b) vector_pabt W(b) vector_dabt W(b) vector_addrexcptn W(b) vector_irq W(b) vector_fiq reset 异常 产生根本原因 通过管脚或寄存器访问对 c
[单片机]
智能手机专利授权收入增加ARM第4季度营收
英国处理器架构研发公司安谋(ARM Holdings)最新发布优于预期的2014年第4季获利表现,并预期包括苹果(Apple)iPhone 6等智慧型手机销售增加,将推升该公司的专利授权费用收入。 根据资料显示,基于该公司架构的微处理器晶片在2014年第4季产量超过35亿颗,使得安谋税前利润超过1.19亿英镑(约合1.82亿美元)、年增 25%,优于分析师们此前平均预估的1.13亿英镑。当季收入则年增19%、至2.26亿英镑,授权金(licensing)及权利金 (royalties)分占各半。 安谋财务长Tim Score表示,获利成长主要受惠于新技术的专利授权强劲推动,该技术目前主要用于部分高阶智
[单片机]
一种基于ARM 单片机与CPLD的数字轴角转换方法
引言 同步机.正余弦旋转变压器等广泛应用于火力控制.航空航天.自动控制等领域以实现系统间轴角信息的传输.由于计算机技术在上述领域的广泛应用,数字-轴角转换已(Digitalto Shaft-angle Converting,DSC)成为一个重要的问题.市场上DSC集成模块产品价格较高且接口不够灵活,在某些领域应用受到限制,特别在多路DSC使用时效费问题更为突出.基于上述问题,提出一种采用ARM 单片机+CPLD实现数字-轴角转换的方法. 1 数字-轴角转换原理数字-轴角转换(DSC)是将数字形式表示的轴角度θ通过运算电路转换为正余弦旋转变压器形式的电压(如式(1)),经正余弦旋转变压器和经过Scott变压器后驱动同步机指向对应轴角
[电源管理]
一种基于<font color='red'>ARM</font> 单片机与CPLD的数字轴角转换方法
ARM cortex-M4 jtag 读取 dp 和 ap 寄存器 实例 解读
https://www.linmingjie.cn/index.php/archives/253/ DDI0413C_cortexm1_r0p1_trm.pdf // https://developer.arm.com/documentation/ddi0413/c/Babeagge stm32f407zg 开发板 // 随意一个 这样的卡发版即可 dsview 套装(逻辑分析仪) jlink for windows 软件 jlink (usb转jtag) 因为 没有合适的资料,所以选取了 m1 的 trm DDI0413C_cortexm1_r0p1_trm 中 有详细的 DAP 描述 读者可以 以 cortex-
[单片机]
ARM拟利用IPO融资所得进行并购和招募员工
据报道,英国芯片设计公司ARM计划利用即将进行的IPO筹集的资金来开展收购并招募更多员工,从而推进雄心勃勃的扩张计划。    该公司CEO瑞尼·哈斯(Rene Haas)表示,ARM计划在手机市场之外加快扩张步伐,进一步深入发展汽车、数据中心和元宇宙硬件市场。他表示,此次IPO筹集的资金“可以帮助我们进行并购,或者加快招聘速度——我们会关注这两个方面。”    在此之前,ARM刚刚经历了一段时间的收缩,而且因为争夺利润丰厚的中国业务而分散了精力,还进行了裁员,并且失去了被英伟达斥资660亿美元收购的机会。    但该公司的野心可能受到冲击,因为科技股的下跌威胁到ARM的IPO汇报前景。其所有者软银集团预计ARM的估值为500亿美元
[半导体设计/制造]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved